有什么理由不使用多个版本控制系统?


9

我正在一个项目中,该项目使用GIT作为主干,官方分支和大多数子项目/非官方分支的主要版本控制系统。因此,我想让自己的分支机构使用GIT,以允许其他社区使用他们所知道的系统访问我的分支机构。

但是,我正在研究项目的一部分,该部分与官方分支和非官方分支都重叠,以及一些永远不会进入主干的补丁-因此,我需要能够将我的补丁分开,以便将所有补丁都用于我的分支和选择性补丁将在树干中使用。这自然倾向于使用Mercurial队列。

有什么理由不能将Mercurial用于我自己的本地资源库,而是将全部内容推送到GIT和Mercurial托管资源库?或者更确切地说,有没有充分的理由不这样做,我敢肯定这是可能的。


2
我能看到的唯一方法是,如果一个始终是授权副本,而另一个始终是第一个副本。这样就不会造成混乱。
约阿希姆·绍尔

谢谢,这就是我的想法-Git只是Mercurial的奴隶。Mercurial对我来说是正常情况,然后从Merurial推送到Git,以允许Git用户访问我的分支机构(无需花哨)
Jon Story

Answers:


8

出于同样的原因,您不应该这样做,因为您不应该拥有一个试图跟踪另一个状态的变量-您可能会忘记哪个版本是权威的。


一个永远是权威的副本-在这种情况下,Mercurial是因为它是我用来跟踪更改,处理多个补丁等的副本。Git只是一个奴隶,是Mercurial存储库的副本,允许熟悉Git但不了解Mercurial的社区来获取我的分支机构的副本。对单个补丁感兴趣的人显然必须使用Mercury,但我试图在使自己的生活变得轻松的同时,遵守该项目的惯例。
乔恩·斯托里

感谢您的反馈。并非完全出于这个原因(我也刚刚决定我更喜欢GIT,并且可以在没有专门队列的情况下生活),但是您的回答使我意识到,如果可以避免,冗余是没有意义的,在这种情况下可以做到。
乔恩·斯托里

2

我目前使用git和svn进行此操作。尽管有理由这样做,但没有一般规则。Git可以做svn不能做的事情,我已经习惯了这些功能,因此当我可以使用git时,我的工作流程因此而提高。看看我所处的利弊,我很愚蠢不使用两者。您应该以同样的方式看待您的情况。(顺便说一句,对我来说唯一的缺点是必须运行一个小脚本才能将git与svn同步)


1

您可以在Git中将补丁分开存放:在自己的分支上分别进行修补,然后根据需要有选择地将其合并。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.