【发布时间】:2011-03-28 00:35:15
【问题描述】:
我正试图向我们的团队宣传使用 Mercurial 而不是 VSS 作为源存储库。在更新我们的构建脚本的过程中,我在尝试从 Hg 存储库中检索文件时遇到了问题。
我们的构建是使用 NAnt 自动化的,目前适用于本地构建或从 VSS 构建(即,根据需要从 VSS 中提取源代码)。我正在尝试更新它们以与 Mercurial 一起使用。
基本上,当我处理单个文件时,我没有任何问题,因为我可以使用 NAnt 的“获取”任务(在获取适当的修订哈希后)来检索单个文件。
我遇到的问题是当我需要使用不在存储库根目录中的文件的目录(和子目录)时。 我似乎无法找出正确的命令来将存储库中的子目录检索/复制到构建的“工作”目录。我基本上花了整个下午试图弄清楚如何使用 mercurial 可执行文件执行此操作(因此我可以使用 NAnt 'exec' 任务),并且基本上已经碰壁了,所以我想我会尝试在这里发布。
有人可以确认这是否可行,并就我如何能够做到这一点提供一些建议吗?我知道 Mercurial 通过文件而不是目录来跟踪更改,但似乎很奇怪我说这不是开箱即用的(据我所知)。
如果这是不可能的,我看到的唯一解决方法是维护预期文件的 NAnt 文件集列表以使用(啊!),或者将整个存储库克隆到一个临时目录,然后将文件从该源复制为需要(这对我来说就像一个障碍)。
我意识到我可以简单地为我想要使用的目录创建另一个存储库,但我宁愿不走这条路,因为我认为这会增加我正在尝试做的事情的复杂性大量(对于我们构建的所有不同库,我必须多次应用它......)。
【问题讨论】: