据我了解,使用SVN忽略目录内容的命令是这样的:
svn propset svn:ignore "*" tmp/
这应该设置tmp目录的内容的忽略属性,对不对? 换句话说,通配符被设置为tmp目录上的忽略值。 麻烦的是,这是我的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破?
一些说明:
自动导入Mercurial存储库(例如SVN Externals)
在Windows和Linux中使用相同(locale)git repo的最佳方法
使用gitosis来pipe理大量存储库的最简单(和最简单的)方法是什么?
Git预提交挂钩不在Windows上运行
Mercurial – 对服务器信息库进行更改时cpu占用率高
本机正在运行Windows Vista SP1
通过龟这个属性设置完美。
我正在使用Windows的Collabnet二进制文件 :
> svn --version
svn,version 1.5.2 (r32768)
compiled Aug 28 2008,19:05:34
更新:我刚刚在Windows XP机器上尝试过,它按预期工作。 所以无论这是一个Vista的具体问题,或者我的Vistaconfiguration有问题。 有没有人能够在Vista上重现这个问题? 我刚刚发现Vista未被列为CollabNet下载页面上支持的平台之一。
git的Windows 7期待开发null找不到错误
将Github远程添加到GitKraken
Git在Windows中工作吗?
任何人都可以为开发人员推荐一个好的备份“系统”吗?
从服务器删除Git LFS存储?
该命令应该按照您的预期工作。
*正在变成globbed,它不应该这样做。 所以,你正在运行:
svn propset svn:ignore [value] app config db doc lib log nbproject public ... tmp
(因为应用程序是第一个受到影响的文件夹,我猜这里面还有另外一个文件夹)。
2件事你可以尝试:
指定一个列表文件: svn propset svn:ignore tmp -F .svnignore
只需指定路径: svn propset svn:ignore tmp 。 这应该打开您的默认文本编辑器(如果已配置)以允许您编写并保存列表。
既然你现在正在尝试纠正这个设置, propedit和propdel会正常工作 – 特别是如果你在目录中有其他的更改。
但是,如果你没有任何其他的变化(检查svn st ),使用svn revert -R和svn propset会更快。
看起来,微软以其无限智慧已经改变了Windows Vista中通配符扩展的行为 :
所以不是传入的通配符,而是扩展:
在Win 95,98,2000,XP下,应用程序按预期运行:参数类似«* .txt»时,通配符扩展,当参数类似于“”* .txt“»时,通配符扩展。 在Windows Vista下,通配符扩展始终发生,或者,否则,双引号不会压制它。
在Collabnet论坛上有关于这个问题的进一步讨论。
这不能回答你的svn问题,但你为什么要忽略一个目录的所有内容? 在我看来,如果你想在构建中的某个时刻使用一个临时目录,那么你应该把这个目录作为构建的一部分,而不是从存储库中存在。
你想忽略它,因为它已经在那里,你不能删除它?
无论如何,从我的UNIX命令行,这对我来说忽略了一个名为tmp的diretory中未跟踪的文件
$ svn --version
svn,版本1.5.1(r32289)
2008年8月28日10:00:12编译
$ svn propset svn:忽略'*'tmp
Windows是否引用了你的引用?
这听起来像为Windows编译的svn.exe二进制文件正在执行内置的通配符,这是它通常不会在unix版本上做的事情,因为unix shell在构建命令行的时候会做globbing。 我会考虑这种意外的行为,尤其是因为你似乎无法解决这个问题。
正如其他人所指出的,您可以使用-F选项提供* ,或者在文本编辑器中交互式提供。
不过,我想你可能不会以最简单的方式去解决这个问题。 对于忽略整个子目录,我会做这样的事情:
svn propset svn:ignore tmp .
这设置了svn:ignore属性. (当前目录, tmp/的父tmp/ ),告诉它忽略tmp子目录及其下的所有内容。
你正在使用哪个版本的颠覆?
我在Windows上尝试了1.5.2,它只改变了tmp目录的属性:
[C:Temptemp] :svn propset svn:ignore "*" tmp/ property 'svn:ignore' set on 'tmp'
和:
[C:Temptemp] :svn proplist * svn: Skipping argument: '.svn' ends in a reserved name Properties on 'tmp': svn:ignore
对于使用“-F”替代方法的shell脚本中的单行程序,只需尝试以下操作:
echo "*" > .svnignore && svn propset svn:ignore <path> -F .svnignore && rm .svnignore
尝试没有结尾的斜线。 另外,tmp目录本身必须被添加到存储库。
使用GUI SVN客户端是合理的(除非你是一个受虐狂!)。 如果你在Windows上,TortoiseSVN应该是你的第一个通话端口。 右键点击你想忽略的文件,然后点击“TortoiseSVN – >属性”。 在属性对话框中,您可以通过单击“名称”的下拉箭头并选择“svn:ignore”来忽略整个目录。 然后在值框中输入“*”。 当然这全是没有引号的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。