我有一个包含许多子目录的大目录树。在许多目录中我使用了svn propedit svn:ignore .
,并忽略给定目录中的文件和/或目录。现在,我想忽略,在all子目录称为目录foo
. In 这个答案 https://stackoverflow.com/a/9211176/671013,建议调用:
svn propset --recursive svn:ignore foo .
从树的根部开始。问题是,一旦调用它,它就会覆盖各个子目录中所有预定义的忽略 - 这是不希望的。本质上我想附加到树中每个目录的忽略列表中,一行包含条目foo
in it. SVN支持这种行为吗?如果没有,那么我正在考虑编写此任务的脚本,然后添加到文件中dir-prop-base
(似乎包含忽略列表)在每个./sub/directory/.svn
(where .
是树的根)所需的线。这样做安全吗?,即手动弄乱.svn
内容?
我建议使用 bash 脚本来完成此任务。但不要直接操作文件,而是继续使用svn命令工具。该解决方案简单且安全。如果执行以下脚本,则可以完成这项工作find -type d ! -path "*/.svn*" -exec /tmp/add_svn_ignore.sh {} +
从工作目录:
#! /bin/bash
ignore="foo"
for pathname in "$@"; do
lines="$( svn propget svn:ignore "$pathname" )"
grep -F -x -q "$ignore" - <<< "$lines" ||
svn propset svn:ignore "$lines"$'\n'"$ignore" "$pathname"
done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)