kit*_*une 8 .net asp.net version-control mercurial dvcs
我正在为我们的cms(在asp.net webforms上运行)编写某种新的管理仪表板.我们的一些旧服务器只能出于各种原因处理.NET 2.0,所以我必须重写我使用lambda表达式等的代码.
我想知道如何使用像mercurial这样的dvcs同时开发这两个版本.
我目前的代码库和mercurial存储库是针对.NET 3.5的.我对mercurial相对较新,我想我必须分支代码库?
任何最佳实践或教程?
Mar*_*ler 13
是的,你可以使用Mercurial.以下是它的工作原理.
假设您调用当前的克隆,new-dot-net因为它支持新的.Net版本.你复制它并调用它
old-dot-net或类似的东西.这两个克隆现在相同,都是.Net 3.5.
现在仔细进行小的更改,old-dot-net以使.Net 2.0兼容.当您进行更改时,两个克隆将开始分歧:
new-dot-net: ... [a] --- [b] old-dot-net: ... [a] --- [b] --- [c] --- [d]
在这里,您可以创建[c]和[d]更改集以添加.Net 2.0兼容性.请注意old-dot-net克隆如何包含更多变更集,new-dot-net因为它具有您不希望看到的向后兼容性更改new-dot-net.在您继续工作时,重要的是要考虑到这一点:net-dot-net将包含更改集的子集old-dot-net.的变化从流动
new-dot-net到old-dot-net,但从来没有在相反方向上.
假设你做了一个新的改变new-dot-net.您进行了更改,new-dot-net现在情况如下:
new-dot-net: ... [a] --- [b] --- [x] old-dot-net: ... [a] --- [b] --- [c] --- [d]
您现在想要将更改后端移植到old-dot-net您,您可以更改为old-dot-net以及从中拉出net-dot-net:
% cd old-dot-net
% hg pull ../new-dot-net
Run Code Online (Sandbox Code Playgroud)
这将创建一个新的头在old-dot-net:
[x]
/
old-dot-net: ... [a] --- [b] --- [c] --- [d]
因为[x]变更集具有[b]父变更集.你现在有多个头,必须合并以减少头数.通过合并,您可以创建一个新的变更集,这是您说"这是如何[x]和[d]应该结合"的方式.如果[x]
变更只会接触代码是不是也感动于[c]和
[d],则合并应该只是工作.否则,您将看到合并工具并且必须解决冲突.您将合并提交为chageset [e]:
[x] --------------.
/ \
old-dot-net: ... [a] --- [b] --- [c] --- [d] --- [e]
而且您已经完成了 - 您现在已将[x]更改合并到.Net 2.0兼容代码中.
每当有变化时你都会重复这个new-dot-net.假设添加了更多功能:
new-dot-net: ... [a] --- [b] --- [x] --- [y] --- [z]
把它们拉进old-dot-net你后得到
[x] --------------.---- [y] --- [z]
/ \
old-dot-net: ... [a] --- [b] --- [c] --- [d] --- [e]
你现在合并[e]并[z]:
[x] --------------.---- [y] --- [z]
/ \ \
old-dot-net: ... [a] --- [b] --- [c] --- [d] --- [e] ----------- [f]
要记住的重要部分是:
new-dot-net.old-dot-netold-dot-net到new-dot-net.如果您在某些时候发现new-dot-net不需要更改old-dot-net,那么您仍然需要将其拉入并合并它.但是你会做一个虚拟合并.如果磁头[w]和
[g],并且要保留[g],然后做
% HGMERGE=true hg merge -y
% hg revert --all --rev g
% hg commit -m 'Dummy merge with y.'
Run Code Online (Sandbox Code Playgroud)
该诀窍是做合并,而无需关心结果,然后恢复所有的变更,并提交不变的工作副本合并.这样,你告诉全世界"的组合[w],并
[g]为[g]",也就是说,你扔掉的变化[w].在取得了新的变化new-dot-net后,[w]然后可以合并正常人一样.
| 归档时间: |
|
| 查看次数: |
341 次 |
| 最近记录: |