0

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

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

  • 推送到 qa - 这样它只需要 foo,但忽略 bar 中的更改。
  • 推送到 qa - 以这样的方式,它将同时占用 foo 和 bar。
  • 推到 qa - 以这样的方式,它将需要 foo 和一些 bar。

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

4

1 回答 1

1

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

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

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

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

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

于 2013-02-14T17:19:45.157 回答