svnadmin命令[转]
svnadmin是一個用來監控和修改Subversion版本庫的管理工具,詳情請見“svnadmin”一節。
因為svnadmin直接訪問版本庫(因此只可以在存放版本庫的機器上使用),它通過路徑訪問版本庫,而不是URL。
svnadmin?Switches
--bdb-log-keep
(Berkeley DB特定)關閉數據庫日志自動日志刪除功能。
--bdb-txn-nosync
(Berkeley DB特定)當提交數據庫事務時關閉fsync。
--bypass-hooks
繞過版本庫鉤子系統。
--clean-logs
刪除不使用的Berkeley DB日志。
--force-uuid
缺省情況下,當版本庫加載已經包含修訂版本的數據時
svnadmin會忽略流中的UUID,這個選項會導致版本庫的UUID設置為流的UUID。
--ignore-uuid
缺省情況下,當加載空版本庫時,
svnadmin會使用來自流中的UUID,這個選項會導致忽略UUID。
--incremental
導出一個修訂版本針對前一個修訂版本的區別,而不是通常的完全結果。
--parent-dir DIR
當加載一個轉儲文件時,根路徑為DIR而不是/。
--revision (-r) ARG
指定一個操作的修訂版本。
--quiet
不顯示通常的過程—只顯示錯誤。
--use-post-commit-hook
當導入使用一個轉儲文件時,在每次新的修訂版本產生時運行版本庫post-commit鉤子。
--use-pre-commit-hook
當加載一個轉儲文件時,每次新加修訂版本之前運行版本庫的pre-commit鉤子。如果鉤子失敗,終止提交并中斷加載進程。
svnadmin?Subcommands
名稱
svnadmin create — 創建一個新的空的版本庫。
概要
svnadmin create REPOS_PATH描述
在提供的路徑上創建一個新的空的版本庫,如果提供的目錄不存在,它會為你創建。
[51]對于Subversion 1.2,svnadmin缺省使用fsfs文件系統后端創建版本庫。
選項
--bdb-txn-nosync --bdb-log-keep --config-dir DIR --fs-type TYPE例子
創建一個版本庫就是這樣簡單:
$ svnadmin create /usr/local/svn/repos在Subversion 1.0,一定會創建一個Berkeley DB版本庫,在Subversion 1.1,Berkeley DB版本庫是缺省類型,但是一個FSFS版本庫也是可以創建,使用--fs-type選項:
$ svnadmin create /usr/local/svn/repos --fs-type fsfs?
[51] 記住svnadmin只工作在本地路徑,而不是URL。
名稱
svnadmin deltify — 修訂版本范圍的路徑的增量變化。
概要
svnadmin deltify [-r LOWER[:UPPER]] REPOS_PATH描述
svnadmin deltify因為歷史原因之存在于1.0.x,這個命令已經廢棄,不再需要。
它開始于當Subversion提供了管理員控制版本庫壓縮策略的能力,結果是復雜工作得到了
非常小的收益,所以這個“特性”被廢棄了。
選項
--revision (-r) --quiet名稱
svnadmin dump — 將文件系統的內容轉儲到標準輸出。
概要
svnadmin dump REPOS_PATH [-r LOWER[:UPPER]] [--incremental]描述
使用“
dumpfile”可移植格式將文件系統的內容轉儲到標準輸出,將反饋發送到標準錯誤,導出的修訂版本從LOWER到UPPER。如果沒有提供修訂版本,會導出所有的修訂版本樹,如果只提供LOWER,導出一個修訂版本樹,通常的用法見“版本庫的移植”一節。
缺 省情況下,Subversion的轉儲流包含了一個包括所有文件和目錄的單獨修訂版本(請求的修訂版本范圍的第一個),后面是其它的只包含本修訂所修改的 文件和目錄的修訂版本(請求范圍的其它版本)。對于修改的文件,轉儲文件包括所有的內容和屬性,對于目錄,包括所有的屬性。
有一對有用的選項可以改變轉儲文件產生的方式,第一個是--incremental,使得第一個修訂版本只顯示其修改的文件和目錄,而不是整個目錄樹,就像轉儲文件中其它的修訂版本。這對產生一個準備導入到已經有數據的版本庫時非常有用。
第二個有用的選項是--deltas,這個選項導致
svnadmin dump不會保留修改文件的所有內容,而只是記錄修改的部分。這樣減少(有些情況下是非常大的)了svnadmin dump產生的轉儲文件的大小。然而,也有缺點—增量轉儲文件需要更多的CPU來創建,也不可以用svndumpfilter操作,也不如非增量文件容易被如gzip和bzip2等第三方工具壓縮。
選項
--revision (-r) --incremental --quiet --deltas例子
轉儲整個版本庫:
$ svnadmin dump /usr/local/svn/repos SVN-fs-dump-format-version: 1 Revision-number: 0 * Dumped revision 0. Prop-content-length: 56 Content-length: 56 …從版本庫增量轉儲一個單獨的事務:
$ svnadmin dump /usr/local/svn/repos -r 21 --incremental * Dumped revision 21. SVN-fs-dump-format-version: 1 Revision-number: 21 Prop-content-length: 101 Content-length: 101 …名稱
svnadmin help
概要
svnadmin help [SUBCOMMAND...]描述
當你困于一個沒有網絡連接和本書的沙漠島嶼時,這個子命令非常有用。
別名
?, h
名稱
svnadmin hotcopy — 制作一個版本庫的熱備份。
概要
svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH描述
這個子命令會制作一個版本庫的完全“
熱”拷貝,包括所有的鉤子,配置文件,當然還有數據庫文件。如果你傳遞--clean-logs選項,svnadmin會執行熱拷貝操作,然后刪除不用的Berkeley DB日志文件。你可以在任何時候運行這個命令得到一個版本庫的安全拷貝,不管其它進程是否使用這個版本庫。
選項
--clean-logs名稱
svnadmin list-dblogs — 詢問Berkeley DB在給定的Subversion版本庫有哪些日志文件存在(只有在版本庫使用bdb作為后端時使用)。
概要
svnadmin list-dblogs REPOS_PATH描述
Berkeley DB創建了記錄所有版本庫修改的日志,允許我們在面對大災難時恢復。除非你開啟了DB_LOG_AUTOREMOVE,否則日志文件會累積,盡管大多數是不再使用可以從磁盤刪除得到空間。詳情見
“管理磁盤空間”一節。
名稱
svnadmin list-unused-dblogs — 詢問Berkeley DB哪些日志文件可以安全的刪除(只有在版本庫使用bdb作為后端時使用)。
概要
svnadmin list-unused-dblogs REPOS_PATH描述
Berkeley DB創建了記錄所有版本庫修改的日志,允許我們在面對大災難時恢復。除非你開啟了DB_LOG_AUTOREMOVE,否則日志文件會累積,盡管大多數是不再使用,可以從磁盤刪除得到空間。詳情見
“管理磁盤空間”一節。
例子
刪除所有不用的日志文件:
$ svnadmin list-unused-dblogs /path/to/repos /path/to/repos/log.0000000031 /path/to/repos/log.0000000032 /path/to/repos/log.0000000033$ svnadmin list-unused-dblogs /path/to/repos | xargs rm ## disk space reclaimed!名稱
svnadmin load — 從標準輸出讀取“
轉儲文件”格式流。
概要
svnadmin load REPOS_PATH描述
從標準輸出讀取“
轉儲文件”格式流,提交新的修訂版本到版本庫文件系統,發送進展反饋到標準輸出。
選項
--quiet (-q) --ignore-uuid --force-uuid --use-pre-commit-hook --use-post-commit-hook --parent-dir例子
這里顯示了加載一個備份文件到版本庫(當然,使用
svnadmin dump):
$ svnadmin load /usr/local/svn/restored < repos-backup <<< Started new txn, based on original revision 1* adding path : test ... done.* adding path : test/a ... done. …或者你希望加載到一個子目錄:
$ svnadmin load --parent-dir new/subdir/for/project /usr/local/svn/restored < repos-backup <<< Started new txn, based on original revision 1* adding path : test ... done.* adding path : test/a ... done. …名稱
svnadmin lslocks — 打印所有鎖定的描述。
概要
svnadmin lslocks REPOS_PATH描述
打印版本庫所有鎖定的描述。
選項
無
例子
顯示了版本庫/svn/repos中一個鎖定的文件:
$ svnadmin lslocks /svn/repos Path: /tree.jpg UUID Token: opaquelocktoken:ab00ddf0-6afb-0310-9cd0-dda813329753 Owner: harry Created: 2005-07-08 17:27:36 -0500 (Fri, 08 Jul 2005) Expires: Comment (1 line): Rework the uppermost branches on the bald cypress in the foreground.名稱
svnadmin lstxns — 打印所有未提交的事物名稱。
概要
svnadmin lstxns REPOS_PATH描述
打印所有未提交的事物名稱。關于未提交事物是怎樣創建和如何使用的信息見
“版本庫清理”一節。
例子
列出版本庫所有突出的事物。
$ svnadmin lstxns /usr/local/svn/repos/ 1w 1x名稱
svnadmin recover — 將版本庫數據庫恢復到穩定狀態(只有在版本庫使用bdb作為后端時使用),此外,如果repos/conf/passwd不存在,它會創建一個默認的密碼文件。
概要
svnadmin recover REPOS_PATH描述
在你得到的錯誤說明你需要恢復版本庫時運行這個命令。
選項
--wait例子
恢復掛起的版本庫:
$ svnadmin recover /usr/local/svn/repos/ Repository lock acquired. Please wait; recovering the repository may take some time...Recovery completed. The latest repos revision is 34.恢復數據庫需要一個版本庫的獨占鎖(這是一個“
數據庫鎖”;見“鎖定”的三種含義),如果另一個進程訪問版本庫,svnadmin recover會出錯:
$ svnadmin recover /usr/local/svn/repos svn: Failed to get exclusive repository access; perhaps another process such as httpd, svnserve or svn has it open?$--wait選項可以導致
svnadmin recover一直等待其它進程斷開連接:
$ svnadmin recover /usr/local/svn/repos --wait Waiting on repository lock; perhaps another process has it open?### time goes by...Repository lock acquired. Please wait; recovering the repository may take some time...Recovery completed. The latest repos revision is 34.名稱
svnadmin rmlocks — 無條件的刪除版本庫的一個或多個鎖定。
概要
svnadmin rmlocks REPOS_PATH LOCKED_PATH...描述
從LOCKED_PATH刪除沒個鎖定。
選項
無
例子
這刪除了版本庫/svn/repos里tree.jpg和house.jpg文件上的鎖定:
$ svnadmin rmlocks /svn/repos tree.jpg house.jpg Removed lock on '/tree.jpg. Removed lock on '/house.jpg.名稱
svnadmin rmtxns — 從版本庫刪除事物。
概要
svnadmin rmtxns REPOS_PATH TXN_NAME...描述
刪除版本庫突出的事物,更多細節在
“版本庫清理”一節。
選項
--quiet (-q)例子
刪除命名的事物:
$ svnadmin rmtxns /usr/local/svn/repos/ 1w 1x很幸運,
lstxns的輸出作為rmtxns輸入工作良好:
$ svnadmin rmtxns /usr/local/svn/repos/ `svnadmin lstxns /usr/local/svn/repos/`從版本庫刪除所有未提交的事務。
名稱
svnadmin setlog — 設置某個修訂版本的日志信息。
概要
svnadmin setlog REPOS_PATH -r REVISION FILE描述
設置修訂版本REVISION的日志信息為FILE的內容。
這與使用
svn propset --revprop設置某一修訂版本的svn:log屬性效果一樣,除了你也可以使用--bypass-hooks選項繞過的所有pre-或post-commit的鉤子腳本,這在pre-revprop-change鉤子腳本中禁止修改修訂版本屬性時非常有用。
警告
修訂版本屬性不在版本控制之下的,所以這個命令會永久覆蓋前一個日志信息。
選項
--revision (-r) ARG --bypass-hooks例子
設置修訂版本19的日志信息為文件msg的內容:
$ svnadmin setlog /usr/local/svn/repos/ -r 19 msg名稱
svnadmin verify — 驗證版本庫保存的數據。
概要
svnadmin verify REPOS_PATH描述
如果希望驗證版本庫的完整性可以運行這個命令,原理是通過在內部轉儲遍歷所有的修訂版本并且丟掉輸出。
例子
檢驗掛起的版本庫:
$ svnadmin verify /usr/local/svn/repos/ * Verified revision 1729.總結
以上是生活随笔為你收集整理的svnadmin命令[转]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于(LinuxC语言)的UDP局域网聊
- 下一篇: Golang-PKCS8