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

时间:2011-07-05 10:37:38

标签: merge bazaar

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

我最初的意图(据我记得我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

我想合并两个分支的几个文件(以便它们在所有这两个分支和任何后续分支中变得相同)。这样做的最佳方法是什么?

P.S。为了目视检查更改/合并,我想使用kdiff3

1 个答案:

答案 0 :(得分:3)

实际上,您的第一个位置是分支C:/My/Proj/path/qwertyBazaarRepo/trunk的轻量级结帐,它确实使用了共享存储库。第二个位置是独立分支。

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

如果您不想合并历史记录,只需要更改,那么您可以直接在2棵树上使用kdiff3并手动合并更改,或使用bzr merge path/to/file命令合并单个文件,运行{{1}来自你的主干分支(第一个位置)。

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

此外,您可以在合并后使用bzr merge --force FILE删除您不希望在那里进行的更改。