Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to commit a Git repo to an empty repo SVN server?

Tags:

git-svn

I have setup an empty svn on a server and I have been working on locally making commits along the way. Now I wish to commit my repo to an svn server. For this I tried:

git-svn checkout http://remote.svn.server.com
git-svn dcommit

Git complains that:

Use of uninitialized value in concatenation (.) or string at /usr/bin/git-svn line 411.
Committing to  ...
Unable to determine upstream SVN information from HEAD history

Since I started on my local computer first, and the repo online is empty, I can't find any info on how to make this work.

like image 707
Ravi Chhabra Avatar asked Jan 19 '09 14:01

Ravi Chhabra


2 Answers

I needed something like this recently and the process is relatively straightforward.

There's good tutorial by Brandon Dimcheff, "Commit a linear git history to subversion" (replaces old broken link), which these steps are based on.

As of Git version 1.6.3 these are the steps:

$ svnadmin create svn_repository
$ svn mkdir -m "Initial setup" file:///full/path/to/svn_repository/trunk

$ mkdir gitrepo && cd gitrepo
$ git init
$ echo 'Hello from Git' > file.txt
$ git add file.txt
$ git commit -m "Hello from Git"

$ git svn init --trunk=trunk file:///full/path/to/svn_repository/
$ git svn fetch

$ git branch -a # Lists remotes/trunk

$ git rebase --onto remotes/trunk --root master
# => Applying: Hello from Git etc.

$ git svn dcommit
# => Committing to ... Committed r2 ... etc

You can do a svn checkout of svn_repository now and see your Git repo.

like image 132
karmi Avatar answered Oct 12 '22 22:10

karmi


Here is what I would do:

git-svn clone http://remote.svn.server.com otherdir

Then in other dir pull the changes locally from your previous dir. Then you should have a git repo that is "connected" via git-svn and you should be able to use dcommit on it.

This might also be a useful read.

like image 29
tcurdt Avatar answered Oct 12 '22 21:10

tcurdt