1. 程式人生 > >svn中的ignore

svn中的ignore

rec 原因 -i 右鍵 .project pan 全局 list commit

1.相關命令

svn propdel (pdel, pd)
svn propedit (pedit, pe)
svn propget (pget, pg)
svn proplist (plist, pl)
svn propset (pset, ps)

參考:http://svnbook.red-bean.com/en/1.7/index.html

2.相關可設置屬性

參考:http://svnbook.red-bean.com/en/1.7/svn.ref.properties.html

3.svn:global-ignores和svn:ignore以及小烏龜settings中的global ignore patterns的區別

svn:global-ignores配置當前目錄的全局ignore,對當前目錄的所有文件和文件夾起作用.

相當於在當前目錄,配置-R svn:ignore,不是對當前倉庫的的.

svn:ignore只對當前目錄有效,如果使用-R參數,對子目錄也有效.

global ignore patterns的配置文件在svn %APPDATA%/Subversion/config中,###是註釋,#是配置,對所有倉庫有效.

也可以在小烏龜中右鍵setting

4.svn的ignore配置

首先需要註意的一點:svn的ignore可能無法區分文件夾和文件,比如.idea,會同時忽略.idea文件夾和文件.(反正我沒找到區分方法)

通配符就是?* [],?匹配單字符,*多字符,[]任意一個,比如[0-9]和[Tt],應該和正則用法一致.

5.已經commit過的如何忽略?

svn又一次被git完爆的原因

如果是編譯等產生的中間文件,比如target,bin我覺得直接svn delete就行.

如果是配置文件,比如idea,.project,再接著看

已經commited了再.ignore也不管用了.

比如已經commit了.idea文件夾,後面給.idea加了ignore.

如果自己一個人用svn,可以先備份一份,然後svn del掉.idea文件夾,備份的再改回.idea就好了.

如果團隊用,A,B,C三個人,A備份為idea1,A

用svn del .idea刪除掉,或者A不用備份,--keep-local也行,然後B和C在update之前,備份為idea1,update好了再改回來.

如果需要備份的文件太多,幾十個之類的,可以嘗試花點時間寫個腳本,先根據需要備份的ignore,找到匹配的文件和目錄,cp備份,更新完了,再還原回來.

查了有點相關的svndumpfilter,感覺有點難,而且貌似也達不到效果.

如果能在server端的版本庫中刪除文件,本地庫不更新,就好了.

6.小烏龜的右鍵ignore

沒有 recursively的,是global-ignore,對當前目錄以及子目錄有效.

有recursively的,只對當前目錄有效.

svn中的ignore