The EIS Subversion Repository

EIS software is now available through a Subversion repository. Historically, EIS software has been distributed through Solarsoft (SSW). The EIS repository provides an additional channel to access the software. In addition, developers of most EIS software modules must now update their files through subversion.

What is Subversion?

Subversion is a free/open-source version control system sponsored by CollabNet Inc. That is, Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versions of your files or examine the history of how your data has changed. Subversion makes easy for multiple authors to collaborate on a project by providing a robust set of tools for conflict resolution.

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/

About the EIS Software Repository

The EIS repository is served from hyperion ( http://hyperion.nascom.nasa.gov/ ) located at GSFC.

It 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, the server uses 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.

Although anyone my download the current version (or any previous version) of the repository, you must have a developer account in order to upload content to the repository.

In order to get developer access, please send your preferred username and password to yurow@grace.nascom.nasa.gov . No restrictions currently exist on account names or passwords.

The repository is organized into a dev branch and a release branch. Files placed in the release branch will copied to Solarsoft (SSW) on a regular basis.

The dev branch exists as a place for developers to test their software (and make it available for others to try out as well) before releasing it as a finished product. Files placed in the dev branch will NOT be pushed to solarsoft. Before placing files in the dev branch, it is best create subdirectory with your account name in order to keep your files in same place and separate from other developers. For example, developer John Doe might create dev/doe and then place files he wishes to work with under the doe subdirectory.

Accessing the Repository from the Web

The EIS Subversion repository can be accessed with only your web browser. Go to https://hyperion.nascom.nasa.gov/svn/eis/ to view the current revision of the repository. Clicking on a file will download it to your local machine.

Unfortunately, previous revisions of the repository cannot be accessed by this method.

Accessing the Repository from a Subversion Client

More complex operations, including uploading files and accessing previous revisions of the repository, will require you to use a subversion client.

A command line client is available for just about every system in existence. However, many users will want to use a graphical client. For windows users, TortoiseSVN is highly recommended. Pleas see http://tortoisesvn.tigris.org/.

Please note: 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.

As a quick reference, here are some basic subversion 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.

Searching the EIS Science Data Catalog on the Web

The EIS Science Data (AS-RUN) Catalog contains a record of every study run by EIS. In addition to searching the catalog using the IDL program EIS_CAT, you can now search the catalog from the web and seamlessly download FITS files directly to your computer. There are several advantages to searching the science data catalog from the web. For one, you do not need to have IDL installed nor will you need to keep a local copy of the database. However, web searches are currently limited to searching the database by time. In the future, other types may be implemented.

The EIS Science Database Search Page is located at: http://hyperion.nascom.nasa.gov/php/eisdp.php

The database is searched by using a simple form.

Currently the database can be searched only by time.

Enter the starting time of the search in the box labeled Start Time. Enter the ending time of the search in the box labeled Stop Time. Then press the submit button in order to display all of the studies in the database that fall within this interval.

Times should be entered in the following format: Month, day, Year, Hour, Minute, and Second. All times are specified relative to UTC.

Some examples of valid times are:

03/15/2008 March 15, 2008 02-14-2007 12:20 12:20 UT on February 14, 2007 April 7, 2008 April 7, 2008 Sep 2, 2009 September 2, 2009

It is not necessary to specify hours, minutes or seconds.

Studies matching the selected times will be then be displayed.

Click on a study to display all of the rasters associated with that study.

Click on a raster to download the FITS file for that raster to your local machine.