Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.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
Git 跨不同的SCM系统并行管理单个项目_Git_Svn_Version Control_Mercurial - Fatal编程技术网

Git 跨不同的SCM系统并行管理单个项目

Git 跨不同的SCM系统并行管理单个项目,git,svn,version-control,mercurial,Git,Svn,Version Control,Mercurial,我目前有一个项目托管在我使用sourcetree管理的私有Git repo上。最近,我决定在这个项目上与一群朋友合作。然而,他们更喜欢Mercurial&SVN而不是Git,我更喜欢在我的项目中创建单独的Mercurial&SVN存储库,以便他们在维护我自己的Git回购协议的同时进行协作。我想知道是否可以通过Sourcetree或任何其他方法执行以下操作: 在我的工作系统上有一个项目文件夹,可以同时将我的项目跟踪到所有三个repo(Git/Mercurial/SVN) 如果1。如果可能的话,我是

我目前有一个项目托管在我使用sourcetree管理的私有Git repo上。最近,我决定在这个项目上与一群朋友合作。然而,他们更喜欢Mercurial&SVN而不是Git,我更喜欢在我的项目中创建单独的Mercurial&SVN存储库,以便他们在维护我自己的Git回购协议的同时进行协作。我想知道是否可以通过Sourcetree或任何其他方法执行以下操作:

  • 在我的工作系统上有一个项目文件夹,可以同时将我的项目跟踪到所有三个repo(Git/Mercurial/SVN)

  • 如果1。如果可能的话,我是否可以有选择地从任何一个版本控制系统中提取更改,并有选择地将更改推送到它们

  • 我正在Mac上使用Sourcetree。 我看到一位用户的一篇文章,他在github和bitbucket上为单独的存储库做了这项工作,但我记不起这里要共享的链接。 我希望找到一个好方法来做到这一点,使管理代码更容易。 请原谅,如果这样的问题不属于这里,国防部可能会关闭这个。
    感谢您的帮助:)

    实际上,通过直接使用git存储库,hg可以通过hg git扩展很好地访问它。但如果您打算维护两个存储库,我认为这也是可行的

    实际上,在一个文件夹中,mercurial可以有.hg文件夹,git可以有.git文件夹。实际上,hg和git区分了工作目录和存储库,所以这个文件夹可以容纳不同的存储库

    对于第二个问题,我认为您需要在hg和git中设置一些钩子,并允许它们在任何系统中发生推送时通过hg的hg git扩展进行通信。据我所知,这个扩展工作得很好

    但对于SVN来说,情况就不同了。虽然hg和git都有svn扩展(hgsubversion和git svn;这里的扩展是一个一般概念,而不是特定于类似hg的扩展),但DVCS系统将很容易分支,这会导致到svn的映射有点复杂


    因此,我认为通过hg git扩展和钩子将hg和git存储库放在一个文件夹中是可行的,但对svn不太确定。

    实际上,通过直接使用git存储库,hg可以通过hg git扩展很好地访问它。但如果您打算维护两个存储库,我认为这也是可行的

    实际上,在一个文件夹中,mercurial可以有.hg文件夹,git可以有.git文件夹。实际上,hg和git区分了工作目录和存储库,所以这个文件夹可以容纳不同的存储库

    对于第二个问题,我认为您需要在hg和git中设置一些钩子,并允许它们在任何系统中发生推送时通过hg的hg git扩展进行通信。据我所知,这个扩展工作得很好

    但对于SVN来说,情况就不同了。虽然hg和git都有svn扩展(hgsubversion和git svn;这里的扩展是一个一般概念,而不是特定于类似hg的扩展),但DVCS系统将很容易分支,这会导致到svn的映射有点复杂


    因此,我认为通过hg git扩展和挂钩将hg和git存储库放在一个文件夹中是可行的,但对svn不太确定。

    我强烈建议不要在单个工作目录2或3个不同的VCS中混用。对于保持不同引擎的透明统一性来说,这只是一个额外的难题

    为您提供的免费工作目录(以Git为中心)是一个更易于管理和更少混乱的解决方案:

    • 只需为每个“外部”存储库添加一个额外的远程存储库——“Mercurial source”和“SVN source”
    • 拉“他人”回购,推“自己”

    SVN链接可由git SVN支持,Mercurial链接(来自git端)可由

    支持。我强烈建议不要在单个工作目录2或3个不同的VCS中混合使用。对于保持不同引擎的透明统一性来说,这只是一个额外的难题

    为您提供的免费工作目录(以Git为中心)是一个更易于管理和更少混乱的解决方案:

    • 只需为每个“外部”存储库添加一个额外的远程存储库——“Mercurial source”和“SVN source”
    • 拉“他人”回购,推“自己”

    SVN链接可以由git SVN支持,Mercurial链接(来自git端)可以由

    您的问题与
    cvs
    有何关联
    svn
    git
    cvs
    都是VCS的一种形式。你真的在考虑使用
    cvs
    ,还是说“VCS”?啊,对不起,应该是VCS!。您的问题与
    cvs
    有何关联
    svn
    git
    cvs
    都是VCS的一种形式。你真的在考虑使用
    cvs
    ,还是说“VCS”?啊,对不起,应该是VCS!。是的,我打算将我的项目复制到单独的mercurial&svn回购中。我遇到的一篇帖子提到,用相同的基本代码将每个repo克隆到一个单独的文件夹中,然后将克隆的git文件夹中的.git文件夹移动到克隆的mercurial文件夹中&然后让git空间忽略.hg,反之亦然。但这对我来说并不管用:(这可能有点麻烦,但至少我希望hg&git能通过IDE为我工作。你有什么想法或教程可以给我指点吗?用两个(git&hg)签名工作目录)回购协议更让人头痛,而不是有趣。添加SVN会让它变成真正的噩梦。不要给出有害的建议。那么这是怎么回事?这就是我在问题中提到的文章。@Kevin-它有效,是的,我不会告诉你“它不会起作用”,但是-你想和trobles搏斗还是写代码?Greg描述了一个相当简单的情况(即使在这一点上他也犯了错误),更复杂的用例(可以)给出更多troubles@Kevin在hg git中,当从git回购中提取时,hg git将自动在同一文件夹中保留一个.git文件夹。也就是说,在yo之后,将同时出现
    repo/.git
    repo/.hg