2009-10-01 14 views
1

这是情景:的Git,SVN会很困惑,在标签具有相同名称作为以前删除的一个

  • 我复制我的颠覆躯干成标签“A”。
  • 然后,我从本地存储库运行'git svn fetch',找到了分支点,并将其添加为远程分支'svn/tags/A'。
  • 后来我从subversion中删除标签“A”,并再次运行'git svn fetch'。
  • 我做了'git branch -rd svn/tags/A'从本地存储库中删除悬挂的远程分支。
  • 在稍后的交汇处,我在我的Subversion存储库中创建了一个名为“A”的新标签。 'git svn fetch'找到了分支点,但问题如下:

我的本地git仓库认为'svn/tags/A'指向已删除分支的旧提交。我在'.git/svn/svn/tags'中发现了一些对'A'的引用,也许他们正在与我混淆。但是当我启动另一个git仓库并在运行'git svn fetch'之前删除这些文件时,我仍然得到'svn/tags/A'指向错误的提交。

是否有任何方法清除远程Subversion分支并将其重新读入到本地git存储库中?

编辑:我有点得到这个工作,但我不确定它的机制。
我移出'.git/svn/svn/tags'中的引用来分支'A',然后执行'git svn reset -r 1000',其中r1000是紧接在分支点之前的提交。然后做了另一个'git svn fetch',它看起来像它的工作。
'svn/tags/A'现在指向新的提交。

回答

0

git svn reset允许更改rev_maprefs/remotes/git-svn,这将允许git重建其对新SVN标记的引用。
注意:git svn update不存在。
git svn rebase或更好:如果你在git方面做了一些工作,那么应该在这里使用第一个git svn fetch,如documentation中提到的潜在git rebase --onto

相关问题