Web browser: http://cvs.sv.gnu.org/gitweb/

Setup
=====

Your identify for when you push commits (strongly recommended)::

 git config --global user.name "Your Name Comes Here"
 git config --global user.email [EMAIL PROTECTED]

Enable colors (optional)::

 git config --global color.diff auto
 git config --global color.status auto
 git config --global color.branch auto


Basic commands
==============

* Checkout::

   git clone git://git.sv.gnu.org/project.git

* Firewall checkout: if you're behing a outgoing-traffic-filtering firewall, 
you can use Git's "dumb protocol" via HTTP
  - note that this is SLOWER,
  both for you and Savannah. Avoid if possible, and please tell your local 
sysadmin to allow outgoing git traffic (port 9418)::

   git clone http://git.sv.gnu.org/r/project.git

* Developer checkout via SSH::

   git clone git+ssh://[EMAIL PROTECTED]/srv/git/project.git

* Commit::

   git-update-index README
   git commit
   git push git+ssh://[EMAIL PROTECTED]/srv/git/project.git

* Initial push::

   mkdir test
   cd test
   git init-db
   touch README
   git add README
   git commit
    
   git push [EMAIL PROTECTED]:/srv/git/project.git master:refs/heads/master


CVS import
==========

Werner Lemberg imported project 'cjk' from CVS,
using Keith Packard's parsecvs program, which "worked just fine":

* Get the source of parsecvs::

   git clone git://people.freedesktop.org/~keithp/parsecvs

* Download the tarball of git itself, uncompress it, and say 'make'
  to build 'libgit.a'.

* Copy 'libgit.a' into the 'parsecvs' directory.

* Edit the Makefile of 'parsecvs' to say::

   GITPATH=.

* Say 'make' and 'make install' to compile and install parsecvs in '~/bin'.

* Grab your CVS tree (with the 'foo,v' files)::

   rsync rsync://cvs.sv.gnu.org/sources/myproject/ myproject/

* Now change to your CVS tree (with the 'foo,v' files) and
  build a '.git' directory within the current directory::

   find -name '*,v' | parsecvs

* Say 'git clone mydestdir' to check out all files in 'mydestdir/' and
  to pack the git objects.  The current '.git' directory can be
  deleted now.

* Finally, change to 'mydestdir/' and publish the repository at Savannah::

   git push [EMAIL PROTECTED]:/srv/git/myproject.git master:refs/heads/master

Other programs include 'git-cvsimport', provided along with git.
Han-Wen Nienhuys suggested using an authors file via the '-A' option,
so that git uses a realname instead of a username for the committer.


SVN import
==========

Git comes with 2 SVN-related tools: git-svnimport and git-svn. git-svnimport is 
for importing revisions (a one-shot import, or incrementally); git-svn is a 
2-way gateway to a SVN repository, similar to SVK, more useful for maintaining 
a local branch than for importing a repository (IMHO). We'll use git-svnimport.

Those tools use an authors file to map username->real name (option -A)
it looks like this::

 rms = Richard M. Stallman <[EMAIL PROTECTED]>
 toto = Another User <[EMAIL PROTECTED]>
 ...

Common invokation::

 git-svnimport -v -I .gitignore -A ../authors.txt file:///home/me/svn_repo

To ignore branches::

 git-svnimport -v -I .gitignore -A ../authors.txt -b idontexist 
file:///home/me/svn_repo

git-svnimport assumes there's a trunk, a branches, and a tags directory (names 
are configurable) and ignores other directories. You may run into troubles if 
your layout changed during your former SVN life.

You'll usually perform the import several times before getting what you want.
For this reason it's preferable to rsync the SVN repository locally, or create 
it from a dump::

 rsync -av rsync://svn.sv.gnu.org::svn/myproject svn_repo
  
 wget http://svn.gna.org/daily/myproject.dump.gz
 svnadmin init svn_repo
 zcat myproject.dump.gz | svnadmin load svn_repo/

Links
=====

* CVS import issues: http://www.spinics.net/lists/git/msg05266.html

* repo.or.cz: hosting system similar to Savannah. Offers a public ''mob'' 
branch. The internals look a bit ad-hoc (lots of cron jobs that changes all 
permissions, privileges to Apache instead of a cron'd backend).

* http://git.or.cz/course/ - "switching to git" crash course (from CVS, Git, 
and also Quilt->StGit)

* http://www.kernel.org/pub/software/scm/git/docs/tutorial.html - Tutorial

* http://www.kernel.org/pub/software/scm/git/docs/everyday.html - Everyday GIT 
With 20 Commands Or So

--
forwarded from https://savannah.gnu.org/maintenance/[EMAIL 
PROTECTED]://savannah.gnu.org/maintenance


_______________________________________________
Savannah-cvs mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/savannah-cvs

Reply via email to