gru*_*czy 2 svn migration mercurial
我们subversion
以下列方式存储我们的项目:
我该如何组织我的mercurial
寄存器来托管它?我创建了三个存储库,一个用于主干,一个用于每个分支作为中央服务器,但是因为mercurial有分支,所以我可能做错了.至少它感觉不对,但当我试图将单个变更集从开发本地仓库推送到稳定的本地仓库时,它推动了我所有的新变更集.那不是我想要的.
EDIT1
我在后备箱中修改了623,在稳定中修改了620.我想只将变更集623推送到稳定状态.我试过hg push -r623 ../stable
,但hg
通知我,推动了4个变更集.
好的,让我们一次解决这个问题.
请注意,对于布局和组织,有很多方法可以做到这一点,唯一真正决定的人就是你.
但是,我对您在评论中概述的工作流程的建议是使用一个存储库作为默认和稳定,使用两个命名分支.
至于旧代码,我会将它保存在一个单独的存储库中,如果你需要这样做,只需从主要代码中合并你需要的东西.
因此,这是我如何组织它:
专注于主存储库,这为您提供以下能力:
最后一个问题是,如何在合并时挑选变更集.
好吧,你做不到.合并合并您选择的变更集+其所有祖先.这就是Mercurial合并的方式.
有两种方法可以缓解这种情况:
移植扩展允许您从一个分支中取出一个或多个变更集,并将它们(移植它们)复制到另一个分支上.变更集将被标记为移植,因此未来的合并不会超过此.但问题是,除了您添加到提交消息的任何内容之外,图形日志中没有可见的行来表明这就是您所做的.
在其他地方提交变更集的另一种方法可能最好用一个例子来描述.
我们假设你有以下两个分支:
default: 1--2--3--4--5--6
\
stable: x--y--z
Run Code Online (Sandbox Code Playgroud)
现在,您希望在默认情况下在变更集6之上提交变更集7,然后仅将变更集"而不是2-5""合并"到稳定分支上,正如我所说,合并将不会这样做.
您可以做的是找到以前的共同祖先,1
在这种情况下,在该变更集之上提交新的变更集,实际上获取此存储库日志:
default: 1--2--3--4--5--6
| |\
+--- | 7
\
stable: x--y--z
Run Code Online (Sandbox Code Playgroud)
然后,您可以将第7个变更集合并到stable和default:
default: 1--2--3--4--5--6--7
| |\ /
+--- | 7------+------+
\ \
stable: x--y--z--7
Run Code Online (Sandbox Code Playgroud)
以下是TortoiseHg如何显示最后一个存储库,我只是移动了标签:
归档时间: |
|
查看次数: |
480 次 |
最近记录: |