New team mode implementation. Instead of previous implementation, where project was in place of working copy, new implementation creates separate folder for git/svn working copy and working files, then copy files from/to project folders. Benefits of new implementation:
- more stable work with git/svn
- ability to work with more than one repository. For example, user can use source files from one git repository, but store translations(and share it) in other svn repository. It allows to use source files just from main software repository without commit permissions, but share results only with translation team. Or even don't share results but store they locally.
- ability to get some files(like source files, dictionaries, etc.) from other storages(not only svn/git), but non-repository external storage like just http url
Instead of just store project in svn/git, idea is mapping is used. User can "map" any project folder(or project folder itself) into any repository.
Instead of relying on Subversion/Git storage, credentials are stored within OmegaT. The list of stored credentials can be accessed with Options > Repository Credentials and they can be deleted selectively.
Didier
The repository mapping is done in Project Properties > Repository mapping.
Didier
I find the notation for inclusions in the Repository Mapping dialog to be confusing. For instance if my repository provides dictionaries under
/fooDict(relative to repository root) then I would expect to map/fooDictto/dictionary(relative to project root). However there is an explicit check that disallows mappings where both sides start with/. Why is that?Also it appears to be required that mappings of directories end with a
/. Is that necessary?For my example above it turns out it will work with
dictionary/fooDict/But my first stab at this was the following, which seems reasonable to me:
/dictionary/fooDictLast edit: Aaron Madlon-Kay 2016-05-18
I confirm that currently the mapping of directories must ends with a /.
The Inclusions and Exclusions must follow the same pattern as other inclusions and exclusions in project properties.
The following shows the mapping of some OmegaT translatable documents into a team project:
Didier
Last edit: Didier Briel 2016-07-07
It is also possible to map files instead of directories (hence the need for a trailing / to differentiate them).
The following will take readme.txt from OmegaT and rename it readme_fr.txt into a team project:
Didier
Last edit: Didier Briel 2016-07-07
Below, there is the complet mapping of an EN to FR OmegaT localisation project:
The actual team project is on [myteamproject], all the rest is from /trunk.
Didier
The issue with the above is that it's not possible with git (you have to check out the whole tree), and that /release is checked out three times, once in full (for readme.txt) and the other two times partially.
For the second issue, one can of course use includes inside /release to only get it once.
However, if it is not possible to check out partial directories, the standard solution is to use includes to select the files to download. Below is a simpler mapping that checks out the whole /trunk to get OmegaT localisation files.
Didier
Last edit: Didier Briel 2016-07-19
In addition to svn and git, it is also possible to get files by HTTP(S). However, you can only get files, not directories, so you have to know in advance the file names. The following mapping uses HTTPS for all files except for the documentation, where svn is used. Note that the Mac localisation file is mapped separately, because otherwise the operating system (Windows 7) gives an error because the local path is too long.
Didier
Last edit: Didier Briel 2016-07-26
Regarding my comments above: After discussion on omegat-dev-tech the following changes have been made.
/, which indicates the root of the repository as pointed to by the URLLast edit: Aaron Madlon-Kay 2016-07-28
Implemented in the released version 4.0 of OmegaT.
Didier
Note that if /target is mapped to a repository (which is the case if it is simply versioned as in 3.x), then it will be synchronised from local to repository.Actually, this was never implemented and the /target folder was synchronised systematically.
With [#1341], Project > Commit Target Files allows to synchronise from local to repository.
Didier
Related
Feature Requests:
#1341Last edit: Didier Briel 2017-10-18