我在哪里:Linux命令行
我现在遇到的问题:
有时我无法进行原子提交(包括一个特定故障单/任务所需的所有修改),因为我们在存储库中有一些文件,这些文件在本地开发环境中有所不同.
例如:database.xml
(dbname,username,password等).我在本地环境中修改此文件,每次我需要进行提交/签入时,我手动列出了提交所需的所有文件/文件夹(不包括本地修改的文件).
也许这是一个错误的设计决策,database.xml
必须从存储库中删除并更改database.xml.template
(存储在SVN中),因此在手动执行之前,不会包含此文件进行提交svn add
?也许这是错误的方法 - 将所有这些依赖于环境的信息存储在存储库中 - 在这种情况下,我们可以通过提交修改后的配置来破坏所有内容,例如..
据我了解,svn:ignore
属性在这种情况下无法帮助,因为它只能用于未存储在存储库中的文件.
怎样才能解决这个问题?
PS:我正在使用Ubuntu,而且大部分都是SVN的纯命令行.
对此的"标准"程序是这样的(原谅SVN语法,我最近一直在使用Bazaar):
echo config > database.xml.template svn add database.xml.template svn ignore database.xml svn commit
然后在每个人的开发机器上:
svn checkout cp database.xml.template database.xml ...edit database.xml...
当他们承诺时,
echo foo > someotherfile svn commit
该database.xml
文件将不会添加到Subversion.
您应该将模板存储在存储库中,而不是您需要在本地修改的实际文件.
这样,您可以根据需要重建pristine文件,而不必冒将文件存储到不应存在的存储库中的风险.
不,svn:忽略不会帮助你.