0

我正在使用 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 忽略与说明书上的命令行版本匹配的文件夹?

4

1 回答 1

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”不受版本控制,命令行客户端会抛出错误。我知道,这种默认行为没有意义。

有三种方法可以处理这个问题。

  1. 将通配符放入文件中,并使用该文件执行propset:

    echo * > temp-svnignore
    svn propset svn:ignore -F temp-svnignore app/cache/ app/logs/
    del temp-svnignore
    
  2. 使用道具:

    set EDITOR=notepad
    svn propedit svn:ignore app/cache/ app/logs/
    

使用此方法,将为您设置属性的每个路径打开一个编辑器窗口。在上面的示例中,将打开两个编辑器窗口,按照指定的顺序一个接一个。

  1. 指定一个与当前目录中的任何内容都不匹配的通配符:

    svn propset svn:ignore *.php app/cache/
    svn propset svn:ignore *.log app/logs/
    
于 2012-11-29T14:38:53.570 回答