User Tools

Site Tools


sourceforge:git

This is an old revision of the document!


Git

Git is a revision control system, just like rcs, cvs and svn are.
Though the Crossfire repository is maintained by svn, it is possible to access this svn repo with git.
The svn package needs to be installed though, since it has bindings for PERL because git-svn is a perl script.

Prerequisites

The bindings of SVN for perl are available if SWIG is installed.
SVN needs to know where to find the swig binary at compilation time :

./configure --with-swig=/usr/rcs/bin/swig --with-ssl=/usr --with-apr=/usr/rcs --with-apr-util=/usr/rcs --with-neon=/usr/rcs --prefix=/usr/rcs/svn-1.6.23 --with-zlib=/lib --with-serf=/usr/rcs 

When SWIG is available, then after make it needs additionally make swig-pl to compile the SVN perl modules and libraries.
make && make swig-perl && make install && make install-swig-pl should then install PERL to something like
/usr/lib/perl5/site_perl/5.10.1/i686-linux-thread-multi-ld/SVN directory.

export PERLLIB='/usr/lib/perl5' and export PERL5LIB='/usr/lib/perl5' might be required though, so the perl modules are found.

git svn checkout -r 1

Inside a new created directory then run these commands :

git svn clone -r 1 https://svn.code.sf.net/p/crossfire/code ;echo $?

Which should print to the terminal

Initialized empty Git repository in /mnt/sdb16/CROSSFIRE/client_svn/git_experiments/code/.git/
W: +empty_dir: trunk
r1 = a967a85ee09bcf27915ff5eb652a10a7dc0d4a89 (refs/remotes/git-svn)
Checked out HEAD:
https://svn.code.sf.net/p/crossfire/code r1
creating empty directory: trunk
0

And crate a directory “code” with a hidden .git folder structure.

Now it needs to change into the new 'code' directory :

cd code

Inside this code directory we start to “fetch” revision by revision :

 git svn fetch -r 2 svn;echo $?
W: Ignoring error from SVN, path probably does not exist: (175002): RA layer request failed: REPORT request >on '/p/crossfire/code/!svn/rvr/2' failed
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history.
This may take a while on large repositories
0hecked through r2

And then the files start to appear with revision 3 :

git svn fetch -r 3 svn;echo $?
	A	trunk/arch/gods/supernatural/valriel.arc
	A	trunk/arch/gods/supernatural/devourers.arc
	A	trunk/arch/gods/supernatural/gorokh.arc
	A	trunk/arch/gods/elemental/ruggilli.111
	A	trunk/arch/gods/elemental/ruggilli.211
	A	trunk/arch/gods/elemental/ruggilli.112
	A	trunk/arch/skills/singing.arc
sourceforge/git.1524343521.txt.gz · Last modified: 2018/04/21 15:45 by karl