svn忽略而不删除文件?

时间:2009-06-04 14:43:56

标签: svn

如何在不删除文件的情况下忽略svn repo中的文件?

当我处理现有项目时,我经常需要设置项目的本地版本并使用我的本地数据库。以drupal为例,我检查svn repo,更改settings.php文件以匹配我的本地数据库,但现在我必须确保我不再提交设置文件。

是否有任何聪明的svn命令可以解决这个问题?

6 个答案:

答案 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

For details see this post.