【发布时间】:2011-12-14 23:00:14
【问题描述】:
我有very 最近开始使用 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已经从主线合并了,指的是合并FROM /projects/xxxx_shared/trunk (shared repo)到主线。
我希望这一切都清楚。但是如何解决这个问题以恢复线性发展呢?什么是 Bzr 的保守“最佳实践”,以避免将来发生这种事情?我仍然有原始独立存储库的未修改副本,因此如果需要,我可以随时返回并重新开始。
【问题讨论】:
-
“主线”是什么意思?是单独的分支吗?还是应该是主干分支的副本?
-
FWIW,存储库的布局与 bzr 无关 - 只是有单独的分支很重要。
-
@bialix - 这是共享存储库从中分支出来的原始独立存储库。
-
@bialix - 我没有在这条“主线”上做任何工作,它更多的是备份(它已同步到 DriveHQ)。我对共享存储库的主干进行增量提交,并在其分支中进行更多实验性的、可能破坏性的工作。
标签: merge repository bazaar merge-conflict-resolution