SVN中設置忽略文件

不少中小型項目,特別是公司的項目版本管控通常都仍是使用SVN,包括我本身的我的電腦,也是用SVN來進行文件管理。若是不進行忽略文件的設置,不少中間文件和二進制文件都被checkin到庫中,浪費空間不說,還帶來管理上的混亂。node

在git工具中,設置忽略文件只須要修改版本庫根目錄下的.gitignore文件就能夠了,svn就沒有這種方便的ignore文件,不過SVN也有替代的方法,用起來也不是太麻煩,通常來講有兩種方式,設置好了徹底能夠知足大多數需求。git

全局設置忽略文件類型

在SVN的配置文件 ~/.subversion/config中,已經有了設置,只是默認沒有打開,找到[miscellany]段,將global-ignores前面的註釋去掉便可,另外還能夠本身增長一些想忽略的文件類型,例如個人修改:bash

[miscellany]
global-ignores=*.o *.so *.so.[0-9]* *.a *.pyc *.dylib

這個配置是隻影響本地客戶端,對版本庫沒有任何影響,適用於本機全部 svn 管理的項目。 ide

工程目錄下設置忽略文件和目錄

大多數時候,工程目錄下會有一些不須要進行版本管理的文件和目錄,如臨時編譯文件夾或是本地配置信息,這個時候就須要對特定工程進行設置,通用的方式是使用svn的propedit:svn

$ svn propedit svn:ignore <dir>

要是隻有個別項目,這樣設置也就夠了,可是對於管理不少項目就不是太方便,因而我本身寫了一個腳本,先看腳本文件內容:工具

#!/bin/sh
echo '.git\n.gitignore\n.hgignore\n.hgtags\n.idea
.tags\ntags\n.travis.yml\n.ycm_extra_conf.py
node_modules\nbuild' > .svnignore

while [ -n "$1" ]
do
    echo "$1" >> .svnignore
    shift 1
done

svn propset svn:ignore -F .svnignore . 
svn ci -m 'ignoring some files'
rm .svnignore

腳本先產生一個臨時的相似於.gitignore這樣的文件,而後利用SVN的propset方式來修改當前目錄的忽略列表。
在腳本的最開始,將常常須要忽略的文件和目錄名稱放進去;在while循環這個地方,接受命令行參數,將參數也放入忽略列表中;設置完畢以後提交入庫。
例如,我將這個腳本文件命名爲svn_ignores,同時將腳本文件放置在/usr/local/bin/的目錄下(便於全局訪問),進入到某個工程目錄,這個工程目錄當前的結構以下:ui

MyProject
  - bin
  - src
  - inc
  - thirdpart
  - build
  README.md
  tmp.txt

這裏的build, tmp.txt,我不想將它放到庫中進行管理,因而在工程目錄下執行:idea

$ svn_ignores build tmp.txt
相關文章
相關標籤/搜索