Here are some tips for using the command line tools for working with the EIS subversion repository:

Note (1) -- I don't have access to a Mac, but I will assume everything works the same as on a Windows or Linux box.

Note (2) -- There are a ton of graphical clients that are currently available for Subversion. You may wish to look into using one of those.

For windows users, I highly recommend TortoiseSVN:

http://tortoisesvn.tigris.org/

Note (3) -- The repository is currently on version 1.6.x of Subversion. Clients designed to work with earlier versions of Subversion can be used, however not all features may be available.

Location:

The EIS repository is served from hyperion (http://hyperion.nascom.nasa.gov) located at GSFC and can be accessed at https://hyperion.nascom.nasa.gov/svn/eis/

Due to NASA regulations and difficulties in accessing the repository from RAL, the repository is only available using SSL. Unfortunately, I had to use a self-signed certificate. This means that when you try to access the repository, you may be bombarded with dire warning messages because the certificate is not in your computer’s certificate chain. Just ignore these warnings. You may be able to add the certificate to your store and thus avoid future warning messages. Or you may not. This seems to work better on Linux then on Windows.

Most of the operations on a repository are the same no matter if you are accessing a remote or local repository. In general, the only time it matters is when you initially check out the repository. Once that is done, SVN knows where it is and you no longer have to specify a location.

Documentation:

Subversion is very well documented. The complete Subversion book is available online at:

http://svnbook.red-bean.com/

In particular, the chapter on the basic work cycle has lot of good information and will quickly get a novice user up and running.

It is located at:

http://svnbook.red-bean.com/nightly/en/svn.tour.cycle.html

As a quick reference, here are some basic commands.

CHECK OUT

svn checkout https://hyperion.nascom.nasa.gov/svn/eis/release <localdir>

This command checks out a repository. Everything from the last directory in the URL on down is copied into <localdir> (which is, of course, a local directory).

In the case of the EIS repository, there are currently two branches: a release branch (which is what this command gets) and a dev branch. It is expected that, eventually, the dev branch will be used for developers to test out changes to the software prior to moving them to the release branch. This is not happening yet, so just make all your changes to the release branch.

ADD

svn add <file1> Add a file (<file1>)

svn add <dir1> Add a directory (<dir1>) and all subdirectories

svn add -force * Add all files not currently under version control.

Add files or directories to the repository. This places the specified files and/or directories under version control. New items will be added to the repository the next time you do a commit.

DELETE

svn delete <path>/<file1> Delete a file (<file1>)

svn delete <dir1> Delete a directory (<dir1>)

Delete files or directories from the repository. Files (and directories) that have not previously been committed are deleted immediately. Other items are deleted the next time you do a commit.

REVERT

svn revert <path>/<file1>

Remove all modifications from file1 and revert it to the version stored on hyperion.

STATUS

svn status

Show the status of each item in your local repository. Modified files are marked with an 'M'. Useful for determining which items will be updated once you do a commit.

UPDATE

svn update

Update your local copy of the repository to the latest version on hyperion. Even if you don’t make any changes to the repository, other people may make their own modifications. Update gets these changes and updates your local repository to the latest revision level.

But what if someone else has modified a file that I was working on? No problem. Subversion will seamlessly attempt to merge the two files. If that proves impossible then it will give you a number of options for resolving the conflict, including disregarding any changes coming from hyperion.

COMMIT

svn commit -m "<Message>" --username <user>

Update the repository with locally changed files. Any files that you have modified (or added/deleted/moved, etc.) are now copied back to the repository on hyperion. Enter your username for the --username option. Once you hit return key you will be prompted for a password. Note that the -m option is mandatory. You must type in a brief message describing the changes you have made.