2011-02-12 89 views
8

我该如何忽略已经添加到svn仓库的文件?如何svn忽略已经添加到存储库的文件?

我要排除的文件的config.php:

$ svn st 
M  . 
M  config.php 
M  adminfunctions.php 

所以,我用:

$ svn propedit svn:ignore . 

而且config.php文件添加到列表中。

然后,如果我做另外一个SVN日,我得到相同的第一次:

$ svn st 
    M  . 
    M  config.php 
    M  adminfunctions.php 

也不会转回去的config.php文件刚才被排除在外?

在此先感谢!

回答

16

的svn:忽略只会影响还没有被添加的文件。所以你的情况

你必须从存储库svn del删除的文件 - 不要忘记暂时将它们复制到其他位置)。将文件复制回原始目录后,svn不会将它们标记为新的(并尝试添加它们)。

编辑: 另外,由@Blake评论,你可以当你做一个svn del,而不是将文件复制到另一个位置的使用--keep-local选项。

+18

您不必将您的本地文件复制到临时目录中。当您执行svn del时,只需使用--keep-local选项 – Blake 2012-12-03 04:18:27

1

这是我遇到的问题和解决方案,希望这将是有用的人。

比方说,你在目录中有 'd' A,B,C“文件。

您svn从您的工作副本中删除'a,b,c'文件,并将'svn:ignore *'属性/值添加到'D'目录并提交这些更改作为修订1234。你在你的工作副本中将相同的'a,b,c'文件放回到'D'目录中,那么svn仍然会将'a,b,c'文件视为未被更新。

要解决这个问题:

  • 保持你的“A,B,C”文件的备份的地方,并删除那些在你的工作副本中的“d”目录。
  • 更新到您的目录'D'上的1234之前的版本。这会将'a,b,c'文件从存储库中撤回到您的工作副本。
  • 然后更新到目录'D'上的HEAD修订版。
  • ,将删除从目录“d” A,B,C'对你的工作副本。
  • 最后放回到了“A,B,C”的文件在你的工作拷贝目录“d”。

现在'a,b,c'被svn忽略。

相关问题