svn 命令列技巧

2021-08-25 18:28:33 字數 1599 閱讀 2358

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...