如何将Git repo提交到空的repo SVN服务器?

时间:2009-01-19 14:15:25

标签: git-svn

我在服务器上设置了一个空的svn,我一直在本地进行提交。现在我希望将我的repo提交到svn服务器。为此我尝试了:

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

Git抱怨说:

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

由于我首先在本地计算机上启动,并且在线的回购已空,我找不到有关如何使其工作的任何信息。

2 个答案:

答案 0 :(得分:28)

我最近需要这样的东西,而且过程相对简单。

Brandon Dimcheff提供了很好的教程,"Commit a linear git history to subversion"(替换old broken link),这些步骤基于这些教程。

从Git 1.6.3开始,这些步骤是:

$ 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

您现在可以执行svn checkout svn_repository并查看您的Git仓库。

答案 1 :(得分:6)

以下是我要做的事情:

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

然后在其他目录中从您之前的目录本地拉出更改。然后你应该有一个通过git-svn“连接”的git repo,你应该可以使用它。

This也可能是一本有用的读物​​。