SVN:svn:ignore不会忽略目录的内容

时间:2014-04-25 14:09:30

标签: svn svnignore

这让我感到困惑。

我有一个laravel项目,我使用subversion进行版本控制。 Laravel项目有一个文件夹:

app/storage/cache
app/storage/logs
app/storage/meta
app/storage/sessions
app/storage/views

我需要每个子文件夹,但我不希望他们的内容存储在我的存储库中。当我运行svn status时,我也 super super 不希望内容显示在我的列表中。

我尝试使用以下方法将svn:ignore属性添加到每个文件夹中:

svn propset svn:ignore * .

但是当我运行svn status

时,子文件夹中的所有内容仍显示为可以添加的文件

我看到有人使用svn propset svn:ignore *.* .来忽略文件夹中的所有内容。我也尝试了一下,但它仍然无法工作(可能是因为文件通常没有使图案不匹配的扩展名)。

我有什么误解吗?

编辑:

这里是命令svn proplistsvn status的输出:

[chriss-mbp:storage]: svn proplist *
Properties on 'cache':
  svn:ignore
Properties on 'logs':
  svn:ignore
Properties on 'meta':
  svn:ignore
Properties on 'sessions':
  svn:ignore
Properties on 'views':
  svn:ignore

[chriss-mbp:storage]: svn status
?       logs/laravel.log
?       meta/services.json
?       sessions/3a792417f991b8eb744c06ce73a616604fcca6d3
?       views/7a8aece605b3d3e46f3aa693f077c301
?       views/93279b38fe9be84844babfd1c383f74d
?       views/bbf7bfd90b52526ecd113046a994d2b0
?       views/f2824491ec74e36ce353ab66ce66ad11

更新:

所以我可以通过进入svnx添加svn:ignore属性和*字符,选择我要添加ignore属性的文件夹,单击属性按钮,然后添加svn:ignore作为一个新属性,*未加引号和未转义,因为它的价值。当通过svnx和命令行查看时,此更改肯定会忽略文件夹中的所有内容。

当我返回命令行并运行svn pl views时,它返回:

[chriss-mbp:storage]: svn pl views/
Properties on 'views':
  svn:ignore 

它就像忽略属性那样,但是没有具体的要忽略的东西(我猜这意味着"忽略一切"?)。但是,奇怪的是,我可以在svnx中添加星号,并且它不会通过命令行显示。

我很高兴我无视工作,但我真的不明白为什么它会起作用的确切原因。如果有人想填补空白,我很乐意给他们支票。

2 个答案:

答案 0 :(得分:0)

我认为您需要转义或引用您传递给命令的*,以防止shell扩展它而不是将其用作传递给svn propset命令的文字值。或者,尝试使用propset上的propedit-F标志分别加载文本编辑器或传入文件。

答案 1 :(得分:0)

关于问题的第二部分(在更新之后):

svn pl views显示在文件夹views上设置的属性列表。所以你实际上只是看到设置了svn:ignore属性但你看不到它的内容。

要查看属性的内容,您可以:

  • 使用svn pl -v views获取proplist命令的详细输出。这将列出所有属性及其值。

  • 使用svn pg svn:ignore views获取属性svn:ignore的内容(pgpropget的别名)