【问题标题】:git-svn: Unable to determine upstream SVN information from working tree historygit-svn:无法从工作树历史中确定上游 SVN 信息
【发布时间】:2013-11-18 23:45:45
【问题描述】:

我正在尝试每天将我的 svn 存储库同步到 git。经过大量阅读,我能够通过在我的 .git/config 中手动创建以下内容来完成这项工作:

[svn-remote "svn"]
url = svn+ssh://svn.myserver.com/project/trunk
fetch = apps/ios/project:refs/remotes/mirror/project

然后,我基于此代码创建了一个分支并将其推送到 git 存储库:

git checkout -b mirror/project mirror/project
git svn rebase
git push

我很高兴,直到我认为我真的可以通过从磁盘中删除克隆的 repo 并再次克隆它,然后尝试从 svn 推送一些更新来确保这确实有效。

git clone git@myrepo.com:myproject
git checkout mirror/project
git svn rebase

这给了我以下错误:Unable to determine upstream SVN information from working tree history

我已阅读有关此消息的无数关于 stackoverflow 的帖子,但我尚未了解任何解决方案。是否可以用 git 新手可以理解的术语来解释为什么 git 选择忘记我的 svn 配置?

【问题讨论】:

标签: git svn git-svn


【解决方案1】:

以下命令让我的新克隆重新连接到 Subversion:

git svn init https://svn.myserver.com/project -s
git update-ref refs/remotes/origin/trunk refs/remotes/origin/master
git svn rebase

似乎更新参考是缺少的步骤。

【讨论】:

  • 在我们的设置中工作,以便将现有的 git svn repo 与 svn repo 重新连接。
【解决方案2】:

我看不出一个简单的“git clone”如何知道你的 svn 上游 repo 信息。

您已将svn-remote 存储在您的.git/config 中。当你克隆一个 repo 时,本地配置不会被克隆(正如我在“Is it possible to clone git config from remote location?”中提到的那样)。

除非你做一个git svn clone 或在你的回购中再次输入svn-remote 信息,否则你将无法访问你的初始信息。

【讨论】:

  • 好吧,我觉得这很奇怪,但这是一个谜团。我将如何修复我的本地克隆,以便 git svn rebase 可以再次工作?
  • @Tim 如果您的本地配置为svn-remote 信息(并使用正确的git 版本:stackoverflow.com/a/3445081/6309),那么不要忘记git svn rebase 首先需要git svn fetchstackoverflow.com/a/18563677/6309
  • 谢谢它的工作。我没有意识到我必须从 svn fetch 创建一个本地分支,然后将它“推过”我现有的远程 svn 分支。我有点惊讶它居然奏效了,但我猜在后台发生了一些合并魔法。
猜你喜欢
  • 1970-01-01
  • 2011-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-19
  • 2019-09-12
  • 1970-01-01
  • 2021-09-30
相关资源
最近更新 更多