使用git跟踪调试常量

时间:2014-12-18 22:00:27

标签: git

我是一个热心的git用户,我有一个代码,它依赖于一组调试常量来打开或关闭日志记录,预先填充的表单以及不属于生成版本的其他行为。

问题实际上与语言无关,但在java中你可以这样想:

public static final DEBUG_LOGS = true;
public static final DEBUG_SKIP_FORM = true;
...

调试开关可以被隔离到一个单独的文件中(例如,只有静态成员的类,一个C头文件,......)但是我开发的越多,我面临的问题就越多:

我是否应该找到.gitignore文件的方法(可能始终保持生产就绪版本),保留所有(频繁)更改并使存储库混乱,或者我应该手动跳过它什么时候分期?还有其他解决方案吗?

处理这种情况的正确的方式(务实地说)是什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

此文件是“构建配置文件”。如果它在repo中,它应该只作为模板存在。构建不涉及模板。相反,一些文档说您必须在本地将build_config_template.whatever复制到build_config.whatever(并且请不要将后者添加到存储库中)。

模板可以具有用于执行生产构建的首选设置,以便想要执行最常见构建类型的人根本不需要更改它,或者必须对它做很少的事情。

如果您遵循开源项目,您可能已经看到很多人使用名为./configure的脚本生成构建配置文件(例如对于C程序),例如config.make,{{1} } 和别的。甚至生成了config.h个整数:Makefile模板经过预处理,替换了导致Makefile.in的某些材料,而在某些情况下,Makefile模板本身是从Makefile.in。 (正如您所看到的,人们已经提出了非常精细的解决方案来构建配置问题。)

如果您不运行此配置脚本,则无法构建软件,因为缺少程序及其构建系统的各个部分。生成的部分(如Makefile.amconfig.make)未在源分发中签入或打包。 (虽然某些生成的部分,比如配置脚本本身,是打包的,有时最终会被检入repos。对于每个规则都有合理的例外。)