我想在我们的登记中递归地忽略一堆文件,例如/bin
和/obj
以及*.user
。我在一个名为.svnignore
的文件中列出了所有这些模式的列表。我可以将这个忽略列表递归地应用到每个目录中,如下所示:
svn propset svn:ignore -R -F .svnignore。
当我们添加新项目和内容时,我经常运行它。但是,现在我想忽略只是根目录中的/QEData
目录(不递归,只有一个实例)。因此,运行上面的命令后,我运行:
svn propset svn:忽略QEData。
但是,此似乎消除了根目录上.svnignore
的所有模式,并将其替换为 /QEData
模式。如何在不使用覆盖该目录中的现有忽略的情况下添加到忽略列表?
注意:我正在寻找可以在Windows和/或PowerShell上编写脚本的答案。
答案 0 :(得分:2)
非交互式Windows类型propedit
echo NEWSTRING> PATH\TO\TEMPFILE
svn pg PROPERTY >> PATH\TO\TEMPFILE
svn ps PROPERTY -F PATH\TO\TEMPFILE .
del PATH\TO\TEMPFILE
每个这样的伪pe将在属性值列表的末尾添加两个空字符串,空行在处理时忽略SVN
关于global-ignore
的说明使用
svn propget svn:global-ignores -v
Properties on '.':
svn:global-ignores
*.dat
和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
即,简而言之 - 如果进入WC的目录,定义了svn:global-ignores模式,则在此子目录中添加了subdir和文件,匹配和不匹配模式,提交时选择所有需要的TortoiseSVN 和只需要对象
答案 1 :(得分:1)
这有帮助吗?
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 - .