题
最近我从SVN到善变的.现在我不知道如何实现我打算分枝的工作流量在善变的根据良好做法,希望其他开发人员了解什么会发生在储存库中。
这是本的工作流程:
- 通常我有一个继/缺省分支的工作在当前版本系列情况发生。让我们说是1。x.同时,我使用一支2.x工作的下一个主要释放。改变在这个分支的可能激进,因此合并与干/default/1.x的分支,使得没有意义的在这里。
- 之后的一段时间的工作月2.x可以完成和2.0版本得到释放。现在我想2。x分被新的缺省/主干支和当前缺省/主干是1。x分支。
- 这种反复过程,有可能来的新3.x分支。和以前一样,如果3.0被释放,3.x应该成为新的默认支路的话,那当前的默认应该成为2中。x分支(再)。
我的问题是 不 是否这项工作流程是一个很好的一个(我想这是不是根本错误的).我的问题是,是否这样我意识到这个刺客可以被看作是良好的实践,或者如果有更好的机会。
所以这里就是我的计划来管理分支机构,在刺客...
开始从一个仓库单支持有代码的电流释放系列1。x:
$ hg init
$ echo "hello world" > file1.txt
$ hg ci -A -m "Initial commit of 1.x code"
开始释放2.x:
$ hg branch 2.x
$ hg ci -m "Create new branch for 2.x development"
$ echo "Big new feature for 2.x" > file2.txt
$ hg ci -A -m "Add big new feature"
与此同时,做一些工作在当前版本系列(1中。x):
$ hg up default
$ echo "Minor adjustments specific for 1.x" > file3.txt
$ hg ci -A -m "Minor adjustments"
经过一段时间后2.0版准备就绪,yippee!让 默认的 支 1.x 和 2.x 要 默认的:
$ hg up default
$ hg branch 1.x
$ hg ci -m "Make default branch to 1.x branch"
$ hg up 2.x
$ hg ci --close-branch -m "Close branch 2.x"
$ hg branch --force default
$ hg ci -m "Make former 2.x branch to new default"
现在创建一个新的分支 3.x 并且在它的工作,还在工作 默认的.再次,在一段时间之后3.0准备,这是一次又一次的管理分支的名字:
$ hg up default
$ hg branch --force 2.x # (reuse previously closed 2.x branch name)
$ hg ci -m "Make default branch to 2.x branch"
$ hg up 3.x
$ hg ci --close-branch -m "Close branch 3.x"
$ hg branch --force default
$ hg ci -m "Make former 3.x branch to new default"
该仓库现在可以像这样('o'的国家元首):
o Branch default (3.x)
|
| o Branch 2.x
\|
| o Branch 1.x
\|
|
.
主要的一点我不肯定的是如果 重复利用 支的名字而玩弄的支的名字 默认的 是的良好做法。
一个很大的文本对于这个问题-对不起-但我想要清楚我在做什么。
解决方案
这里就是我想要做的:
让 default
你的"主流"的分支。尖端的这个分是"目前向公众发布的"版本的你的代码。关键的错误修正可以提交,直接向该分支和并入发展分支。
开始工作2.0版,做一个 2.0-dev
分支。提交更改为2.0要分支,并且合并的关键错误修正自主线(default
)成。一旦你完成了2.0、合并 2.0-dev
入 default
和标签的结果 2.0
.
做事这种方式意味着你不需要担心玩杂耍的支的名字,和可以合并的关键错误修正为主流纳入发展的树枝很容易。
它还可以扩展你的工作多的未来版本,在一次(说2.1和3.0).你可以定期合并的2.1变为3.0保持3.0流。
你最终会有一个图像这样:
$ hg glog -l 1000
@ changeset: 25:efc0096f47c0 tip
| summary: Added tag 3.0 for changeset d1a7fc3d7d77
|
o changeset: 24:d1a7fc3d7d77 3.0
|\ summary: Merge in the redesign changes.
| |
| o changeset: 23:b5b69d24c8f7 3.0-dev
| | summary: Finish 3.0 redesign.
| |
| o changeset: 22:4c2f98fac54b 3.0-dev
|/| summary: Merge in the latest changes to 2.1/mainline.
| |
o | changeset: 21:37df04521032
| | summary: Added tag 2.1 for changeset 39ecc520fc0a
| |
o | changeset: 20:39ecc520fc0a 2.1
|\ \ summary: 2.1 development is done.
| | |
| o | changeset: 19:208f3f9236af 2.1-dev
| | | summary: Finish the 2.1 work.
| | |
| | o changeset: 18:4a024009a9d6 3.0-dev
| | | summary: More redesign work.
| | |
| | o changeset: 17:00c416888c25 3.0-dev
| |/| summary: Merge in changes from the 2.1 branch to keep the redesign current.
| | |
| o | changeset: 16:a57e781a0db1 2.1-dev
| | | summary: More 2.1 work.
| | |
| | o changeset: 15:ddeb65402a61 3.0-dev
| | | summary: More redesign work.
| | |
+---o changeset: 14:90f5d7a8af9a 3.0-dev
| | | summary: Merge in the fire fixes.
| | |
| o | changeset: 13:78a949b67bb9 2.1-dev
|/| | summary: Merge in the fire fixes.
| | |
o | | changeset: 12:6dfe9d856202
| | | summary: Oh no everything is on fire, fix it in the mainline.
| | |
| o | changeset: 11:86767671dcdb 2.1-dev
| | | summary: Smaller changes for 2.1.
| | |
| | o changeset: 10:25dec81d2546 3.0-dev
| | | summary: Work more on the redesign.
| | |
+---o changeset: 9:42c7d689fb24 3.0-dev
| | summary: Start working on a complete redesign.
| |
| o changeset: 8:3da99186ca7d 2.1-dev
|/ summary: Start working on 2.1.
|
o changeset: 7:9ba79361827d
| summary: Added tag 2.0 for changeset 755ed5c5e291
|
o changeset: 6:755ed5c5e291 2.0
|\ summary: Merge in the dev branch for 2.0.
| |
| o changeset: 5:44a833fcc838 2.0-dev
| | summary: Finish work on 2.0.
| |
| o changeset: 4:d7ba6aae1651 2.0-dev
|/| summary: Merge in the critical fix.
| |
o | changeset: 3:968049f1b33a
| | summary: Fix a critical bug on the main branch.
| |
| o changeset: 2:917869609b25 2.0-dev
| | summary: More work on the new version.
| |
| o changeset: 1:f95798b9cb2e 2.0-dev
|/ summary: Start working on version 2.0.
|
o changeset: 0:8a3fb044d3f4
summary: Initial commit.
其他提示
我认为你应该考虑这一点: 一个成功的某分支的模式.
我不大风扇录,但这种模式是额外的有用的善变的。