Rek*_*kin 2 svn git workflow mercurial dvcs
是否可以使用VCS(最好是SVN)和DVCS(最好是Mercurial或Git)创建简化的工作流程?
以下事实描述了所需的工
这里有一个棘手的部分:他的作品可以合并到中央回购中,保留它的历史吗?那么主要开发团队可以跟踪Joe的个人提交?
我想学习任何东西,这可以指出我正确的方向.如果工作流不是不可能实现的,那么可以随意抛出指向教程的链接.如果您对VCS-DVCS工作流程有任何经验,请分享.如果不可能实现它,那么为什么对我来说也很有价值.
我知道这个问题可能与其他问题类似(例如vcs或dvcs工作流程),但无论历史是否被保留,我都找不到任何线索.
您可以使用Mercurial和Git执行此操作 - 两个项目都具有用于与Subversion交互的双向桥接.
对于Mercurial,Joe将使用hgsubversion在他的机器上获得具有完整Subversion历史记录的Mercurial存储库.然后他使用Mercurial正常发展.他将反复从Subversion服务器获取新的修订版本并在其上重新设置自己的更改集.
因此,让我们假设Joe在SVN的修订版2之上做了三个变更集:
... R1 --- R2 --- J1 --- J2 --- J3
Run Code Online (Sandbox Code Playgroud)
然后他从Subversion中hg pull引入了新的变更集(只是- hgsubversion将理解它应该逐步将新的Subversion版本转换为Mercurial变更集).结果是:
... R1 --- R2 --- J1 --- J2 --- J3
\
R3 --- R4
Run Code Online (Sandbox Code Playgroud)
新分支代表新的Subversion修订版.由于Subversion是线性的,他必须在新分支之上重新设计他的工作:
... R1 --- R2 --- R3 --- R4 --- J1 --- J2 --- J3
Run Code Online (Sandbox Code Playgroud)
他一直在这样工作,总是变基,而不是合并,当需要发送更改时,他会要求您或其他人在Subversion存储库上提交权限以获取他的Mercurial存储库.你得到
... R1 --- R2 --- R3 --- R4 --- R5 --- J1 --- J2 --- J3 --- J4
Run Code Online (Sandbox Code Playgroud)
现在你可以将J1-4变换集推送到Subversion:
... R1 --- R2 --- R3 --- R4 --- R5 --- R6 --- R7 --- R8 --- R9
Run Code Online (Sandbox Code Playgroud)
历史被保留:四个变更集在Subversion中成为四个修订版.请参阅我的指南以获取更多信息和漂亮的图片.