0

我一定读过十几个“我如何在 git-svn 中使用 SVN 分支”的问题,但我从未见过任何描述过发生在我身上的事情。我正在尝试一个简单的合并:

(master)% git co -b refac_merge
(refac_merge)% git svn dcommit -n
  Committing to (URL)/trunk
(refac_merge)% git merge remotes/refactor
(refac_merge)% git svn dcommit -n
  Committing to (URL)/branches/refactor # <-- WTF!

我发现了一个听起来相似的问题,但答案实际上并没有告诉我如何解决它。我如何告诉 git-svn 是的,我希望跟踪 SVN 主干的本地分支在合并后继续跟踪 SVN 主干?

4

1 回答 1

0

我可能已经弄清楚为什么我的行为与我见过的其他问题不同。显然,自创建远程分支以来,我的主干(主干)没有看到任何更改,这一点很重要。这意味着历史实际上已经是线性的——我所有的合并都是 FF。

如果我签出 master,提交一个微小的更改,然后签出本地refac_merge分支git rebase master,它会创建一个全新的一系列提交,其中包含相同的消息,但哈希值不同(因为它们现在是 trivial-change 提交的后代,而不是分支点之前的最后一次主干提交)。现在,git svn dcommit -n正确地说它将推送到 SVN 主干。

当然,这也给我留下了一个非常非常丑陋的 git 修订日志。也许有一个“两全其美”的解决方案?

于 2013-01-15T11:01:53.597 回答