2013-03-05 106 views
2

我使用git-svn来处理在sourceforge上托管的svn存储库。最近,我更新了导致svn存储库发生更改的sourceforge项目。确切地说,现在可以使用svn + ssh访问新的svn存储库,并且旧的存储库已被设置为只读。git-svn和更新的svn url

现在,在我的本地git-svn克隆目录中,我更新了.git/config以更新之前的url。然而,当我做混帐SVN信息或混帐SVN变基,我收到以下错误: 无法从工作树历史

进一步确定上游SVN信息,我使用下面的命令创建了一个全新的git - svn的克隆: git svn init -T trunk -t标签-b分支svn + ssh://[email protected]/p/dmtcp/code dmtcp-git

这个克隆工作正常,没有问题它。但是,参考文献与旧版克隆不同。

为了使事情变得复杂,我在github上维护了一个git仓库,当我将它们提交给sourceforge svn(出于历史原因)时,我会推送它们。这一切都用于以前的sourceforge svn url。但是现在使用更新后的版本库,引用全部搞砸了,即它们与github上的版本库不匹配。

当然,我可以做一个“git push -f”来更新参考文献,但是想知道是否有人对修复参考文献有任何想法/想法。

谢谢!

回答

1

git svn使用svn存储库的根URL不仅仅是访问 该存储库。它还需要确定svn分支,并且(至少默认为 )URL将包含在提交消息中。后一个原因是 为什么你的新克隆显示所有提交不同。

但是,您可以将其配置为在使用新URL实际访问存储库时继续使用旧URL作为其他 的用途。您只需要 需要将rewriteRoot项添加到您的 .git/config文件的svn-remote部分,并将其设置为svn存储库的旧URL。 应该允许你继续从svn提取更新。

+0

我读过关于rewriteRoot的内容,但没有足够重视它的目的。感谢您的解释!! (只要我获得足够的声望,我会“投票”你的答案:-)) – 2013-03-05 02:34:54