Git-svn对与之前删除的标记同名的标记感到困惑

时间:2009-10-01 08:01:20

标签: svn git git-svn

这是情景:

  • 我将我的subversion主干复制到标签“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是紧接在I分支之前的提交。然后做了另一个'git svn fetch',它看起来很有效。
'svn / tags / A'现在指向新提交。

1 个答案:

答案 0 :(得分: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