FinalHome

最初的梦想

SVN 忽略文件的设置

git 有 .gitirnore 文件来设置项目的忽略文件规则,那 SVN 呢?

工作中我有遇到这么一个 SVN 仓库,里面包含了多个项目,不同的人在维护。

而在我的项目文件中,不希望提交某些文件,比如 node_modules,之前我的做法是每个版本迁出的时候,手动去添加各个需要忽略的文件。我希望能有一个类似 .gitignore 的方式,去维护我 SVN 仓库下需要忽略的文件。

TortoiseSVN GUI

就是那个 “小乌龟” 软件,一个 GUI 的 SVN 管理工具。

我们常规的做法就是对需要忽略的文件或目录,右击,选择 TortoiseSVN -> Add to ignore list (已添加的版本管理中的也类似,菜单名会变为 Unversion and add to ignore list),其中会给出两种忽略方式, 比如 node_modules 目录:

  • node_modules: 只忽略当前路径下的
  • node_modules(recursive): 忽略整个工程下的

这就是我们常用的设置方式,也是我想要优化的地方。

TortoiseSVN Command

其实 svn 也是有对应的命令行命令的,比如 svn status, svn update, svn add, svn commit 等。对应也有文档: TortoiseSVN 命令

其中就有介绍如何加入忽略列表:

1
2
3
svn propget svn:ignore PATH > tempfile
{edit new ignore item into tempfile}
svn propset svn:ignore -F tempfile PATH

这就是命令行下添加忽略规则的方式,我们可以看到实际是加到项目的 properties 中,这里使用的一个文件去维护忽略规则,这其实就是我想要的方式

导入忽略规则后,我们在项目中右击,通过 TortoiseSVN -> Properties 可以查看,修改,以及导入导出。关于忽略的两种方式,实际对应的属性也是两个:

  • svn:ignore
  • svn:global-ignore

优化方案

通过命令行的方式,我们可以看到忽略规则是可以被导入导出的。这样我们就可以通过文件去维护项目的忽略列表,虽然这个忽略规则不会自动被识别,但是已经可以简化我们许多人工点击的操作了。

操作如下:

  • 生成忽略文件, 两种方式:
    • 通过 TortoiseSVN GUI 方式,点击操作设置相关忽略文件
    • 维护 .svnignore.svnignore-global 两个文件,分别通过命令行导入
  • 在项目中右击,通过 TortoiseSVN -> Properties 对配置导出
  • 在新项目中, 通过 TortoiseSVN -> Properties 导入配置

配置导出的时候,注意全选,然后 export ,导出的文件是 .svnprops

我们也可以只导出忽略规则,方式到对应的 .svnignore.svnignore-global 文件中。

参考

Proudly powered by Hexo and Theme by Hacker
© 2016 Leo Hui