Migrating from Subversion

You'll need access to the real subversion repository (your working copy does not contain everything). Start by making a new directory to hold the new git repository:

mkdir your-proj
cd your-proj

Then just import the subversion repository into this git repository:

git-svnimport svn://path/to/some/crap

file:///path/to/repository also works, but only if this is the real (server-side) repository and not just your working copy. As another example, svn+ssh://l3ib.org/var/subversion/repositories/crosstalk also works.

You should now continue on to the next section.

Publishing a Local Repository

You must first export your local repository. Your local repository contains a working directory; the server's version will not. Run

git repack -d # compress
git clone --bare -l /tmp/your-proj.git # export

to do this. The exported directory now resides in /tmp/your-proj.git (who would have thought).

All you have to do now is bring the exported directory over to l3ib.

scp -r /tmp/your-proj.git l3ib.org:/var/www/code.l3ib.org/git/

You should edit the project description. This is used on the projects page as well as gitweb :

$EDITOR /var/www/code.l3ib.org/your-proj.git/description

Yeah, that was pretty complicated. Siman was right. You can stop here if you're the only developer.

If you want to allow other people to commit to your repository, you need to add a users file :

$EDITOR /var/www/code.l3ib.org/your-proj.git/info/users

The file should contain one username per line, including your own.

You'll also have to copy over the update hook. This hook checks the users file before allowing a commit.

cp /var/www/code.l3ib.org/nitrogen.git/hooks/update /var/www/code.l3ib.org/your-proj.git/hooks/

Finally, run

/var/www/code.l3ib.org/git/make-group-writable /var/www/code.l3ib.org/git/your-proj.git

to fix permissions and group ownership for your project (so that other people will be able to write).