据我了解,使用SVN 忽略目录内容的命令是:
svn propset svn:ignore "*" tmp/
这应该在tmp
目录的内容上设置ignore属性,对吧?换句话说,通配符设置为tmp目录中的ignore值.麻烦的是,这是我的Windows盒子上发生的事情:
> svn propset svn:ignore "*" ./tmp property 'svn:ignore' set on 'app' property 'svn:ignore' set on 'config' property 'svn:ignore' set on 'db' property 'svn:ignore' set on 'doc' property 'svn:ignore' set on 'lib' property 'svn:ignore' set on 'log' property 'svn:ignore' set on 'nbproject' property 'svn:ignore' set on 'public' [etc...]
那是不对的.我做错了什么(或者可能是疯了),还是我的Windows上的svn坏了?
一些说明:
机器正在运行Windows Vista SP1
通过Tortoise设置此属性非常有效.
我正在使用Windows的Collabnet二进制文件:
> svn --version
svn, version 1.5.2 (r32768)
compiled Aug 28 2008, 19:05:34
更新:我刚刚在Windows XP机器上试过这个,它按预期工作.因此,这是Vista特定问题,或者我的Vista配置存在问题.还有其他人能够在Vista上重现这个问题吗?我刚刚发现Vista未被列为 CollabNet下载页面上受支持的平台之一.
看起来微软以其无限的智慧改变了Windows Vista中通配符扩展的行为:
因此,不是传入的转义通配符,而是扩展它:
在Win 95,98,2000,XP下,应用程序按预期运行:当参数类似于«*.txt»时,它会进行通配符扩展,当参数类似于«"*.txt"»时,它不会.在Windows Vista下,通配符扩展始终发生,或者说,否则,双引号不会抑制它.
在Collabnet论坛上有关于这个问题的进一步讨论.
该命令应该按预期工作.
该*
是越来越晶片被保护,它不应该做的事情.所以,你正在运行:(
svn propset svn:ignore [value] app config db doc lib log nbproject public ... tmp
因为app是受影响的第一个文件夹,我猜它之前还有另一个文件夹).
你可以试试2件事:
指定列表文件: svn propset svn:ignore tmp -F .svnignore
只需指定路径:svn propset svn:ignore tmp
.这应该打开您的默认文本编辑器(如果已配置),以允许您编写和保存列表.
回复评论
由于您现在正在尝试更正设置,propedit
并且propdel
可以正常工作 - 尤其是如果您在目录中进行了其他更改.
但是,如果你没有任何其他的改变担心(检查svn st
),它会更快使用svn revert -R
和svn propset
.