Warning: Can't synchronize with the repository (Unsupported version control system "svn". Check that the Python support libraries for "svn" are correctly installed.)

LinBox GIT tutorial

Get your local copy of LinBox-2.0

First recovery of the repository:

> git clone ssh://dumas@linalg.org/linbox.git

Local creation of the user's branch for the server's master branch:

> git branch --track jg/master origin/master

Show your local copies of the existing branches, plus the ones stored on the server (prefixed by "origin"), the branch marked by a star is the branch corresponding to the files you currently have:

> git branch -a
* master
  jg/master
  origin/HEAD
  origin/master
  origin/pernet/master
  ...

You cannot work in the master branch (only the LinBox dictator-for-life can), so you switch to your branch:

> git checkout jg/master
Switched to branch "jg/master"
> git branch -a
  master
* jg/master
  origin/HEAD
  origin/master
  origin/pernet/master
  ...

Copy your branch to the server so that it will be backed up on the server:

> git push origin jg/master
* [new branch]          jg/master  --> jg/master

Common Usage

Recover the changes in your working branch from the server:

> git pull

Commit all your local changes to your local working branch:

> git commit -a

Backup your commited changes to the server:

> git push

What is your working branch status:

> git status

Show the modifications made to a file:

> git log file
commit f47e2020cee0ae8abe665cc6db638988a4277b2b
Author: U-Cyclone\jgdumas <Jean-Guillaume.Dumas@imag.fr>
Date:   Fri Dec 11 14:17:48 2009 +0100

    My very important modification

Show the differences between a file and a specific commit (you just need the first 6 digits of the hash):

> git diff f47e20 file
diff --git a/file b/file
index 198bd53..7f5bb40

- ...
+ ...

Updates

Recover locally the modifications of the different branches:

> git fetch

See what modifications have been made:

> git log --all

Apply the modifications of a given branch to your local working branch:

> git merge origin/pernet/master

Anonymous recovery

> git clone git://linalg.org/home/www/var/git/linbox.git

References

Equivalences between SVN and GIT http://git.or.cz/course/svn.html

Git mini how-to http://pacific.mpi-cbg.de/wiki/index.php/Git_mini_howto