Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
水银(?)和#x2B;SVN互操作_Svn_Mercurial_Dvcs - Fatal编程技术网

水银(?)和#x2B;SVN互操作

水银(?)和#x2B;SVN互操作,svn,mercurial,dvcs,Svn,Mercurial,Dvcs,我需要一些关于以下场景的建议: 我的Uni group拥有一个庞大的SVN存储库。事实上,我对整个事情的一个子项目很感兴趣(比如说/trunk/projects/my_project)——不知道它是否真的与SVN有关 我将负责这个项目95%的承诺 我更喜欢使用DVCS。最好是Mercurial,因为这是我熟悉的,但我很灵活,以防其他东西更适合工作流程 在my_项目中可能会有许多较小的单独子项目。我希望能够在每一个单独的工作 工作流程如下所示: 创建一个新的子项目 黑客(分支机构等) 当达到

我需要一些关于以下场景的建议:

  • 我的Uni group拥有一个庞大的SVN存储库。事实上,我对整个事情的一个子项目很感兴趣(比如说/trunk/projects/my_project)——不知道它是否真的与SVN有关

  • 我将负责这个项目95%的承诺

  • 我更喜欢使用DVCS。最好是Mercurial,因为这是我熟悉的,但我很灵活,以防其他东西更适合工作流程

  • 在my_项目中可能会有许多较小的单独子项目。我希望能够在每一个单独的工作

工作流程如下所示:

  • 创建一个新的子项目

  • 黑客(分支机构等)

  • 当达到合理的稳定状态时,纳入主项目并推送到SVN

  • 有时,我可能需要将SVN中的一些更改(即其他人所做的更改)引入主项目,甚至子项目。这些都将进入主干,即在SVN级别上没有分支

我知道Mercurial for SVN互操作性,我怀疑Mercurial subrepo功能可能会派上用场,但仍然不确定如何组织整个混乱局面。

它似乎非常适合您。它允许你拉和推到SVN回购,但在本地你有一个HG回购。

正如Lucero所建议的,hgsubversion是你通常寻找的工具。此外,正如拉塞在对Lucero的回答的评论中所指出的,使用Mercurial的子存储库功能与SVN中处理子存储库或外部存储库的方式冲突:Mercurial使用普通文件存储子存储库的信息,而SVN不解释此信息

无论如何,根据您的问题,您似乎不需要使用子存储库功能:您只需要在希望跟踪各个子项目之间的相互依赖关系时才需要它。因此,假设您有独立的子项目,只需在SVN中为每个项目创建
/trunk/projects/my_project
下面的目录,并分别使用Mercurial和hgsubversion

基本信息是hgsubversion允许您本地受益于所有DVCS功能,但在发布您的作品时,您或多或少受到SVN功能的限制。当使用SVN这样的中心线性系统作为协作中心时,您不能使用与团队协作相关的DVCS工作流


也许可以用SVN设计一个(脆弱的)团队工作流,模仿DVCS的某些方面,但我想这比说服你的同事也使用Mercurial或只是向你发送补丁要麻烦得多。

此外,hgsubversion网页提到了这一点“现在,您只能克隆或多或少使用标准Subversion布局的存储库,即/trunk、/branchs、/tags等。这会带来问题吗?对于Subversion中包含的项目,您将如何使用Mercurial subrepos?仅与Subversion存储库交谈的人在查看这些子repo的内容时会遇到问题吗?@oggy,HG-subrepo只是普通的HG-repo,它们由父repo处理(推/拉等)。因此,假设subrepo绑定到SVN,我希望
hgsubversion
能够工作。另外,假设您的SVN回购遵循正常的SVN命名方案(主干/分支/标记),这是SVN的最佳实践,因此通常是如何设置的。@Lucero,有关我的场景,请参阅我的项目符号#1。这是我无法改变的,不幸的是,我认为这应该很符合我的要求!谢谢