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
Version control 使用Mercurial启动与现有项目类似的新项目_Version Control_Mercurial - Fatal编程技术网

Version control 使用Mercurial启动与现有项目类似的新项目

Version control 使用Mercurial启动与现有项目类似的新项目,version-control,mercurial,Version Control,Mercurial,我有一个关于Mercurial(HG)存储库的项目。我即将开始一个新的项目,我想开始使用完全相同的代码作为提到的项目。这两个项目完全无关。尽管他们做了相似的事情,但每一个都是为不同的客户,有不同的名字,不同的品牌,不同的艺术 我的问题是: 建议的方法是什么: 克隆项目并开始进行更改 归档(hg archive)项目并在归档副本上创建新的存储库(hg init) 还有其他我没有考虑的选择吗 非常感谢。我将对前面的评论进行扩展,我建议将公共功能放在一个库中,以避免在两个地方维护相同的代码库时重复工作

我有一个关于Mercurial(HG)存储库的项目。我即将开始一个新的项目,我想开始使用完全相同的代码作为提到的项目。这两个项目完全无关。尽管他们做了相似的事情,但每一个都是为不同的客户,有不同的名字,不同的品牌,不同的艺术

我的问题是:

建议的方法是什么:

  • 克隆项目并开始进行更改
  • 归档(hg archive)项目并在归档副本上创建新的存储库(hg init)
  • 还有其他我没有考虑的选择吗

  • 非常感谢。

    我将对前面的评论进行扩展,我建议将公共功能放在一个库中,以避免在两个地方维护相同的代码库时重复工作,并建议如果您可以使每个实例都成为公共代码库的一个分支,那么这可能是理想的。希望这样,如果您修复了一个分支中的错误,合并分支或至少以一致的方式轻松地应用更改应该足够容易。

    我将对我之前的评论进行扩展,建议将公共功能放入库中,以避免在两个地方维护相同的代码库时重复工作,并建议如果您可以不犯错误每个实例都是公共代码库的一个分支,这可能是理想的。希望通过这种方式,如果您修复了一个分支中的错误,那么合并分支或至少以一致的方式轻松应用更改应该足够容易。

    如果它使用“与所述项目完全相同的代码”,并且仅在品牌方面有所不同,那么您可能希望从原始项目中分支。虽然最初的情况是相同的,但客户的需求可能会在以后发生分歧。内容文件也将开始不同

    简短回答:是的,克隆并分支每个项目。使用分布式版本控制,您可以随时合并(如果需要)。

    如果它使用“与所述项目完全相同的代码”,并且仅在品牌方面有所不同,则您可能希望从原始项目分支。虽然最初的情况是相同的,但客户的需求可能会在以后发生分歧。内容文件也将开始不同

    简短回答:是的,克隆并分支每个项目。使用分布式修订控制,如果需要,您可以随时合并。

    在您接受任何人(正确!)的建议之前,请阅读本文:并确定在mercurial中进行分支的许多有效方法中,哪一种适合您。人们听到“分支”并使用
    hg branch
    ,这是分支的一种方式,但不是唯一的方式,也不一定是正确的方式

    如果我是你,我会直接克隆,开始在克隆中工作,然后在以后可以(按照Gian的伟大建议)重构到公共基础库时协调它们。

    在接受任何人(正确!)的建议之前,请阅读本文:并决定在mercurial中进行分支的众多有效方法中哪一种适合你。人们听到“分支”并使用
    hg branch
    ,这是分支的一种方式,但不是唯一的方式,也不一定是正确的方式


    如果我是你,我会克隆,开始在克隆中工作,然后在可以(按照Gian的建议)重构到公共基础库时协调它们。

    忽略版本控制方面,这听起来像是你应该将核心功能旋转到某种库中,这样你就不必维护两个(基本相同)库了不必要的代码库。嗯,mercurial不是在svn中实现了类似svn:external的东西吗?@Wrikken:我没有使用过svn,但是如果external意味着制作另一个中央存储库副本,那么mercurial中就永远不会实现。Mercurial是分布式的,每个人在本地都有一个完整的存储库。@Gian:完全同意你的看法。我可能最终创建了一个基本库,但目前这是一个相当小的项目,所以我可以从克隆/复制它开始。@Ashish:svn:external会告诉svn,某个文件或文件夹可以在另一个位置找到(可能被修订固定)。请参见,它在其中一个子目录中有一个
    克隆hg
    ,但是可以保存对它的外部引用,因此获取“主要”项目的人将对所需的外部进行“子蚀刻”(或者传递一个参数,如果他们不知道如何获取外部代码,则禁用它。请参阅:它可以方便地将标准库/项目“打包”到其他库中。忽略版本控制方面,这听起来像是您应该将核心功能旋转到某种库中,这样您就不必维护两个库(基本相同)不必要的代码库。嗯,mercurial不是在svn中实现了类似svn:external的东西吗?@Wrikken:我没有使用svn,但如果external意味着制作另一个中央存储库副本,那么它就永远不会在mercurial中出现。mercurial是分布式的,每个人在本地都有一个完整的存储库。@Gian:完全同意你的看法。我可能最终会成为cr吃一个基本库,但就目前而言,是一个相当小的项目,所以我可以从克隆/复制它开始。@Ashish:svn:external会告诉svn在另一个位置可以找到某个文件或文件夹(可能是通过修订固定的)。请参见,它在其中一个子目录中有一个
    克隆hg
    ,但是可以保存对它的外部引用,因此获取“主要”项目的人将对所需的外部进行“子蚀刻”(或者传递一个参数,如果他们不知道如何获取外部代码,则禁用它。请参阅:它可以方便地将标准库/项目“打包”到其他库/项目中。