svn - Mercurial (?) + SVN 互操作

标签 svn mercurial dvcs

我需要针对以下场景的一些建议:

  • 我的 Uni 组有一个巨大的 SVN 存储库。我实际上对整个项目的子目录感兴趣(例如/trunk/projects/my_project)- 不知道它是否真的与 SVN 相关

  • 我将负责该项目 95% 的提交

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

  • my_project 中可能会有许多较小的独立子项目。我希望能够单独处理每一个

工作流程如下:

  • 创建一个新的子项目

  • hack hack hack(分支等)

  • 当达到相当稳定的状态时,包含到主项目中并推送到SVN

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

我知道 Mercurial Wiki page对于 SVN 互操作性,我怀疑 Mercurial subrepo 功能可能会派上用场,但我仍然不确定如何组织整个困惑。

最佳答案

正如 Lucero 所建议的,hgsubversion 是您通常需要的工具。此外,正如 Lasse 在他对 Lucero 的回答的评论中指出的那样,使用 Mercurial 的子存储库功能与 SVN 中子存储库或外部存储库的处理方式存在冲突:Mercurial 使用普通文件来存储有关子存储库的信息,并且 SVN 不解释此信息。

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

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

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

关于svn - Mercurial (?) + SVN 互操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6810234/

相关文章:

php - Git for Web Development(过程方法)

visual-studio - 如何在SVN+Visual Studio环境下本地使用Git

delphi - 我可以使用 Delphi XE2 Subversion 与 Subversion 1.7 的集成吗

visual-studio-2010 - Windows7 上的 Mercurial/TortoiseHG 中奇怪的区分大小写的目录名称行为

mercurial - 如何在 Mercurial 中删除远程书签?

mercurial - 推与拉

mercurial - Mercurial 中的 MQ 与分支

Mercurial "default-push not found!"?

svn - 颠覆(svn)E205007(提交失败)。无法使用外部编辑器获取日志消息

SVN 不会下载新添加的文件