Github source code mirrors

Skip to end of metadata
Go to start of metadata

Using the github mirrors

The Opticks and Extras repositories are unofficially mirrored on github. This provides a convenient way to clone the Opticks and Extras trunks and create local branches. You can clone the currently active Opticks trunk with the following git command.

git clone git://github.com/tclarke/opticks.git opticks

The current Extras trunks can be cloned with this command.

git clone git://github.com/tclarke/opticks-extras.git extras
cd extras
git submodule init

Use git submidule update to update the submodules.

If you would like to grab the Opticks Extras sub-projects separately, use one or more of these commands.

git clone git://github.com/tclarke/opticks-extras-Python.git extras-Python
git clone git://github.com/tclarke/opticks-extras-Spectral.git extras-Spectral
git clone git://github.com/tclarke/opticks-extras-IDL.git extras-IDL

More information.

You can browse the source code, look at the commit messages, and get additional information from the github project pages.
Github page for Opticks
Github page for Extras
Github page for Extras IDL submodule
Github page for Extras Python submodule
Github page for Extras Spectral submodule

Synchronizing with github and subversion

If you would like to keep git synchronized with github and subversion, you will need to setup your own mirror and set github as a remote repository. The following steps can be used to setup a dual mirror for the main Opticks repository. This will allow you to grab subversion branches as well as the trunk and if you have subversion commit access you will be able to commit changes back to subversion.

git svn init http://opticks.svn.sourceforge.net/svnroot/opticks -T trunk/future

Once that is complete, you'll need to edit .git/config to manually adjust the subversion branch layout. If you want to use the standard mirror layout, adjust the [svn-remote "svn"] section to look like this. (add the branches and tags lines)

If you would rather track subversion branches for the future development line, use this configuration.

This will only work with branches which have a Design and trunk sub-directory. Other branching strategies are trickier to mirror and are not recommended for use with a git mirror.

Next, perform the initial repository clone with the following command. This may take a while. The second command cleans the git cache to remove unused objects. After an initial subversion mirror there are a lot of leftover objects and this can save significant disk space.

git svn fetch
git gc

Finally, add the github repository as a remote and synchronize.

git remote add origin git://github.com/tclarke/opticks.git
git pull origin

See the git manual pages for instruction on using other features of git svn such as branch creation, etc. The Extras repositories can be mirrored in a similar manner.

How are the mirrors created and kept up-to-date?

The mirrors are maintained by mirroring the subversion repositories to a local, private git repository and pushing that repository to github. The individual components in Extras are maintained as separate github sub-repositories and the github Extras repository is setup as a git super-repository. The future trunks are placed in the git master branches.

The synchronization is performed using cron and running git svn rebase followed by git push origin for each of the repositories. This process is run once daily.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.