Skip to content

Team project

Synchronize project.omegat with remote repository

We take the following procedure to open the project. Every time we reopen the project, we copy omegat.project from the remote project.

  1. When opening a teamwork project as local only non-teamwork by passing 'no-team' to command line, skip teamwork treatment.

  2. Save the currently effective repository mapping 1 from LOCAL to variable 'repos'.

  3. Update project properties from REMOTE copy of omegat.project that has postfix .NEW by calling loadPropertiesFile(... ) with "omegat.project.NEW". It respects a local root repository URL than remote mapping configuration

  4. Handles mappings of four cases.

    1. no mapping

    2. no remote mapping, there are local mapping(s) the locally defined mapping(s) are merged into local omegat.project.

    3. remote mapping, no local mapping(s)

    4. remote and local mappings Local mapping changes are overwritten except for root repository mapping.

  5. We save the original project file with as omegat.project.timestamp.bak

root mapping URL

We basically use mapping from remote configuration but override repository URL when there is difference between local and remote configuration. It is because many repository services provide multiple protocols to access same repository. For examples, git repository access can be https or git+ssh, and svn repository access can be https or svn+ssh.

We respect local configuration of root mapping protocol. For example, there is root mapping https://example.com/repo.git in a remote project, but a user specifies git@example.com:repo.git, local omegat.project will have git@example.com:repo.git as a root project mapping.

Non-team project

When the project is configured without a team feature, or start OmegaT with a command line option --no-team, OmegaT validates a project file omegat.project. If there is no problem, OmegaT just open the file. Otherwise, OmegaT asks user to change some wrong configuration, and save it as a new project file and create backup file, which will be named omegat.project.YYYYMMDDhhmm.bak


  1. We may want to make sure that the remote props.GetRepositories match the previous current setup, but this does not seem to be the intention of the current mapping usage.