我正在使用Symfony 2.1.2和Subversion版本1.7.6(r1370777)。
我正在尝试使用Subversion使用以下手册设置Symfony项目:http://symfony.com/doc/current/cookbook/workflow/new_project_svn.html
但是在运行命令svn propset svn:ignore "*" app/cache/
和svn propset svn:ignore "*" app/logs/
时出错。这是错误消息:
D:\xampp\htdocs\symfo-app-21>svn propset svn:ignore "*" app/cache/
'.travis.yml' is not under version controlsvn: E155010: The node 'D:\xampp\htdocs\symfo-app-21\.trav
is.yml' was not found.
D:\xampp\htdocs\symfo-app-21>svn propset svn:ignore "*" app/logs/
'.travis.yml' is not under version controlsvn: E155010: The node 'D:\xampp\htdocs\symfo-app-21\.trav
is.yml' was not found.
可能是什么问题。另外,我将使用NetBeans 7.2 IDE,也许有一种方法可以通过NetBeans 7.2忽略与cookbook上的命令行版本匹配的文件夹?
答案 0 :(得分:2)
此错误是由svn客户端造成的愚蠢造成的。我在Windows上遇到了同样的“问题”(哈哈,得到它?)。
svn客户端将星号解释为通配符,因此将匹配通配符的每个文件替换为命令行的参数。因此:
svn propset svn:ignore "*" app/cache/
被解释为:
svn propset svn:ignore "D:\xampp\htdocs\is.yml" app/cache/
由于“D:\ xampp \ htdocs \ is.yml”不受版本控制,命令行客户端会抛出错误。我知道,这种默认行为没有意义。
有三种方法可以解决这个问题。
将通配符放入文件中,并使用以下文件执行propset:
echo * > temp-svnignore
svn propset svn:ignore -F temp-svnignore app/cache/ app/logs/
del temp-svnignore
使用propedit:
set EDITOR=notepad
svn propedit svn:ignore app/cache/ app/logs/
使用此方法,将为要为其设置属性的每个路径打开一个编辑器窗口。在上面的示例中,将按指定的顺序依次打开两个编辑器窗口。
指定与当前目录中的任何内容都不匹配的通配符:
svn propset svn:ignore *.php app/cache/
svn propset svn:ignore *.log app/logs/