Subversion repository
From FreemedDeveloperWiki, the FreeMED developers' Wiki.
The FreeMED subversion server is located on freemedsoftware.org.
The following are valid modules in the subversion repository:
- freemed (Main FreeMED package)
- freemed-modules (3rd party modules)
- freemed-perl (GUI tools for FreeMED written in Perl, see GUI interface)
- freemed-scanimport-daemon (Server to allow scanning directly into the medical record in FreeMED)
- freemed-tools (XPI plugin for Gecko based browsers)
- freemed-utilities (binary utilities for FreeMED)
- hhfreemed (eVB client for FreeMED on the PocketPC)
- hl7_bridge (HL7 interface for FreeMED)
- photoseek (photographic/document asset management system)
- remitt (Medical billing rendering package; required to generate bills with FreeMED)
Contents |
Mirrors
The following mirrors exist for the FreeMED Software Foundation subversion repositories:
- http://svn.bmas.freemedsoftware.org/
- http://svn.bmas2.freemedsoftware.org/
- http://svn.info.freemedsoftware.org/ - Note that this mirror is undergoing upgrades and may not function properly
All mirrors are synchronized with the primary development location every hour. If you are interested in hosting another mirror, please contact Jeff at jeff(AT)freemedsoftware.org or freemed(AT)gmail.com (remove ugliness to email).
It should be noted that the public subversion repositories are mirrored from the main repository, which means that they are not only read-only, but they may lag changes by up to an hour.
DNS currently resolves http://svn.freemedsoftware.org/ to multiple mirrors, so it is recommended that you use that.
Web Interface
Go to the web root of and of the repository mirrors with a web browser, and there is a nice browsable interface, courtesy of "WebSVN".
Checking Out
To check a module out, use the following syntax (be sure to replace "mirror" with the appropriate server name):
svn co http://svn.freemedsoftware.org/modulename/trunk modulename
This will create a new directory called modulename with the main trunk of the repository in it.
In the case of the FreeMED repository, you'll want to check out the "stable" branch, with:
svn co http://svn.freemedsoftware.org/freemed/branches/0.8.x freemed
Developing with Subversion
Committing Changes
To commit changes to the repository, it is much like cvs, in that there are add, commit and remove commands. There are also mv and cp commands to perform moves and copies within the repository. Check the man page on svn for more information.
Remember to set the properties of all text files so that keywords expand, and to set CRLF conversion on your files. The format is:
svn propset svn:keywords "Id Author Date Revision" filespec filespec ... svn propset svn:eol-style native filespec filespec ...
This should be done prior to a commit. Please note that you have to do an add before you can do a propset. If you don't want to have to do this for every file, set your $HOME/.subversion/config file to enable this automatically, by enabling auto-props and configuring it per file type:
[miscellany] enable-auto-props = yes [auto-props] *.php = svn:eol-style=native;svn:keywords=Id Author Date Revision *.inc = svn:eol-style=native;svn:keywords=Id Author Date Revision *.sh = svn:eol-style=native;svn:executable;svn:keywords=Id Author Date Revision *.pl = svn:eol-style=native;svn:executable;svn:keywords=Id Author Date Revision *.txt = svn:eol-style=native *.png = svn:mime-type=image/png *.jpg = svn:mime-type=image/jpeg Makefile = svn:eol-style=native;svn:keywords=Id Author Date Revision
Create a new Branch or Tag
To create a new branch, issue an svn cp command:
svn cp http://svn.mirror.freemedsoftware.org/modulename/trunk \ http://svn.mirror.freemedsoftware.org/modulename/branch/branchname
Tagging can be accomplished with the same command, but substituting "tags" for "branch" along with the appropriate tag name.
Merge changes between branches
svn log --verbose --stop-on-copy svn merge -r revision:HEAD http://svn.mirror.freemedsoftware.org/modulename/trunk