如何用TortoiseSVN及命令行SVN实现递归忽略与例外设置?
SVN忽略规则配置方案
针对你提出的三个忽略需求,SVN本身没有直接支持“全局忽略+特定目录例外”的通配符语法,但可以通过分层配置目录属性来实现,TortoiseSVN和命令行客户端都支持该操作,具体步骤如下:
a) TortoiseSVN实现步骤
配置根目录忽略规则
右键仓库根目录 → 选择「TortoiseSVN」→「属性」,在属性窗口点击「新建」,选择「svn:ignore」,在编辑框中输入:temp/ temp这会忽略根目录下的
temp/文件夹,以及根目录直接子级目录中的temp文件夹。设置属性继承
回到根目录的属性窗口,新建「svn:inherit-properties」属性,值填写svn:ignore。这会让根目录下所有子目录默认继承根目录的忽略规则,实现“任意深度目录忽略temp”的需求。覆盖bar目录的忽略规则
右键/bar目录 →「TortoiseSVN」→「属性」,删除已继承的svn:ignore属性(或直接设置为空),同时删除svn:inherit-properties属性。这样/bar及其所有子目录都不会应用忽略temp的规则。
b) 命令行SVN客户端实现步骤
配置根目录的svn:ignore属性
svn propset svn:ignore "temp/ temp" /path/to/your/repo/root开启根目录的属性继承
svn propset svn:inherit-properties "svn:ignore" /path/to/your/repo/root清除bar目录的忽略属性与继承规则
svn propdel svn:ignore /path/to/your/repo/bar svn propdel svn:inherit-properties /path/to/your/repo/bar提交属性变更
svn commit -m "Set ignore rules: ignore temp folders except under /bar" /path/to/your/repo/root /path/to/your/repo/bar
注意事项
- 如果某个
temp文件夹已经被加入版本控制,需要先执行svn delete --keep-local将其从版本库中移除,再设置忽略规则才会生效。 svn:inherit-properties是SVN 1.8及以上版本才支持的特性,若你的SVN版本低于1.8,需要手动给每个非bar的子目录单独设置svn:ignore规则。
内容的提问来源于stack exchange,提问作者STenyaK
相关产品推荐
相关产品推荐

