具有部分历史记录的单向增量SVN到Mercurial工作流
我们在SVN存储库中维护了更大的代码库。 对于发布,我们只希望将发布标签/分支推送到Mercurial存储库中,不包括主干中的历史记录 我几乎没有DVCSs方面的经验,所以可能我尝试的方向不对。如果你能指出缺点或其他选择,我会非常高兴 以下是我迄今为止所做的尝试:具有部分历史记录的单向增量SVN到Mercurial工作流,svn,mercurial,hgsubversion,Svn,Mercurial,Hgsubversion,我们在SVN存储库中维护了更大的代码库。 对于发布,我们只希望将发布标签/分支推送到Mercurial存储库中,不包括主干中的历史记录 我几乎没有DVCSs方面的经验,所以可能我尝试的方向不对。如果你能指出缺点或其他选择,我会非常高兴 以下是我迄今为止所做的尝试: hg-convert-extension:使用hg-convert转换了完整的存储库,该存储库应根据需要提取完整的历史记录,包括分支和标记。但是hg标记仅返回提示和默认值,hg分支仅返回默认值。此外,它的速度相当慢(是的,我读到了关
- hg-convert-extension:使用
转换了完整的存储库,该存储库应根据需要提取完整的历史记录,包括分支和标记。但是hg-convert
仅返回提示和默认值,hg标记
仅返回默认值。此外,它的速度相当慢(是的,我读到了关于hg分支
),它包含了完整的历史记录。我读到它可以用于增量拉动,但我不认为这对我有用svnsync
- hg convert extension:转换一个标记并从另一个标记中提取可以工作w/
,但我并不真正信任它。它是否正确处理删除-f
- hgsubversion:
完整存储库也不包括标记和分支hgClone
- hgsubversion:
在标记上工作,但无法从另一个标记中提取(中止:无法在存储库中的其他路径上工作)hg clone
提前谢谢你的指点。“Noob,先读这篇文章,然后再回来”也很受欢迎。回答我自己的问题:我找到了实现我需要的方法 假设我们有一个空的hg存储库,我想在其中交付我的基线,我添加了一个过滤所有svn元数据的
.hgignore
文件:
syntax glob
.svn
然后,我做以下工作:
svn公司。
hg addremove
hg提交-m“拉式修订版”
hg标签
svn开关。
hg addremove
,hg commit
&hg tag
如上所述谢谢。也许是个场外问题,但你能再解释一下你为什么要实现这样的目标吗?对我来说这似乎很奇怪。@gizmo是的,这很奇怪:我们在我们的网站上使用svn,现在不想为整个团队切换到hg。(日程紧,再教育时间不多,团队分散,通常的借口)我们将代码交付给客户的持续集成环境,该环境使用hg作为VCS。我们不希望将完整的历史记录推送到该存储库,而只希望将定义的发布基线推送到该存储库。此环境只能通过VPN从我们可以访问的客户机器访问。因此,这个过程是:在开发过程中与SVN合作,对于发布,从VPN机器上的SVN拉入并推入hg。