我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(共享仓库)到主线。
我希望这一切都清楚。但是,如何解决这个问题以恢复线性发展?与Bzr保守的“最佳实践”是什么,以避免将来出现这种情况?我仍然拥有原始独立存储库的未经修改的副本,因此如果需要,我可以随时返回并重新开始。
答案 0 :(得分:1)
如果你想让“主线”作为“后备箱”的精确镜像,你应该只从主干推到主线,或者更好地从主干拉到主线:
cd mainline
bzr pull /path/to/repo/trunk
如果你有分支分支的情况,那么你需要使用命令bzr missing
来理解为什么在合并到trunk之后发生分歧,并执行上面的pull
命令。因此,您的主线将是主干的精确副本。