如何在不删除文件的情况下忽略svn repo中的文件?
当我处理现有项目时,我经常需要设置项目的本地版本并使用我的本地数据库。以drupal为例,我检查svn repo,更改settings.php文件以匹配我的本地数据库,但现在我必须确保我不再提交设置文件。
是否有任何聪明的svn命令可以解决这个问题?
答案 0 :(得分:7)
来自SVN帮助:
我的项目中有一个文件 开发者必须改变,但我没有 想要那些本地的mods 承诺。如何进行'svn commit' 忽略文件?**
答案是:不要 将该文件置于版本控制之下。 相反,放一个文件的模板 在版本控制下,类似于 “file.tmpl”。
然后,在最初的'svn之后 结帐',让你的用户(或你的用户) 构建系统)做一个正常的OS副本 模板到正确的文件名, 并让用户自定义副本。该 文件是无版本的,所以永远不会 做出承诺。如果你愿意,你可以 将文件添加到其父目录 svn:忽略属性,所以它没有 显示为'?'在'svn status' 命令。
答案 1 :(得分:1)
创建一个名为“.template”的文件版本和版本控制。当您结帐时,根据需要重命名和编辑。然后使用svn propedit svn:ignore忽略副本。
答案 2 :(得分:1)
可能的解决方案是使用更改列表。您可以将要更改的文件分组到更改列表中,然后在svn commit时指定更改列表 - 不在更改列表中的文件不受影响。
创建更改列表
svn changelist math-fixes integer.c mathops.c
仅提交更改列表中的文件
svn ci -m“修复一个bug。” --changelist math-fixes
答案 3 :(得分:1)
This answer讨论了如何使用您的模板文件创建名为ignore-on-commit
的更改列表,只有在您使用TortoiseSVN时它才有效。
但是,再次,这是一个按用户设置。
答案 4 :(得分:0)
最简单的方法是转到包含配置文件的任何目录并在其上设置属性:
svn:忽略settings.php
它将保持所有提交和更新的原样。您的命令可能如下所示:
$ svn propset svn:忽略'settings.php'./
答案 5 :(得分:-1)
svn propedit svn:ignore ./some_path