CIG > Community > Developer > Software Repository > Using Mercurial
Personal tools

Using Mercurial

All codes for the Magma Dynamic Demonstration Suite (MADDs) are being hosted at CIG in mercurial software repositories. Mercurial (hg) is a distributed source code managment system similar to subversion but allows distributed development which will be useful for coordinating various aspects of this project.

Source code, change sets and revisions can all be viewed using the browser of your choice at http://geodynamics.org/hg/.

There are currently four Principal software repositories with benchmark codes for different aspects of the magma migration problem.

Repository Contents as of October 4, 2007:

stgMADDS:  C codes built on the stGermain framework for finite
	   Element solutions of Solid Stokes Flow.  (VPAC)
	   This repository is broken up into several
	   sub-repositories for different aspects of the
	   stGermain framework.  To acces this software, you only need 
	   to clone the top level directory stgMADDS and then invoke a 
	   script to clone the sub-repositories (see below)
	   The overall structure of the stgMADDS directory is

	   stgMADDS:		 master repository
	   stgMADDS/Magma	 Main Magma Specific codes/Models and Milestones
	   stgMADDS/Underworld	 Rheology and general driving routines for model building
	   stgMADDS/PICellerator Particle in cell Libraries (required for Underworld)
	   stgMADDS/StgFEM	 Finite Element Libraries for stG (required for PICellerator 
	   	   	   	   and Underworld)
	   stgMADDS/StGermain	 Base StGermain framework (required for all stG codes)
	   stgMADDS/gLucifer     Interactive graphics interface to StGermain (required for magma)
	   stgMADDS/VMake	 stG Buildsystem directory
	   stgMADDS/Machines	 directory of parallelmachines

SpecRidge: matlab codes for 2D & 3D spectral solutions for Solid flow
	and pressure benchmarks beneath MOR spreading centers (mspieg)

SolitaryWaves2DSL: PETSc code for solving 2D solitary wave problems using 
fast-block preconditioners, multgrid and semi-Lagrangian schemes (must be 
built on petsc-dev post hg revision 11143)

NNcorner: Laurent Montesi's matlab code for 2D corner flow with a non-linear power law rheology.

Download instructions

Mercurial

To access and use the source codes you will need to install mercurial which is a Python-based version-control system.

Downloads, installation and use instructions can be found at http://www.selenic.com/mercurial/wiki/

It may also be useful to install hgk for viewing changes and (for emacs fans) mercurial.el, which are emacs extensions for working with mercurial. Both extensions are included in the mercurial-0.9.4 release.

Magma Software

Once mercurial is successfully installed, you can clone the magma repositories using hg clone e.g.,

hg clone http://geodynamics.org/hg/magma/3D/SpecRidge
to get current updates to the repositories, change directory to the repository of choice and run
hg pull 
hg update

See the mercurial website for more instructions or type hg help.

stgMADDs-specific instructions for cloning

For a first-time download of the repository do the following (described in the stgMADDs repository in README_stgMADDS.txt):

  1. Create the topmost repository with
    hg clone http://geodynamics.org/hg/magma/3D/stgMADDs
    
  2. Then clone all the subdirectories using
    ./cloneall.sh
  3. For updates to all repositories, simply use
    ./pullall.sh
    

Further build and test instructions can be found in stgMADDS/README_stgMADDS.txt

If you have any questions, please contact Marc Spiegelman, chair, Magma Dynamics Working Group.

Document Actions