Merge 如何正确合并两个bzr分支?

Merge 如何正确合并两个bzr分支?,merge,bazaar,Merge,Bazaar,我与同一项目的两个分支机构合作。它们都是我几个月前创造的。我是这个项目的唯一开发者。经过长时间的忽视,我又回到了这个项目 我最初的意图(据我记忆所及,我2年前的想法)是拥有一个单一(共享)的存储库,而不需要工作树,并拥有主干分支和几个实验分支(根据需要)。我最终得到了两个分支——第一个是“生产分支”,第二个是为了测试实验特性而创建的。 以下是两个分支机构内部发布的bzr info的输出: 分支机构1 C:\My\Proj\path\qwerty>bzr info Lightweight c

我与同一项目的两个分支机构合作。它们都是我几个月前创造的。我是这个项目的唯一开发者。经过长时间的忽视,我又回到了这个项目

我最初的意图(据我记忆所及,我2年前的想法)是拥有一个单一(共享)的存储库,而不需要工作树,并拥有主干分支和几个实验分支(根据需要)。我最终得到了两个分支——第一个是“生产分支”,第二个是为了测试实验特性而创建的。 以下是两个分支机构内部发布的
bzr info
的输出:

分支机构1

C:\My\Proj\path\qwerty>bzr info
Lightweight checkout (format: 2a)
Location:
  light checkout root: .
   checkout of branch: C:/My/Proj/path/qwertyBazaarRepo/trunk
    shared repository: C:/My/Proj/path/qwertyBazaarRepo

Related branches:
  parent branch: .
  submit branch: C:/My/Proj/path/ExperimentalQwerty

C:\My\Proj\path\qwerty>
分支机构2

C:\My\Proj\path\ExperimentalQwerty>bzr info
Standalone tree (format: 2a)
Location:
  branch root: .

Related branches:
  parent branch: C:/My/Proj/path/qwertyBazaarRepo/trunk
  submit branch: C:/My/Proj/path/qwertyBazaarRepo/trunk
我想合并两个分支的几个文件(以便它们在所有这两个分支和任何后续分支中都相同)。这样做的最佳方法是什么


另外,对于变更/合并的目视检查,我想使用kdiff3,实际上您的第一个位置是分支的轻型签出
C:/My/Proj/path/qwertyBazaarRepo/trunk
,它确实使用了共享存储库。第二个位置是独立分支

要比较两个分支的历史记录,请使用
bzr missing path/To/other/branch
命令或
bzr qlog path/To/branch1 path/To/branch2

如果您不想合并历史记录,而只想合并更改,则可以直接在2个树上使用kdiff3并手动合并更改,或者使用
bzr merge path/to/file
命令合并单个文件,从主干分支(第一个位置)运行
merge

要合并多个文件中的更改,可以在每次合并后多次运行
bzr merge FILE
,而无需提交,但对于所有后续合并,必须使用
--force
命令行选项,即
bzr merge--force FILE


此外,您还可以在合并后使用
bzr shelve
删除您不希望出现的更改。

谢谢。这真的很有帮助。如果可以的话,我想问一个简短的问题。将实验分支合并到主干后,如何将实验分支与主干同步?通过简单的重新分支?或者有更好的方法吗?@bg:如果你愿意,你可以把主干合并回实验性的。通常,当实验分支结束生命时,我只是将其合并到主干(如果需要的话),然后将其删除(或者将其移动到特殊的limbo目录,我称之为_MERGED/,有时我会从_MERGED删除分支)。