1. 程式人生 > >svn文件

svn文件

參考菜鳥教程   http://www.runoob.com/svn/svn-tutorial.html

檢視程式的版本號和版本庫訪問模組  svn --version

可用的子命令:
   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


版本庫位置  /home/ezreal/svn

安裝SVN   sudo apt-get install subversion
建立目錄   sudo mkdir svn
建立版本庫   sudo svnadmin create /home/ezreal/svn/ku


4 配置  cd /home/ezreal/svn/conf    sudo vim svnserve.conf
我們需要修改conf目錄下的三個檔案,authz,passwd,svnserve.conf
(1)編輯svnserve.conf

[general]
#匿名使用者不可讀
anon-access = none
#許可權使用者可寫
auth-access = write
#密碼檔案為passwd
password-db = passwd
#許可權檔案為authz
authz-db = authz


(2)編輯authz   sudo vim authz
[groups]
admin= test #admin組的使用者為test

[/] #必須寫/,因為這表示從倉庫的目錄開始設定許可權
@admin = rw #admin組有rw(讀寫許可權),所有人有r(讀許可權)
* = r

註釋:這裡組的名字不一定叫admin,組的名字可以任務,admin組有多個使用者的話,可以這樣制定admin=tone,tone1,tone2等。


(3)編輯passwd檔案,設定使用者密碼
[users]
# harry = harryssecret
# sally = sallyssecret
test=123456 #設定使用者test的密碼是123456


5 啟動SVN伺服器   sudo svnserve -d -r 目錄 --listen-port 埠號  預設3690埠
啟動伺服器 sudo svnserve -d -r /home/ezreal/svn/ku
-d 已守護模式啟動
-r 指定svn版本庫根目錄,這樣是便於客戶端不用輸入全路徑,就可以訪問版本庫了。
例如:svn://ip:port/svn    svn://192.168.1.9/ku      svn://127.0.0.1/ku
關閉服務svnserver   sudo killall svnserve

checkout檢出操作   sudo svn checkout svn://192.168.1.9/ku --username=test


檢視更改      svn diff
更新工作副本(本地倉庫)至最新版本  svn update
指定更新到哪個版本  svn update -r6
提交          svn commit -m "註釋"   
檢視工作副本的狀態  svn status
將檔案新增到版本控制     svn add 檔名
放棄對檔案的修改,回退版本   svn revert 檔名
放棄對目錄的修改,回退版本   svn revert -R trunk
恢復一個已經提交的版本,為了消除一箇舊版本,我們必須撤銷舊版本里的所有更改然後提交一個新版本。這種操作叫做 reverse merge(反向合併)
首先,找到倉庫的當前版本,現在是版本 22,我們要撤銷回之前的版本,比如版本 21。
svn merge -r 22:21 readme

 

檢視SVN的歷史
svn log 用來展示svn 的版本作者、日期、路徑等等
svn diff 用來顯示特定修改的行級詳細資訊
svn cat 取得在特定版本的某檔案顯示在當前螢幕
svn list 顯示一個目錄或某一版本存在的檔案

 

svn log -r 6:8  檢視特定兩個版本間的資訊
svn log trunk/檔名    只檢視某一個檔案的版本修改資訊
svn log -l 5 -v     限定展示5條記錄的目錄資訊
svn diff -r 3 rule.txt  比較工作拷貝和版本庫      版本號為 3 的檔案 rule.txt
svn diff -r 2:3 rule.txt  比較版本庫與版本庫      版本號2和3的rule.txt檔案的變化
svn cat -r 版本號 rule.txt  只是希望檢查一個過去版本,不希望檢視他們的區別
svn list http://192.168.1.9/svn  在不下載檔案到本地目錄的情況下來察看目錄中的檔案

 

分支
svn copy trunk/ branches/my_branch   拷貝truck主分支,建立my_branch分支
svn status   檢視分支狀態
svn commit -m "add my_branch"  提交新增分支到版本庫

cd branches/my_branch/   切換到my_branch分支進行開發
該分支下建立index.html檔案    新增add   提交commit


切換到 trunk 主分支,執行 svn update,然後將 my_branch 分支合併到 trunk 中
svn merge ../branches/my_branch/   合併分支到truck主分支
ll命令檢視 該目錄下,有my_brahch分支建立的檔案
最後 將合併好的 trunk 提交到版本庫中  svn commit -m "註釋"

 

標籤(app版本號)
svn copy trunk/ tags/v1.0   我們在本地工作副本建立一個 tag標籤v1.0
面的程式碼成功完成,新的目錄將會被建立在 tags 目錄下 ls tags/  ls tags/v1.0/
svn status  檢視狀態
svn commit -m "tags v1.0"  提交tag內容


認證配置無效 賬戶名和密碼都對 怎麼改