在设置了“忽略”属性后,Subversion仍未忽略我的目录

3
我在我的应用程序中有一个目录叫做/admin/debug/output,其中包含一个目录和一堆JavaScript文件。在提交代码之前,我希望完全忽略它们的出现。
我使用了propset命令来忽略它,但似乎没有起到任何作用: svn propset svn:ignore admin/debug/output/ .(我从根目录运行此命令)
property 'svn:ignore' set on '.'

为什么在执行“svn st”命令时,SVN 仍然识别这个文件?
1个回答

7

SVN 只处理直接子目录和文件的忽略目录。因此,您应该为父目录设置此属性,即:

$ cd admin/debug
$ svn propset svn:ignore output . 
$ svn ci -m "Adding SVN property to ignore output directory." 

确保输出不带尾随斜杠。

注意

如果文件夹已经在版本控制下,则应该执行以下操作序列:

$ svn delete --keep-local output 
$ svn propset svn:ignore output . 
$ svn ci -m "Adding SVN property to ignore output directory." 

如果您使用的是旧版SVN(<1.5),请执行以下解决方法:

$ cp -rp output output_ 
$ svn rm output 
$ svn propset svn:ignore output . 
$ svn ci -m "Adding SVN property to ignore output directory." 
$ mv output_ output 

或者

您可以保留文件夹并将其中所有文件标记为已忽略

$ svn propset svn:ignore "*" .
$ svn ci -m "Adding SVN property to ignore all files in output directory." 

嗯,是的,那正是我所做的。我只是使用了 cd admin/debug/ 然后 svn propset svn:ignore output .,但是 svn st 仍然显示所有 JavaScript 调试文件。我使用的是没有斜杠结尾的 output - crmpicco
那个文件夹是否在版本控制下?它在 svn st 的输出中如何标记? - pmod
是的,/admin/debug/output 目录已被版本控制。执行 svn st 命令时,admin/debug/admin/debug/output 都显示为 M(已修改)。这些目录下的所有 JavaScript 文件都显示为未识别,即 ? - crmpicco
因此,您应该将该文件夹设置为版本控制之外(使用svn delete =请参见https://dev59.com/Dmox5IYBdhLWcg3wQSSp),然后进行svn更新,但在设置忽略属性之前应完成此操作。 - pmod
1
您可以忽略目录中的所有文件 - 请参见http://blog.alastairdawson.com/2007/02/21/how-to-ignore-all-files-in-a-directory-folder-with-subversion/。但在我看来,这有点奇怪。 - pmod
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接