0

我最近开始使用 Bzr 共享存储库来管理我的项目我通过从一个独立的存储库分支来得出这一点,到目前为止我一直在进行增量提交。这个新的共享存储库有一个“/trunk, /branches”布局:

--xxxx_shared
  --trunk
    --src
    --lib
    --doc
  --branches

因此,我将此存储库的主干中的一些更改合并到主线中,但是当我后来尝试从主干推送一些进一步的更改时,我收到一个错误,指出两个分支已经分歧。我已将合并提交到主线中,因此出现了分歧。但是,鉴于必须提交任何合并,如何避免这种情况呢?还是我严重误解了事情?

为了解决这个冲突,我从主线 BACK 合并到共享主干分支。我怀疑这是一个错误,因为我现在有 /xxxx_shared/trunk 的修订历史,如下所示:

    ------------------------------------------------------------
    revno: 74 [merge]
    committer: Chris <xxxxxxxx@yahoo.com>
    branch nick: trunk
    timestamp: Wed 2011-12-14 03:47:49 +0000
    message:
      Committing merge from parent branch.
        ------------------------------------------------------------
        revno: 71.1.1 [merge]
        committer: Chris <xxxxxxxx@yahoo.com>
        branch nick: mainline
        timestamp: Tue 2011-12-13 21:13:06 +0000
        message:
          Merged WinAPI toolbar updates from /projects/xxxx_shared/trunk.
    ------------------------------------------------------------
    revno: 73
    committer: Chris <xxxxxxxx@yahoo.com>
    branch nick: trunk
    timestamp: Wed 2011-12-14 03:33:35 +0000
    message:
      Updated the WinAPI toolbar button code...

所以上面的 71.1.1 已经从主线合并了,是指从 /projects/xxxx_shared/trunk (shared repo) 合并到主线。

我希望这一切都清楚。但是如何解决这个问题以恢复线性发展呢?什么是 Bzr 的保守“最佳实践”,以避免将来发生这种事情?我仍然有原始独立存储库的未修改副本,因此如果需要,我可以随时返回并重新开始。

4

1 回答 1

1

如果你想让“主线”作为“主干”的精确镜像,你应该只从主干推到主线,或者更好地从主干拉到主线:

cd mainline
bzr pull /path/to/repo/trunk

如果您有分支分支的情况,那么您需要使用命令bzr missing来了解为什么会出现分支,然后合并到主干,然后执行pull上面的命令。因此,您的主线将是主干的精确副本。

于 2011-12-16T09:19:00.203 回答