我正在与一个合作伙伴一起工作。我们的make文件略有差异,由不同的版本设置提供。正因为如此,迄今为止我们还没有跟踪这个文件。不过,至少有一个跟踪我们会很高兴。问题是,当完成并且其他人运行hg update
时,他们的副本得到更新并且代码不会被编译。有选择地更新工作目录
有没有一种方法来跟踪文件,但让它可以选择性地更新工作目录?或者有其他方法可以解决这个问题吗?
我正在与一个合作伙伴一起工作。我们的make文件略有差异,由不同的版本设置提供。正因为如此,迄今为止我们还没有跟踪这个文件。不过,至少有一个跟踪我们会很高兴。问题是,当完成并且其他人运行hg update
时,他们的副本得到更新并且代码不会被编译。有选择地更新工作目录
有没有一种方法来跟踪文件,但让它可以选择性地更新工作目录?或者有其他方法可以解决这个问题吗?
MQ扩展是最好的和正确的方式(TM)来做到这一点(不是最简单的,但是......)
存储文件在回购,个人个性化的公共部分 - 在自己的MQ-补丁
是否可以合并您的Makefiles?那么不会因为不将它们存储在版本控制中而丢失不同的配置。
例如,您可以添加基于用户名的条件语句。我的用户名是瑞安,这个代码与我的名字相反,但如果它在您的计算机上运行,它可能会回显“不瑞安”。
all:
if [ `whoami` = "ryan" ]; then echo "ryan"; else echo "not ryan"; fi
**这种**情况的条件makefile是不好的风格 - 依赖于人为,管理不善和可扩展 - 想像团队中的10-20-50个开发人员 –
当他们达到这个规模时,可以承担类似的构建环境:) – ryantm
这是一个标准的“我该如何处理配置文件”问题的轻微变体。 SVN,Mercurial和Git的标准答案是:不跟踪文件,而是跟踪<文件>。例如。然后每个用户将其复制到<文件>并根据需要调整它。
但Makefiles比配置文件有点聪明:它们执行代码并可以包含其他文件。在这种情况下,它开始有意义地正常跟踪Makefile,并使其包含另一个本地文件(如果存在该文件会覆盖默认规则)。例如,下面将与GNU使工作:
# pull in any local user tweaks
-include Makefile.local
这个问题的答案是这样一个基本的问题不应该是“学习的工具,它是如此复杂的零件,他们甚至没有默认启用。 “ – mpm
他们不是“那么复杂”,他们只是在日常生活中不需要每一个人。我在不到一个小时的时间内完成了MQ,但它节省了我几个小时的复制粘贴工作。 –
等一下,您告诉我*为什么默认情况下MQ不是? – mpm