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
Mercurial 不断缩小的汞回购规模(尤其是清单)_Mercurial_Bitbucket_Kiln_Branching Strategy - Fatal编程技术网

Mercurial 不断缩小的汞回购规模(尤其是清单)

Mercurial 不断缩小的汞回购规模(尤其是清单),mercurial,bitbucket,kiln,branching-strategy,Mercurial,Bitbucket,Kiln,Branching Strategy,我们目前正在尝试将mercurial(在本例中是一个古老版本的窑)迁移到BitBucket,我们立即遇到了大小问题(如果您不知道,BitBucket施加了相当慷慨的2gb回购限制——我们碰巧错过了) 不管怎样,我已经洗清了过去的罪恶: 使用convert with filemaps(删除不应出现在repo中的二进制文件/静态文件) 为其他不应在主回购协议中的事项创建单独的回购协议 试图使用generaldelta缩小尺寸(根据 ) 使用branchmaps尝试合并旧分支及其关联的变更集 即使

我们目前正在尝试将mercurial(在本例中是一个古老版本的窑)迁移到BitBucket,我们立即遇到了大小问题(如果您不知道,BitBucket施加了相当慷慨的2gb回购限制——我们碰巧错过了)

不管怎样,我已经洗清了过去的罪恶:

  • 使用convert with filemaps(删除不应出现在repo中的二进制文件/静态文件)
  • 为其他不应在主回购协议中的事项创建单独的回购协议
  • 试图使用generaldelta缩小尺寸(根据 )
  • 使用branchmaps尝试合并旧分支及其关联的变更集
即使执行了这些步骤,我仍然有一个非常大的清单文件,尽管为回购存储的“数据”缩小到“可管理的”大小(~600mb),但我的清单文件几乎是700mb

一些附加信息:通常情况下,我们针对每个功能执行分支,并有两个分支跟踪到环境:

  • 发布分支(部署到staging,然后部署到prod)
  • 默认分支(最初不发布,所有功能首先在此合并,然后发布。此分支死亡,每两周重新启动一次)
此工作流中的一个区别是默认值本身从未合并到发布中(la gitflow/hgflow)。这种单向流入默认值是否会导致问题

我们“只有”120个开放的分支机构负责人,所以这似乎是可以管理的


很明显,我在这里遗漏了一些步骤(否则回购协议就完全被套牢了)。

为了将来参考,我遵循了蒂姆的建议。我的完整脚本最终如下所示:

hg --config format.generaldelta=1 clone --pull oldrepo oldrepo-generaldelta
hg --config format.generaldelta=1 clone --pull oldrepo-generaldata oldrepo-generaldelta2
hg convert --filemap filemap.txt oldrepo-generaldelta2 newrepo
正如Tim在他的链接回答中提到的,我们的清单从大约700mb下降到了第二个克隆的大约40mb


为了将来参考,我采纳了蒂姆的建议。我的完整脚本最终如下所示:

hg --config format.generaldelta=1 clone --pull oldrepo oldrepo-generaldelta
hg --config format.generaldelta=1 clone --pull oldrepo-generaldata oldrepo-generaldelta2
hg convert --filemap filemap.txt oldrepo-generaldelta2 newrepo
正如Tim在他的链接回答中提到的,我们的清单从大约700mb下降到了第二个克隆的大约40mb


比特桶可能对我们的回购协议“不起作用”,但我觉得这很难相信。我还担心,如果我们不修复/更改某些内容,我们的回购协议将继续膨胀。这将很难回答(即,如果没有关于存储库细节的更详细的来回讨论)。你有没有考虑过在Mercurial邮件列表上问这个问题(有几位在Mercurial管理大型存储库的经验的人以及至少一位在Atlassian工作的人也会读这个问题)?我同意你的看法-我会尝试一下。看看我的答案。特别是,你为generaldelta做过双克隆技术吗?我还没有尝试过双克隆。我试试看。谢谢比特桶可能不会对我们的回购协议“起作用”,但我觉得这很难相信。我还担心,如果我们不修复/更改某些内容,我们的回购协议将继续膨胀。这将很难回答(即,如果没有关于存储库细节的更详细的来回讨论)。你有没有考虑过在Mercurial邮件列表上问这个问题(有几位在Mercurial管理大型存储库的经验的人以及至少一位在Atlassian工作的人也会读这个问题)?我同意你的看法-我会尝试一下。看看我的答案。特别是,你为generaldelta做过双克隆技术吗?我还没有尝试过双克隆。我试试看。谢谢为了获得最大的影响,您希望您的BitBucket存储库也使用generaldelta。我已经做了一些搜索,但没有找到任何关于这是否可行的信息。为了最大限度地发挥作用,您希望您的BitBucket存储库也使用generaldelta。我做了一些搜索,但没有找到任何关于这是否可能的信息。