Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 在subversion中递归忽略整个源代码树中的文件,而不删除现有的ignore属性_Svn_Svnignore - Fatal编程技术网

Svn 在subversion中递归忽略整个源代码树中的文件,而不删除现有的ignore属性

Svn 在subversion中递归忽略整个源代码树中的文件,而不删除现有的ignore属性,svn,svnignore,Svn,Svnignore,我希望在我的svn中添加一行:忽略模式“*.bak” 我希望对整个树递归地执行此操作。我可以这样做: 然而,我发现这个方法将删除任何现有的忽略规则 是否有某种方法可以递归地向svn:ignore属性添加新行,而不删除已经存在的内容 我的许多子目录已经有多个忽略模式,我不希望所有子目录都有相同的忽略模式。我只想给每个目录添加一个新模式 我希望一切都清楚了。谢谢你的帮助 要忽略多个“类型”或“模式”,您需要提供一个文件 svn propset svn:ignore -F patterns.txt

我希望在我的svn中添加一行:忽略模式“*.bak”

我希望对整个树递归地执行此操作。我可以这样做:

然而,我发现这个方法将删除任何现有的忽略规则

是否有某种方法可以递归地向svn:ignore属性添加新行,而不删除已经存在的内容

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


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

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

svn propset svn:ignore -F patterns.txt
所以,要想做你想做的事情,你需要更进一步,获得道具列表,附加一个临时文件,等等


或者您可以编写一个web客户端,直接与SVN/Dav服务器对话,获取道具并进行设置。

SVN propedit
editproperties

使用
find
命令:

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

-execdir bash-c'svn-q propset svn:ignore-F由
juj
给出的答案有效,但只会为已经存在此类文件的目录添加ignore模式,因此将来可能需要重新运行脚本。此外,您还可以在
svn:ignore
属性中获得特定的文件名(与模式相反)

我在下面的回答中提供了一个不存在上述问题的替代解决方案:
.

谢谢你的帮助。我正在寻找的东西,将递归设置在树中的每个文件夹的属性。据我所知,这只适用于一个文件夹-是这样吗?1<代码>svn pg svn:忽略-R
将为您提供具有svn:ignore defined 2的所有子曲面<代码>svn pg svn:忽略>文件保存所有旧模式3<代码>回声>>文件添加新的4
propset-F
define new set我的问题是我的许多子目录已经设置了多个忽略模式。我不希望每个目录都有相同的忽略模式,我只希望在每个目录中的现有模式中添加一个新的忽略模式。是的。您需要编写一个脚本来递归目录,获取当前忽略的列表,将其放入tmp文件,附加新的忽略,然后使用-F应用它。这不是最简单的解决方案,但是我找不到更好的方法。这只会在已经存在*.bak文件的目录中添加忽略模式,因此将来在其他目录中添加新的*.bak文件时,您可能必须重新运行该命令。如果您想一劳永逸地正确设置它,该怎么办?您完全正确,而且在svn 1.8之前,该过程无法完全完成(这就是为什么我一直认为subversion在设计上是低劣的)。但是,您可以使用吸入特性机械原理。()
    find . -name "*.bak" \
       -execdir bash -c 'svn -q propset svn:ignore -F <((svn propget svn:ignore; basename "{}") | sort -u) .' \;