0

我希望在我的 svn:ignore 中添加一行,例如模式“*.bak”。

我希望对整棵树递归地完成此操作。我可以按照此处所述执行此操作:

svn propset svn:ignore '*.bak' . --recursive

但是我发现此方法将删除我拥有的任何现有忽略规则。

有什么方法可以递归地在 svn:ignore 属性中添加一个新行而不删除已经存在的内容?

我的许多子目录已经有多个忽略模式,我不希望所有子目录都具有相同的忽略模式。我只想为每个目录添加一个新模式。

我希望这一切都清楚了。谢谢你的帮助!

4

4 回答 4

2

使用find命令:

    find . -name "*.bak" \
       -execdir bash -c 'svn -q propset svn:ignore -F <((svn propget svn:ignore; basename "{}") | sort -u) .' \;

我使用sort -u一致性和独特性。

于 2013-07-11T14:14:00.900 回答
0

作品给出的答案,juj但只会为已经存在此类文件的目录添加忽略模式,因此您将来可能必须重新运行脚本。此外,您还可以在属性中获得特定的文件名svn:ignore(与模式相反)。

我的以下答案中提供了不存在上述问题的替代解决方案: unix.stackexchange post

于 2014-01-07T18:04:22.423 回答
0

svn propedit 编辑属性

于 2012-01-24T19:59:10.957 回答
0

要忽略多个“类型”或“模式”,您需要提供一个文件

svn propset svn:ignore -F patterns.txt

所以,要做你想做的事,你需要更进一步,获取道具列表,用一个临时文件附加到它上面,等等。

或者您可以编写一个直接与 SVN/Dav 服务器对话、获取道具并设置它们的 Web 客户端。

于 2012-01-24T13:17:37.000 回答