有选择地更新工作目录

时间:2011-10-09 02:15:39

标签: mercurial

我正在与合作伙伴合作开发一些代码。我们的make文件略有不同,不同的构建设置。因此,到目前为止我们还没有跟踪这个文件。但是至少有一个跟踪我们会很高兴。问题是,当完成并且另一个人运行hg update时,他们的副本会更新并且代码将无法编译。

有没有办法跟踪文件,但是有没有办法可以选择性地更新工作目录?或者还有其他方法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:6)

这是标准“我如何处理配置文件”问题的略微变体。 SVN,Mercurial和Git中的标准答案是:不跟踪文件,而是跟踪< file> .example。然后每个用户将其复制到< file>并根据需要进行调整。

但Makefile比配置文件更聪明:它们执行代码并可以包含其他文件。在这种情况下,它开始有意义地正常跟踪Makefile并使其包含另一个本地文件(如果它存在则覆盖默认规则)。例如,以下内容适用于GNU Make:

# pull in any local user tweaks
-include Makefile.local

答案 1 :(得分:1)

MQ扩展是最好的和正确的方式(tm)来做(不是最简单的,但是......)

将文件的公共部分存储在repo中,个性化 - 在自己的MQ-patches中

答案 2 :(得分:1)

是否可以合并您的Makefile?然后,如果不将它们存储在版本控制中,就不会失去不同的配置。

例如,您可以根据用户名添加条件语句。我的用户名是ryan,这个代码回应了我的名字,但如果它在你的计算机上运行,​​它可能会回应“不是ryan。”

all:
    if [ `whoami` = "ryan" ]; then echo "ryan"; else echo "not ryan"; fi