This refers to how to branch your module in SVN, but our svn server is deprecated in favor of using Git on GitHub
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