【发布时间】:2011-06-16 08:48:04
【问题描述】:
假设我想为目录 dir1 设置 svn:ignore 属性具有多个值,file1,file2 em> 和 file3。 如何在不使用文本编辑器(设置属性值)的情况下通过命令行执行此操作?
【问题讨论】:
标签: svn
假设我想为目录 dir1 设置 svn:ignore 属性具有多个值,file1,file2 em> 和 file3。 如何在不使用文本编辑器(设置属性值)的情况下通过命令行执行此操作?
【问题讨论】:
标签: svn
键入与此处完全相同的换行符:
svn propset svn:ignore "file1
file2
file3" dir1
如果你想从另一个命令传递一个列表,试试xargs。
不幸的是,svn 命令不允许从stdin 和-F - 读取。
【讨论】:
一线解决方案:
svn propset svn:ignore "file1"$'\n'"file2"$'\n'"file3" dir1
【讨论】:
^ 替换字符存在的情况下,这对我来说工作得很好,该替换字符用于在属性 svn:externals 中指定 svn 存储库的根目录。多行解决方案不起作用,因为 shell 试图解释 ^
\n 周围的单引号是必需的,并且必须是单引号,而文件名周围的双引号仅在它们具有空格等特殊字符时才需要。
添加多个条目要容易得多。使用以下命令:
svn propedit svn:ignore .
这将打开一个文本编辑器。现在您可以轻松添加多个条目。
【讨论】:
export SVN_EDITOR=vi来完成
用途:
cat > ignorelist << END
file1
file2
file3
END
svn propset svn:ignore -F ignorelist dir1
或者没有外部文件,假设您使用的是 Linux 或带有 /dev/fd 的系统:
svn propset svn:ignore -F /dev/fd/0 dir1 << END
file1
file2
file3
END
【讨论】:
/dev/fd:指的是什么?软盘? /proc/PID/fd/?还是别的什么?
在PowerShell中:
$ignore = "*.dll`n*.xml"
svn propset svn:global-ignores $ignore .
【讨论】: