Windows 如何";svn忽略“;文件,而不覆盖现有的忽略列表
我希望在我们的登记中递归地忽略一些文件,例如Windows 如何";svn忽略“;文件,而不覆盖现有的忽略列表,windows,svn,Windows,Svn,我希望在我们的登记中递归地忽略一些文件,例如/bin和/obj和*。user。我在一个名为.svnignore的文件中列出了所有这些模式,该文件已签入。我可以递归地将此忽略列表应用于每个目录,如下所示: svn propset svn:ignore-R-F.svnignore 当我们添加新项目和东西时,我经常运行这个。但是,现在我只想忽略根目录中的/QEData目录(不是递归的,只是一个实例)。因此,在运行上述命令后,我将运行: svn propset svn:忽略QEData 但是,这似乎会清
/bin
和/obj
和*。user
。我在一个名为.svnignore
的文件中列出了所有这些模式,该文件已签入。我可以递归地将此忽略列表应用于每个目录,如下所示:
svn propset svn:ignore-R-F.svnignore
当我们添加新项目和东西时,我经常运行这个。但是,现在我只想忽略根目录中的/QEData
目录(不是递归的,只是一个实例)。因此,在运行上述命令后,我将运行:
svn propset svn:忽略QEData
但是,这似乎会清除根目录上.svnignore
中的所有模式,并用/QEData
模式替换它们。如何在不覆盖该目录上现有的忽略的情况下添加到忽略列表
注意:我正在寻找一个可以在Windows和/或PowerShell上编写脚本的答案。这有帮助吗
echo -e "`svn propget svn:ignore`\nQEData" | svn propset svn:ignore -F - .
更新:
这可以作为脚本附加忽略的基础
#!/bin/sh
if [ $# -ne 1 ]
then
echo -e "Usage: `basename $0` <something to be ignored>\n"
exit 1
fi
IGNORE=$1
echo -e "`svn propget svn:ignore`\n$IGNORE" | svn propset svn:ignore -F - .
#/垃圾箱/垃圾箱
如果[$#-ne 1]
然后
echo-e“用法:`basename$0`\n”
出口1
fi
忽略=1美元
echo-e“`svn-propget-svn:ignore`\n$ignore”| svn-propset-svn:ignore-F-。
非交互式Windows类型属性
echo NEWSTRING> PATH\TO\TEMPFILE
svn pg PROPERTY >> PATH\TO\TEMPFILE
svn ps PROPERTY -F PATH\TO\TEMPFILE .
del PATH\TO\TEMPFILE
每一个这样的伪pe都会在属性值列表的末尾添加两个空字符串,不管怎样,在处理SVN时都会忽略空行
关于全局忽略的注意事项
与
和WC一样
dir /B /S
z:\WC\a.txt
z:\WC\Sub
z:\WC\b.dat
z:\WC\Sub\c.dat
z:\WC\Sub\d.txt
有地位
svn st --no-ignore
? Sub
I b.dat
即,简而言之,如果进入定义了svn的WC目录:全局忽略模式添加的子目录和该子目录中的文件,匹配和不匹配模式,提交时选择所有需要和仅需要的对象
哎哟,说说黑客!我不敢相信Subversion中的忽略功能会如此糟糕!svn中的忽略功能只是一个属性,很抱歉告诉您:(这很好,但无法轻松地将数据附加到现有属性,也无法继承属性,因此每次添加新目录时,都必须再次递归应用忽略属性。此外,此答案仅添加字符串-e“
svn propget svn:ignore
\nQEData”到我的忽略列表。不过,我会继续胡闹这个想法,如果我找到了工作,我会更新你的答案。哦,应该更具体一点!是的,我需要一个Windows解决方案。谢谢!是的,我认为临时文件将是解决我原来问题的唯一解决方案。但似乎全局忽略
是解决问题的方法至少我在做。
svn st --no-ignore
? Sub
I b.dat