我最近开始使用 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 的保守“最佳实践”,以避免将来发生这种事情?我仍然有原始独立存储库的未修改副本,因此如果需要,我可以随时返回并重新开始。