如何处理版本化文件的自定义配置? - git

时间:2012-04-25 16:15:10

标签: git version-control mercurial

这个问题How do you deal with configuration files in source control?建议忽略它们,虽然它是另一种选择,但我真的不想让它们移动.ignore文件那么多,对我来说似乎很脏。

大多数团队成员在许多版本化文件中都有某种配置,这些文件不会提交给主分支。即。 app.config文件与本地数据库等。

如何处理这些文件?他们需要他们让他们的环境运行,但他们往往忘记将新文件添加到repo,因为他们开始忽略修改后的文件。

我想有一些脚本在编译时将它们从本地文件系统中删除,这样他们可以判断整个解决方案是否会在推入repo时进行编译,但我不知道是否有更好的解决方案?

1 个答案:

答案 0 :(得分:1)

我不确定你的意思是“真的不想让他们移动.ignore文件那么多”,但你应该坚持你最初找到的建议并放置不应该添加的文件在ignore文件中按预期方式。这就是它的用途,用它填充不是每个人都有的文件都没有任何害处。

您可以使用的其他一些工具包括:

  • 为配置文件提交模板(例如config.sample)并让您的构建脚本从config.sample复制到忽略的config if(并且仅当它没有)已经存在
  • 增强您的配置系统以包含叠加层。例如,忽略的config.local会覆盖从跟踪的config.shared加载的设置。
  • 增强您的配置系统以允许包含。例如,%include ~/settings之类的行,人们可以将自己的配置放入

然而,所有这些都预先假定您忽略了一个因用户而异的配置文件,因为这就是您应该做的事情。 :)