2—-svn介紹和常用命令

餘二五發表於2017-11-14
一,subverison介紹
svn版本管理工具管理著隨時間改變的各種資料庫,資料放置在repository中;svn會備份並記錄每個檔案每一次的修改 更新變動。

svn工作流程:
1,在中央庫上建立或從主幹複製一個分支
2,從中央庫check out 下這個分支的程式碼
3,增加自己的程式碼檔案,修改現存的程式碼或刪除程式碼檔案
4,commit程式碼,假設有人在剛剛的分支上提交了程式碼,你就會被提示程式碼過期
   先up你的程式碼後再提交,up程式碼時候出現 衝突,需要解決好衝突後再提交

svn官網,文件,下載地址
http://subversion.apache.org/
http://subversion.apache.org/docs/
http://subversion.apache.org/download.cgi
http://svnbook.red-bean.com/
http://www.iusesvn.com/

windows下svn客戶端文件,下載地址
https://tortoisesvn.net/
https://tortoisesvn.net/docs/
https://tortoisesvn.net/downloads.html

二,svn服務端執行方式與訪問方式
1,獨立執行
svn://svn.test.com/test
2,藉助apache等http服務
http://svn.test.com/test
    1,單獨安裝apache+svn
    2,CSVN是一個單獨的整合的軟體,帶web介面管理的SVN軟體
3,本地直接訪問 
file:///application/svndata/test

三,svn儲存資料方式:
1,BDB
2,FSFS:二進位制檔案,所以看不見程式碼

四,svn常用命令:
1、將檔案checkout到本地目錄
svn checkout svnpath localpath (svnpath就是版本庫路徑)
簡寫:svn co svnpath localpath
例如:
svn checkout file:///data0/svn/showyw / /data0/web_root/showyw

2、版本庫下的檔案和目錄列表
  svn list path
   顯示path目錄下的所有屬於版本庫的檔案和目錄
svn list file:///data0/svn/youdao –verbose

3、往版本庫中新增新的檔案
svn add filename1 filename2 filename3
例如:
cd /data0/web_root/showyw
svn add test.php(新增test.php)
svn add *.php(新增當前目錄下所有的php檔案)
 
4、將改動的檔案提交到版本庫
svn commit -m “LogMessage” PATH
例如:
cd /data0/web_root/showyw
svn ci 
svn commit -m “add test file for my test” test.php
 
5、更新到某個版本
svn update -r m path
例如:
svn update如果後面沒有目錄,預設將當前目錄以及子目錄下的所有檔案都更新到最新版本。
svn update -r 3 test.php(將版本庫中的檔案test.php還原到版本3)
svn update test.php(更新,於版本庫同步。如果在提交的時候提示過期的話,是因為衝突,需要先update,修改檔案,然後清除svn resolved,最後再提交commit)

 
6、刪除檔案
svn delete path -m “delete test fle”
例如:
svn delete test.php  然後再 svn ci -m `delete test file`

 
7、檢視檔案或者目錄狀態
1)svn status path(目錄下的檔案和子目錄的狀態,正常狀態不顯示)
【?:不在svn的控制中;M:內容被修改;C:發生衝突;A:預定加入到版本庫;K:被鎖定】
2)svn status -v path(顯示檔案和子目錄狀態)
第一列保持相同,第二列顯示工作版本號,第三和第四列顯示最後一次修改的版本號和修改人。
注:svn status、svn diff和 svn revert這三條命令在沒有網路的情況下也可以執行的,原因是svn在本地的.svn中保留了本地版本的原始拷貝。

8、檢視日誌
  svn log path
   例如:svn log test.php 顯示這個檔案的所有修改記錄,及其版本號的變化
 
9、檢視檔案詳細資訊
  svn info path
   例如:svn info test.php
 
10、比較差異
  svn diff path(將修改的檔案與基礎版本比較)
   例如:svn diff test.php
svn diff -r m:n path(對版本m和版本n比較差異)
   例如:svn diff -r 1:2 test.php

11、將兩個版本之間的差異合併到當前檔案
  svn merge -r m:n path
   例如:svn merge -r 1:2 test.php(將版本1與2之間的差異合併到當前檔案,但是一般都會產生衝突,需要處理一下)
 
12、SVN 幫助
  svn help
svn help ci
本文轉自 wpf926 51CTO部落格,原文連結:http://blog.51cto.com/wupengfei/1956820,如需轉載請自行聯絡原作者


相關文章