我与同一个项目的两个分支合作。它们都是我几个月前创造的。我是这个项目的唯一开发者。经过长时间的疏忽,我回到了这个项目。
我最初的意图(据我记得我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
答案 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
删除您不希望在那里进行的更改。