我在服务器上设置了一个空的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
由于我首先在本地计算机上启动,并且在线的回购已空,我找不到有关如何使其工作的任何信息。
答案 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也可能是一本有用的读物。