svn 命令詳解

Subversion 命令列表:

# 查看svn命令
svn -h

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

# Subversion is a tool for version control.
# For additional information, see http://subversion.apache.org/
# Subversion 官網.

svn add [path]

別名:無

描述:添加文件或目錄到你的wc,打上新增標記。這些文件會在下一次你提交wc的時候提交到svn服務器。

在提交前,你也可以用svn revert撤銷新增的文件。

訪問庫:否

eg: svn add file.cpp

 

svn blame Target[@REV]

別名:praise,annotate,ann

描述:顯示某個已受控文件的每一行的最後修改版本和作者

訪問庫:是

eg: svn blame file.cpp

eg: svn blame --xml file.cpp  ##加上xml參數可以以xml格式顯示每一行的屬性。

 

svn cat TARGET[@REV]

別名:無

描述:輸出指定目標的內容,這裏的目標一般是文件。

訪問庫:是

eg:svn cat file.cpp

eg:svn cat file.cpp -r 2 ##顯示版本號爲二的file.cpp內容。

eg:svn cat file.cpp --revision HEAD ##顯示最新版本的file.cpp內容。

 

svn changelist CLNAME TARGET...

svn changelist --remove TARGET

別名:cl

描述:可以將wc中的文件從邏輯上分組.

訪問庫:否

eg:svn cl clName file.cpp file2.cpp file3.cpp  ##將file.cpp等三個文件加入名叫clName的changelist 

eg:svn commit --changelist clName -m "ci"  ##將clName下的所有文件提交

 

svn checkout URL[@REV]... [PATH]

別名:co

描述:檢出

訪問庫:否

eg:svn checkout file:///var/svn/repos/test  file:///var/svn/repos/quiz working-copies

eg:svn checkout -r 2 file:///var/svn/repos/test mine  ##check out 版本號爲2的項目

 

svn cleanup [PATH...]

別名:無

描述:遞歸的清理WC中過期的鎖和未完成的操作。

訪問庫:否

eg:svn cleanup

 

svn commit [PATH...]

別名:ci

描述:把你WC的更改提交到倉庫

訪問庫:是

eg:svn commit -m "added howto section." ##默認情況下提交必須提供log message 

 

svn copy SRC[@REV]... DST

別名:cp

描述:copy操作可以從WC到WC;WC到URL;URL到WC;URL到URL。現在SVN只支持同一個倉庫內文件的拷貝,不允許跨倉庫操作。

訪問庫:是

eg:svn copy -r 11 file:///var/svn/repos/test/trunk \

           file:///var/svn/repos/test/tags/0.6.32-prerelease \

           -m "Forgot to tag at rev 11"

##copy命令是創建分支和標記的常用方式。copy到url的操作隱含了提交動作,所以需要提供log messages。

 

svn delete PATH...

別名:del,remove,rm

描述:刪除

訪問庫:如果PATH是庫地址時會,刪除WC內的文件不會。

eg:svn del localfile.cpp    ##刪除WC裏的文件,在下一次提交WC的時候纔會真正在倉庫裏將對應文件刪除。

eg: svn del file:///var/svn/repos/test/yourfile  ##刪除倉庫裏的文件

 

svn diff

別名:di

描述:用來比較並顯示修改點。

訪問庫:

eg:svn diff   ##最常用的方式,用來顯示WC基於最近一次更新以後的所有的本地修改點。

eg:svn diff -r 301 bin ## 比較WC和版本301中的bin目錄的修改點

eg:svn diff -r 3000:3500 file:///var/svn/repos/myProject/trunk   ##比較庫裏主幹3000版和3500版的差異。

eg:svn diff --summarize --xml http://svn.red-bean.com/repos/test@r2 http://svn.red-bean.com/repos/test  ##--summarize --xml 參數將差異情況以xml文檔的方式顯示出來。

 

svn export [-r REV] URL[@PEGREV] [PATH]

svn export [-r REV] PATH1[@PEGREV] [PATH2]

別名:無

描述:導出一個乾淨的目錄樹,不包含所有的受控信息。可以選擇從URL或WC中導出。

訪問庫:如果訪問的是URL則會。

eg:svn export file:///var/svn/repos my-export   ##導出到my-export目錄。

 

svn help — Help!

別名:?,h

描述:不用解釋了

訪問庫:否。

 

svn import [PATH] URL

別名:無

描述:導入本地一個目錄到庫中。但是導入後,本地的目錄並不會處於受控狀態。

訪問庫:是。

eg:svn import -m "New import" myproj http://svn.myProject.com/repos/trunk/misc

 

svn info [TARGET[@REV]...]

別名:無

描述:顯示指定WC和URL信息。

訪問庫:僅當訪問的是庫路徑時。

eg:svn info --xml http://svn.myProject.com/repos/test  ##將信息以xml格式顯示。

 

svn list [TARGET[@REV]...]

別名:ls

描述:顯示目標下的文件和目錄列表。

訪問庫:如果訪問的是庫地址就會。

eg:svn list --verbose file:///var/svn/repos   ##--verbose參數表示顯示詳細信息。

 

svn lock TARGET...

別名:無

描述:對目標獲得修改鎖。如果目標已被其他用戶鎖定,則會拋出警告信息。用--force參數強制從其他用戶那裏獲得鎖。

訪問庫:是

eg:svn lock --force tree.jpg

 

svn log [PATH]

svn log URL[@REV] [PATH...]

別名:無

描述:從庫中顯示log消息。log消息代碼 A :added  D:deleted  M:modified  R:replaced

訪問庫:是

eg:svn log -v http://svn.myProject.com/repos/test/ foo.c bar.c   ##詳細顯示指定URL的庫中foo.c和bar.c所有版本的log信息。

eg:svn log -r 14:15    ##顯示當前WC的14和15版本log信息。

eg:##如果版本號不連續,只能採用如下方式。

$ svn log -r 14 > mylog

$ svn log -r 19 >> mylog

$ svn log -r 27 >> mylog

 

svn merge sourceURL1[@N] sourceURL2[@M] [WCPATH]

svn merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH]

svn merge [[-c M]... | [-r N:M]...] [SOURCE[@REV] [WCPATH]]

別名:無

描述:合併兩個受控源的不同之處,存放到一個WC裏。

訪問庫:只有當訪問庫地址時。

eg:svn merge --reintegrate http://svn.example.com/repos/calc/branches/my-calc-branch  ##合併分支上的改變項到WC,往往用於分支合併到主幹。

eg:svn merge -r 156:157 http://svn.example.com/repos/calc/branches/my-calc-branch   ##將制定URL版本156到157的所有更新合併到WC。

 

svn mkdir PATH...

svn mkdir URL...

別名:無

描述:在WC或庫路徑創建目錄

訪問庫:只有當訪問庫地址時。

eg:svn mkdir newdir

 

svn move SRC... DST

別名:mv, rename, ren

描述:等同於svn copy命令跟個svn delete命令。WC到URL的重命名是不被允許的。

訪問庫:只有當訪問庫地址時。

eg:svn move foo.c bar.c  ##將foo.c改名成bar.c。

 

svn propdel PROPNAME [PATH...]

svn propdel PROPNAME --revprop -r REV [TARGET]

別名:pdel, pd

描述:從受控文件,目錄等刪除屬性。第二種是刪除某個指定版本上的附加屬性。

訪問庫:只有當訪問庫地址時。

eg:svn propdel svn:mime-type someFile    (從someFile上移除svn:mime-type這個屬性。)

 

svn propedit PROPNAME TARGET...

svn propedit PROPNAME --revprop -r REV [TARGET]

別名:pedit, pe

描述:編輯屬性

訪問庫:只有當訪問庫地址時。

eg:svn propedit svn:keywords  file.c (修改file.c上的svn:keywords屬性。)

 

svn propget PROPNAME [TARGET[@REV]...]

svn propget PROPNAME --revprop -r REV [URL]

別名:pget,pg

描述:從文件,目錄或版本取得指定屬性的值。

訪問庫:只有當訪問庫地址時。

eg:svn propget svn:keywords file.c   ##從file.c中取得svn:keywords屬性的值

 

svn proplist [TARGET[@REV]...]

svn proplist --revprop -r REV [TARGET]

別名:plist, pl

描述:列出文件、目錄或版本上的所有附加屬性

訪問庫:只有當訪問庫地址時。

eg:svn proplist --verbose file.c

 

svn propset PROPNAME [PROPVAL | -F VALFILE] PATH...

svn propset PROPNAME --revprop -r REV [PROPVAL | -F VALFILE] [TARGET]

別名:pset,ps

描述:給文件、目錄或版本附加屬性並賦值

訪問庫:只有當訪問庫地址時。

eg:svn propset svn:mime-type image/jpeg file.jpg   ##給file.jpg附加屬性svn:mime-type 其值爲image/jpeg

eg:svn propset --revprop -r 25 svn:log "Journaled about trip to New York."

給版本25補上log message

eg:svn propset svn:ignore '.classpath' . 

在本地忽略掉.classpath文件

 

svn resolve PATH...

別名:無

描述:將衝突的文件標記爲已解決,並且刪掉衝突產生的臨時文件。注意這個命令並不是能把衝突解決,解決衝突還是得靠人工。

訪問庫:否

eg:svn resolve --accept mine-full foo.c   ##1.5版本後,加上--accept參數,嘗試自動處理衝突。

 

svn resolved PATH...

別名:無

描述:已過時,被resolve --accept取代。去除衝突的狀態和衝突臨時文件。

訪問庫:否

 

svn revert PATH...

別名:無

描述:還原WC中所有的本地更改。

訪問庫:否

eg:svn revert --depth=infinity .   ##將整個目錄所有文件還原

 

svn status [PATH...]

別名:stat, st

描述:輸出WC中文件和目錄的狀態。如果WC提交,這些狀態就會同步到庫裏。

' '  沒有修改

'A'  新增

'D'  刪除

'M'  修改

'R'  替代

'C'  衝突

'I'  忽略

'?'  未受控

'!'  丟失,一般是將受控文件直接刪除導致

訪問庫:加上--show-updates參數時會

eg:svn status wc

 

svn switch URL[@PEGREV] [PATH]

svn switch --relocate FROM TO [PATH...]

別名:sw

描述:將WC轉向一個其他的庫地址同步

訪問庫:是

eg:svn sw http://svn.myProject.com/repos/trunk/vendors .  ##將當前WC切換到另一個URL

 

svn unlock TARGET...

別名:無

描述:解鎖

訪問庫:是

eg:svn unlock somefile

 

svn update [PATH...]

別名:up

描述:更新WC,更新反饋有如下幾種分類。

A  新增

B  鎖破壞

D  刪除

U  更新

C  衝突

G  合併

E  存在的

訪問庫:是

eg:svn up -r22   ##更新到一個指定版本

 

ps:如何去除SVN中保存的用戶授權密碼

在Subversion安裝目錄下找到auth/svn.simple目錄,將下面的文件刪除即可。

如果在烏龜中,可以setting->saved data->Authentication Data   點 clear 即可。

文章轉載來源: http://www.blogjava.net/jasmine214--love/archive/2011/01/12/342839.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章