Module Repository Layout
Within the code repository, modules are located under the openmrs-modules folder in a folder determined by the module's module ID. and should be organized using the conventions of trunk
, branches
, and tags
folders (code is checked into the trunk folder and copied to a subfolder of branches when code for new features needs to be committed before the feature is finished and copied to tags when versions of the module are released.
/openmrs-modules /mymodule /branches /tags /trunk
Converting to Module Branching
While we recommend that you follow the standard convention of using trunk
, branches
, and tags
folders for your module folder from the beginning, sometimes older & simpler modules are committed directly into the module's folder. If you later need to change from a flat structure to a full structure (allowing for tagged releases or branching), here are the steps:
1. Move module to .tmp folder
$ svn mv [http://svn.openmrs.org/openmrs-modules/foobar] [http://svn.openmrs.org/openmrs-modules/foobar.tmp] -m "foobar: re-organizing module folders"
2. Recreate module folder
$ svn mkdir [http://svn.openmrs.org/openmrs-modules/foobar] -m "foobar: re-organizing module folders"
3. Move module into trunk subfolder
$ svn mv [http://svn.openmrs.org/openmrs-modules/foobar.tmp] [http://svn.openmrs.org/openmrs-modules/foobar/trunk] -m "foobar: re-organizing module folders"
4. Switch local copy to trunk
$ svn sw [http://svn.openmrs.org/openmrs-modules/foobar/trunk] localcopy
See Also
- Modules
- Subversion Code of Conduct section on Modules
- Subversion Branching and Merging Techniques