2013-02-12 87 views
0

我有一个情况,我有一个开发商和QA版本的回购。当在推送/推送在mercurial时忽略目录

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

  • 推到qa - 以这样一种方式,它只会采取富,但忽略酒吧的变化。
  • 推到qa - 以这样一种方式,它会采取foo和酒吧。
  • 推到qa - 以这样一种方式,它会采取富和一些酒吧。

从我可以告诉,我需要合并,然后恢复某些文件,然后提交这些。这是好的,但似乎有点倒退。有没有更好的方式让Mercurial支持这个工作流程(或类似的)?

+0

在变更组级别推送作品。如果更改集包含您不想要的内容,则需要以某种方式自行解决该问题。 – 2013-02-12 17:51:58

回答

1

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

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

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

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

...将创建一个包含您的回购在当前点的存档文件archive.tgz,没有“条”目录。如果您希望排除特定文件,则可以多次使用-X选项。