我刚刚开始接触集市,和我发现,结账功能对于我的工作方式是最有用的 - 也就是我罐体C / O从“底本”,做一些发展,然后提交我在新目录中的变化。这则更新“主副本”。

但我的工作是什么,如果在(例如)两个项目,更改代码的不同部分?说:

~/master                - master copy
bzr co master ./gui
bzr co master ./engine

所以我在做GUI相关的东西在./gui目录以及引擎罩的东西,在./engine。我应该如何将我的变化?如果我第一次提交GUI,那么发动机,我想任何冲突将在发动机被标记?

有没有一种方法来合并图形用户界面和引擎,然后做一提交到主副本?

为了让事情更复杂一点,怎么样,如果我这样做:

bzr branch gui ./mouse

现在我也许我一直在工作的鼠标,而且还贵。如果我要合并图形用户界面和鼠标的代码,然后提交到主,什么是管理最好的方法?或者事实上,如果我也:

bzr branch gui ./keyboard

如果我变了改变图形用户界面,键盘和鼠标,我应该分层合并 - 即鼠标+键盘,然后用GUI合并本,然后提交GUI掌握

我希望这是清楚我想要实现的!在此先感谢您的时间。

有帮助吗?

解决方案

如果你有两个检出,则提交修改到一个的任何时间,则首先必须拉下从其他的一个的任何变化,因而可能具有以解决在每一步冲突。这通常是一个好主意,因为它更容易解决随着时间冲突,确保您的代码不会偏离太多。

然而,这听起来像你想拥有独立开发的“桂”和“引擎”的工作,或者你只是想节省两个分支您解决冲突,直到开发完成。在这种情况下,你应该创建它们用“的bzr分支”作为独立的分支。每个分支可以利用本地提交,而不用担心相互冲突。然后,当谈到时间合并,你可以做到这一点的3种方式,所有这些都得到了同样的结果之一:

1。合并一个分支到另一个,然后将其推到主

cd gui
bzr merge ../engine
# manually fix any conflicts
bzr commit
bzr push #back up to main

缺点上述方法是,你的“GUI”分支现在在它的“引擎”的变化。这是好的,如果你要扔掉两个分支一旦他们推回到主线。但是,如果你想保持分支越长,您可以:

2。合并到主线:

cd master
bzr merge ../gui
bzr commit
bzr merge ../engine
# manually fix conflicts
bzr commit

这有你仍然有“鬼”和“引擎”作为单独的分支上攻,但你必须承诺一个掌握你确信,他们将两个一起工作了。所以,你真的可能要:

3。创建合并分支:

bzr branch ~/master gui-engine-merge
cd gui-engine-merge
bzr merge ../gui
bzr commit
bzr merge ../engine
# manually fix conflicts
bzr commit
bzr push ~/master
# since this branch was only for merging, you don't need it anymore:
cd ..
rm -r gui-engine-merge

其他提示

是,BZR应该阻止你从发动机回购的变化检查,如果检测到冲突。通常情况下,你首先做“的bzr达”之前,为了办理登机手续,然后确保你的东西起着很好的与他人。

至于你的问题的第二部分,处理鼠标/键盘的分支,这就是我通常会做到这一点。只要进入到GUI目录,然后执行:

bzr merge ../mouse

合并的变化后,可以再从GUI目录提交和将变更集发送到“主”目录。

请注意,我是一个很难的bzr专家,但是这是我一直在处理SVN回购的方式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top