subversion/svn的設計還是非常棒的!子命令清晰明了,外圍工具或plugin有時不能work,還必須用命令列(根本入手)。
當時對scalability需求不強,所以沒有像git, mercurail一樣設計分布式。所以,這幾年用svn少了一些。但對小專案足夠了。
1. 外部editor
很多命令可能用外部editor,有時不用還搞不定(如下面的設定ignore list)。
* 可以在.profile裡 export svn_editor=vim (or mate)
* 其實一般用editor來寫一些命令引數args,如 svn pe svn:ignore . 這樣開啟乙個svn*.tmp的檔案,儲存即可
* 使用時指定tmp檔案, svn ps svn:ignore --file svn-prop.tmp .
2. ignore檔案和目錄
$ svn export spool spool-tmp
$ svn rm spool
$ svn ci -m 'removing inadvertently added directory "spool".'
$ mv spool-tmp spool
$ svn propset svn:ignore 'spool' .
$ svn ci -m 'ignoring a directory called "spool".'
3. ignore多個檔案和目錄
上面的方法只能是對乙個目錄和檔案有效
多個的話,後面的檔案會覆蓋前面檔案,可以用svn pg svn:ignore來查(反饋是多少重要)
此時可用 svn ps svn:ignore --file svn-prop.tmp . 把ignore list寫在.tmp檔案裡
svn-prop.tmp:
dir1
dir2
dir3
4. 暴力解決問題
有時svn死活管不好,往往出現在目錄移動上。這時就把目錄下.svn目錄刪掉。
update 肯定會衝突,不怕。用svn resolve --acept working , 然後再把需要svn add回去,再svn ci
5. 多用縮寫
svn st 比svn status好打多了
6. 批量操作
svn delete $(svn status | sed -e '/^!/!d' -e 's/^!//')
svn add $(svn status | sed -e '/^?/!d' -e 's/^?//')
7. 切換庫
svn switch --relocate svn: svn:
8. 外部引用
svn ps svn:externals --file external.txt .
external.txt
lib/zlib svn:
這樣就可以多個專案引用基礎庫了!
9. 暴力刪除svn:external
svn propdel -r svn:externals
10. 暴力刪除svn的所有配置檔案
find . -type d -name ".svn" |xargs rm -rf
svn 命令列 備忘
開發人員常用命令 匯入專案 svn import message start project 匯出專案 svn checkout 採用export 的方式來匯出乙份 乾淨 的專案 svn export pthread 為失敗的事務清場 svn cleanup 在本地進行 修改,檢查修改狀態 svn ...
命令列工具SVN
一 關於命令列工具svn 如果你不知道命令怎麼用svn命令,可通過如下方式查詢 svn help 知道了子命令,但是不知道子命令的用法,還可以查詢 svn help ci 常用命令格式與舉例 匯入專案 svn import message start project 匯出專案 svn checkou...
命令列工具SVN
一 關於命令列工具svn 如果你不知道命令怎麼用svn命令,可通過如下方式查詢 svn help 知道了子命令,但是不知道子命令的用法,還可以查詢 svn help ci 常用命令格式與舉例 匯入專案 svn import message start project 匯出專案 svn checkou...