subversion(SVN)常規使用

語法: svn <subcommand> [options] [args]
      使用「svn help <subcommand>」 顯示子命令的幫助信息。
      使用「svn --version」查看程序的版本號和版本庫訪問模塊,或者
      使用「svn --version --quiet」只查看程序的版本號。php

1.【檢出】將文件checkout到本地目錄
   將「項目版本庫」檢出到/wwwroot目錄(不存在就建立)
   # svn checkout svn://192.168.1.xx:3690/martinZFsvn/wwwroot
   簡寫:svn cohtml

   注:第一次登錄svn服務器會將密碼信息存放在用戶路徑下的.subversion文件夾下,路徑爲/root/.subversion/服務器


2.【添加】向版本庫添加新文件
   # echo 'myaddfile.....' > svnaddfile.txt  新建立了一個文件
   # svn add svnaddfile.txt                  將新文件svnaddfile.txt添加到版本庫
   # svn add *.php                           將當前目錄的全部php文件添加到版本庫網絡


3.【提交】將改動的文件提交到版本庫
   svn commit -m "LogMessage" [-N] [--no-unlock] PATH(若是選擇了保持鎖,就使用--no-unlock開關)
              -m 參數表示「最近信息」內容,至關因而每次提交新版本的備註信息svn

   # svn commit -m 'add test file for my test' svnaddfile.txt 將svnaddfile.txt文件提交到版本庫
   簡寫:svn ciui


4.【更新】將本地文件更新到某個版本
   svn update -r m path.net

   例如:
   svn update 若是後面沒有目錄,默認將當前目錄及子目錄下的全部文件都更新到最新版本
   # svn update                       更新整個目錄
   # svn update newdir                更新newdir目錄(這個目錄能夠是已經存在的,也但是新添加的)
   # svn update ./svnaddfile.txt      更新當前目錄的svnaddfile.txt,若是在提交的時候提示過時的話,是由於衝突,須要先update,修改文件,而後清除svn resolved,最後再提交commit。
   # svn update -r 8 ./svnaddfile.txt 更新svnaddfile.txt還原到版本8
   簡寫:up
  unix

5.【刪除文件】
   svn delete PATH -m 'delete test file,'
   # svn delete ./grptest11/test111.txt版本控制

   或者直接 # svn delete ./grptest11/test111.txt 而後再 # svn ci -m 'delete test file' 推薦使用這種日誌

   簡寫:svn (del, remove, rm)


6.【加鎖/解鎖】
   svn lock -m 'LockMessage' [--force] PATH

   # svn lock -m '我如今修改這個文件,其餘人先別改哦' svnaddfile.txt  //對svnaddfile.txt加鎖

   svn unlock PATH 解鎖


7.查看文件或目錄狀態
  svn status PATH (檢查PATH目錄下的文件和子目錄的狀態,正常狀態不顯示)
  注:?:表示不在svn的控制中; M:表示內容被修改; C:表示發生衝突; A:表示預約加入到版本庫; K:表示被鎖定

  svn status -v PATH (顯示文件和子目錄狀態)
  第一列保持相同,第二列顯示工做版本號,第三和第四列顯示最後一次修改的版本號和修改人。
  注:svn status、svn diff和 svn revert這三條命令在沒有網絡的狀況下也能夠執行的,緣由是svn在本地的.svn中保留了本地版本的原始拷貝。

  簡寫:svn st


8.查看日誌
  svn log PATH
  例如:# svn log test.php 顯示這個文件的全部修改記錄,及其版本號的變化


9.查看文件詳細信息
  svn info PATH
  例如:# svn info svnaddfile.txt


10.比較差別
  svn diff PATH (將被修改的文件與基礎版比較)
  例如:# svn diff svnaddfile.txt

  svn diff -r m:n path(對版本m和版本n比較差別)
  例如:# svn diff -r 8:12 svnaddfile.txt

  簡寫:svn di


11.將兩個版本之間的差別合併到當前文件
  svn merge -r m:n PATH
  例如:# svn merge -r 8:12 svnaddfile.txt (將版本8與12之間的差別合併到當前文件,可是通常都會產生衝突,須要處理一下)


12.【幫助】
    # svn help
    # svn help ci
    # svn help up

------------------------------------------------------------------------------------------------------

13.版本庫下的文件和目錄列表
   例如:svn list path
   簡寫:svn ls


14.建立歸入版本控制下的新目錄
   用法:1.# mkdir PATH
         2.# mkdir URL

   建立版本控制的目錄。
   1.每個以工做副本 PATH 指定的目錄,都會建立在本地端,而且加入新增調度,以待下一次的提交。
   2.每一個以URL指定的目錄,都會透過當即提交於倉庫中建立。在這兩個狀況下,全部的中間目錄都必須事先存在。


15.恢復本地修改
   svn revert 恢復原始未改變的工做副本文件(恢復大部分的本地個性) revert
   用法:# svn revert PATH

   注意: 本子命令不會存取網絡,而且會解除衝突的情況。可是它不會恢復被刪除的目錄


16.代碼庫URL變動
   svn switch (sw): 更新工做副本至不一樣的URL。
   用法: 一、switch URL [PATH]
         二、switch --relocate FROM TO [PATH...]
   一、更新你的工做副本,映射到一個新的URL,其行爲跟「svn update」很像,也會將服務器上文件與本地文件合併。這是將工做副本對應到同一倉庫中某個分支或者標記的方法。
   二、改寫工做副本的URL元數據,以反映單純的URL上的改變。當倉庫的根URL變更(好比方案名或是主機名稱變更),可是工做副本仍舊對映到同一倉庫的同一目錄時使用這個命令更新工做副本與倉庫的對應關係。


17.解決衝突
   svn resolved: 移除工做副本的目錄或文件的「衝突」狀態。
   用法: resolved PATH...
   注意: 本子命令不會依語法來解決衝突或是移除衝突標記;它只是移除衝突的相關文件,而後讓 PATH 能夠再次提交。

18.輸出指定文件或URL的內容
   svn cat 目標[@版本]...若是指定了版本,將從指定的版本開始查找。
   svn cat -r PREV filename > filename (PREV 是上一版本,也能夠寫具體版本號,這樣輸出結果是能夠提交的)

 

注:大多數的子命令可接受文件或目錄參數,對目錄進行遞歸處理。若是沒有指定參數,默認對當前目錄(包含當前目錄)遞歸處理。

可用子命令:
   add
   blame (praise, annotate, ann)
   cat
   changelist (cl)
   checkout (co)     檢出
   cleanup
   commit (ci)
   copy (cp)
   delete (del, remove, rm)
   diff (di)
   export
   help (?, h)
   import
   info
   list (ls)
   lock
   log
   merge
   mergeinfo
   mkdir
   move (mv, rename, ren)
   patch
   propdel (pdel, pd)
   propedit (pedit, pe)
   propget (pget, pg)
   proplist (plist, pl)
   propset (pset, ps)
   relocate
   resolve
   resolved
   revert
   status (stat, st)
   switch (sw)
   unlock
   update (up)
   upgrade


參考文檔
http://blog.chinaunix.net/uid-22150747-id-189264.html
http://blog.163.com/kingna_jin/blog/static/32488347200868858899/
http://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076783.html

相關文章
相關標籤/搜索