Subversion repository

From FreemedDeveloperWiki, the FreeMED developers' Wiki.

Jump to: navigation, search

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:

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
Personal tools
Navigation