Module Branching

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