拉入/推入mercurial时忽略目录

拉入/推入mercurial时忽略目录,mercurial,Mercurial,我有一个情况,我有一个开发和质量保证版本的回购协议 我有一个目录foo,其中包含我总是希望被推/拉的代码。 我有一个目录栏,它通常包含特定于该区域的项目(它们是无关的),但有时会包含我确实想要推/拉的项目 推到qa-以这样一种方式,它将只接受foo,而忽略bar中的更改 推到qa-以这样一种方式,它将需要foo和bar 推到qa-以这样一种方式,它将需要foo和一些bar 据我所知,我需要合并,然后还原某些文件,然后提交这些文件。这是可以的,但似乎有点倒退。有没有更好的方法让Mercuria

我有一个情况,我有一个开发和质量保证版本的回购协议

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

  • 推到qa-以这样一种方式,它将只接受foo,而忽略bar中的更改
  • 推到qa-以这样一种方式,它将需要foo和bar
  • 推到qa-以这样一种方式,它将需要foo和一些bar

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

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

一个可能的解决方案,尽管这是一个非常可怕的解决方法(在我看来),是使用扩展创建一个新的存储库,通过使用
--filemap
选项过滤掉您不想要的内容

然而,如果这要交给QA,他们还需要Mercurial存储库吗?您可以简单地归档(标记)版本。默认情况下,存档将在
.hgArchive
文件中包含有关您正在存档的变更集的信息。比如说

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

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

推送在变更集级别工作。如果变更集包含您不想要的内容,您需要以某种方式自行解决。