2013-04-23 69 views
4

我们正在将旧的SVN存储库迁移到Git。这与svn2git工作得很好。现在我们只想在git上工作,但需要将任何新的git提交镜像到旧的SVN存储库。这是必要的,因为一些生产系统仍然通过SVN部署。在使用svn2git创建的repo上使用git svn

因此,我试图在我运行svn2git之前使用git svn。我不是专家(还),但我想,这样的事情应该做的伎俩:

$ git svn dcommit --interactive 
Unable to determine upstream SVN information from HEAD history. 
Perhaps the repository is empty. at /usr/lib/git-core/git-svn line 780. 

我也试图获得关于进口SVN数据的一些信息:

$ git svn info 
Unable to determine upstream SVN information from working tree history 

所以似乎svn2git做了一些魔术,并使git svn处于“未配置状态”。 据我所知,git必须保留一些引用来映射SVN提交到git提交。相反的命令svn2git --rebase工作:它提取任何新的SVN提交并将它们应用于git repo。所以数据似乎在svn2git(AFAIK基于git svn)可用。

那么我该如何让git svn工作?或者还有另外一种方式,我们可以如何将git提交从新的回购库中提交回SVN(无需从头开始)?

+0

所以你正在尝试使用'git svn'直接提交旧'SVN'回购? – Atropo 2013-07-22 08:06:22

回答

1

尝试“git svn rebase”。

我遇到了完全相同的问题,并使用托管的包装脚本@vhttps://github.com/nirvdrum/svn2git。 请花点时间阅读SVN to GIT migration failed using svn2git

+0

感谢您的回答。我无法真正判断它是否有效,因为我们无法及时解决问题,所以我们现在采用了不同的方法。无论如何,我会接受它作为正确答案;)。 – 2013-07-22 20:11:53

+0

实际上'git svn rebase'与'git svn info'给出了同样的错误信息:“无法确定工作树历史记录中的上游SVN信息”,所以不起作用。 – Calin 2014-05-19 16:24:28