我想在我们的登记中递归地忽略一堆文件,例如 /bin
和 /obj
和 *.user
.我在一个名为 .svnignore
的文件中列出了所有这些模式,该文件已 checkin 。我可以递归地将此忽略列表应用于每个目录,如下所示:
svn propset svn:ignore -R -F .svnignore .
当我们添加新项目和东西时,我经常运行它。但是,现在我想只忽略根目录中的/QEData
目录(不是递归的,只是一个实例)。因此,在运行上述命令后,我运行:
svn propset svn:ignore QEData .
但是,这 似乎清除了根目录中 .svnignore
中的所有模式,并将它们替换为 just /QEData
模式。如何添加到忽略列表而不覆盖该目录上的现有忽略?
注意:我正在寻找可以在 Windows 和/或 PowerShell 上编写脚本的答案。
最佳答案
非交互式 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 在处理时忽略空行
关于全局忽略的注意事项
与
svn propget svn:global-ignores -v
Properties on '.':
svn:global-ignores
*.dat
和厕所一样
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:global-ignores 模式的 WC 目录,在该子目录中添加子目录和文件,匹配和不匹配模式,提交时选择 TortoiseSVN 所有需要的 和只需要个对象
关于windows - 如何在不覆盖现有忽略列表的情况下将文件设为 "svn ignore",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24290474/