SVN 使用的簡單整理,svn使用整理
1. 在SVN服務器上創建存儲Dir,並和個人主機建立聯系。
現在SVN服務器上創建一個存儲文件夾svn_storeDir.然後在個人電腦上建立一個本地文件夾local_Dir.
進入到local_Dir文件夾下,使用svn軟件的checkOut功能,將svn_storeDir的內容檢出到本地文件夾下。就
可以讓本地和SVN服務器建立聯系了。
可以使用如下的命令:
svn checkout svn://192.168.0.252/Release ./
2. 每天開始工作之前,需要先更新本地文件到最新的版本。需要使用SVN的update功能。
可以使用如下命令:
svn update
3. 在本地文件夾下添加文件後,就可以使用SVN的commit功能,實時提交備份了。
svn add ssDir
svn commit -m "I add a dir to localDir" ssDir //有些版本的svn提交是必須要添加日志的
以後,如果你修改了 之前提交過的一個文件或者多個文件,直接提交即可
svn commit -m "I edit some files for a new function"
4. 在本地文件夾下刪除文件。
svn rm ssDir
svn commit -m "I delete a dir to localDir"
5. 查看所有日志
svn log
svn log -r 5:19 # shows logs 5 through 19 in chronological order
svn log -r 19:5 # shows logs 5 through 19 in reverse order
svn log -r 8 # shows log for revision 8
svn log -r {2015-07-31}:{2015-06-01} #指定日期查看 svn 日志,且將新日志顯示在前面
更新到 0xxx版本
svn update -r 0xxx
6.導出文件: 使用該命令是不會拷貝 .svn 的
svn export [-r REV] URL[@PEGREV] [PATH]
svn export -r 68217 svn://192.168.0.252/CCDT2010/Firmware/demo2 ./
svn export -r 68217 svn://192.168.0.252/CCDT2010/Firmware/demo1.txt ./demo1_68217.txt
7. svn 代碼回滾命令,取消對代碼的修改分為兩種情況:
第一種情況:改動沒有被提交(commit)。
這種情況下,使用svn revert就能取消之前的修改。
svn revert用法如下:
# svn revert [-R] something
其中something可以是(目錄或文件的)相對路徑也可以是絕對路徑。
當something為單個文件時,直接svn revert something就行了;當something為目錄時,需要加上參數-R(Recursive,遞歸),否則只會將something這個目錄的改動。
在這種情況下也可以使用svn update命令來取消對之前的修改,但不建議使用。因為svn update會去連接倉庫服務器,耗費時間。
注意:svn revert本身有固有的危險,因為它的目的是放棄未提交的修改。一旦你選擇了恢復,Subversion沒有方法找回未提交的修改。
如果你要還原多個文件或者多級子目錄下的問題,可以直接使用如下命令:
svn revert */**/*
第二種情況:改動已經被提交(commit)。
這種情況下,用svn merge命令來進行回滾。
回滾的操作過程如下:
1> 保證我們拿到的是最新代碼:
svn update
假設最新版本號是28。
2> 然後找出要回滾的確切版本號:
svn log [something]
假設根據svn log日志查出要回滾的版本號是25,此處的something可以是文件、目錄或整個項目
如果想要更詳細的了解情況,可以使用svn diff -r 28:25 [something]
3> 回滾到版本號25:
svn merge -r 28:25 something
為了保險起見,再次確認回滾的結果:
svn diff [something]
發現正確無誤,提交。
4> 提交回滾:
svn commit -m "Revert revision from r28 to r25,because of ..."
提交後版本變成了29。
將以上操作總結為三條如下:
a> svn update,svn log,找到最新版本(latest revision)
b> 找到自己想要回滾的版本號(rollbak revision)
c> 用svn merge來回滾: svn merge -r : something
8. 為代碼建立分支
如果想在代碼中增加一個功能強大的函數,但暫時不想提交到主倉庫上,害怕影響到別人的工作。那麼可以給主倉庫代碼 建立一個分支,然後將分支 下載到本地,就可以修改了。
等測試確認OK後,再提交到 主倉庫中。
svn cp -m "creat vbase_branch" svn://172.16.0.26/trunk/Vbase svn://172.16.0.26/wangwj/workDir/branch/vbase_branch
svn checkout svn://172.16.0.26/wangwj/workDir/branch/vbase_branch ./
9.其他常用的svn 常用的命令:
svn list svn://192.168.0.252/CCDT2010/Firmware/Tuner/Release/v25/T221_V25.01.01.0002
svn delete svn://192.168.0.252/CCDT2010/Firmware/Tuner/Release/v25/T221_V25.01.01.0002/x
svn diff -r id1:id2 fileName