在mercurial中拉/推时忽略目录

时间:2013-02-12 17:46:53

标签: mercurial

我有一个情况,我有一个开发和QA版本的回购。

我有一个目录foo,其中包含我一直希望被推/拉的代码。 我有一个目录栏,通常包含特定于该区域的项目(它们是不相关的),但有时会包含我想要推/拉的项目。

  • 推送到qa - 以这样的方式只接受foo,但忽略条形图中的更改。
  • 推送到qa - 以这样的方式,它将同时采取foo和bar。
  • 推送到qa - 以这样的方式,它将需要foo和一些吧。

据我所知,我需要合并,然后还原某些文件,然后提交这些文件。这没关系,但似乎有点倒退。有没有更好的方法让Mercurial支持这个工作流程(或类似的工作流程)?

1 个答案:

答案 0 :(得分:1)

正如Chris Morgan所说,这并不是Mercurial的工作方式。当您推送到另一个存储库时,您会推送许多更改集 - 这些更改集中的任何内容都会被推送。

一种可能的解决方案,虽然它是非常可怕的解决方法(在我看来)是使用Convert扩展来创建一个新的存储库,过滤掉你不想要的东西使用--filemap选项。

但是,如果这是QA,他们还需要一个Mercurial存储库吗?您可以简单地归档(标记)版本。默认情况下,存档将包含有关您在.hgarchival文件中存档的变更集的信息。例如

hg archive -X "bar/**" archive.tgz

...将创建一个文件archive.tgz,其中包含当前点的repo存档,而不包含“bar”目录。如果您希望排除特定文件,可以多次使用-X选项。