2

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

现在,在我的本地 git-svn 克隆目录中,我更新了 .git/config 以用新的 url 更新以前的 url。但是,当我执行 git svn info 或 git svn rebase 时,我收到以下错误:无法从工作树历史记录中确定上游 SVN 信息

此外,我使用以下命令创建了一个新的 git-svn 克隆: git svn init -T trunk -t tags -b branches svn+ssh://USER@svn.code.sf.net/p/dmtcp/code dmtcp-混帐

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

为了让事情变得复杂,我在 github 上维护了一个 git 存储库,一旦它们被提交到 sourceforge svn(出于历史原因),我就会在其中推送更改。这一切都用于与以前的 sourceforge svn url 一起工作。但是现在有了更新的存储库,引用都搞砸了,即它们与 github 上的存储库不匹配。

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

谢谢!

4

1 回答 1

1

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

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

于 2013-03-05T02:29:10.487 回答