4.22.2012

SVN基本指令筆記

SVN (SubVersion)是一套Source Code Control System (源代碼管理系統)。自己也是出了社會之後才開始接觸這東西。相類似的軟體,較早期的是CVS;現在則是Git

剛開始碰的時後,什麼都不清楚,都是把指令抄在自己的記事本上;但每用完一本記事本就要重新再抄一次,覺得麻煩,就乾脆把它當成筆記記錄在自己的BLOG上。

◎ 建立SVN檔案櫃 (Repository)的步驟:
1. 建立SVN的Repository
   svnadmin create (要被建立的資料夾)
EX: svnadmin create /root/SVN_TEST/

2. 將源代碼匯入到SVN檔案櫃
   svn import (要被匯入的源代碼) (SVN的Repository) -m "訊息"
EX: svn import file:///root/SRC/ /root/SVN_TEST/ -m "Create_SVN_Repository!!"
   根目錄下的SRC/是源始碼;SVN_TEST/則是SVN所建立的檔案櫃。-m是指訊息 (Message),用雙引號包起來;注意:雙引號之間的訊息,不可以有空隔!!

3. 編輯SVN的設定檔:vi authz.conf;把該加的東西加進去。

4. 重新啟動Web Server;這裡的Web Server是Apache。
EX: sudo /etc/init.d/apache2 stop && sudo /etc/init.d/apache2 start
   注意!! 在建立SVN Repository時,請同時建立branches和tag資料夾。即:
   /root/SRC/trunk/ ----> 這是源代碼
   /root/SRC/branches/
   /root/SRC/tag/

◎ 匯出SVN Repository的方式:
   svnadmin dump (要被匯出的檔案櫃名稱) > (檔案櫃被匯出後的名稱)
EX: svnadmin dump file:///root/SVN_TEST/ > /root/EXPORT_Repository.dump

◎ 匯入SVN Repository的方式:
1. svnadmin create (要被建立的資料夾)
EX: svnadmin create /root/SVN_ReLoad/

2. svnadmin load (要被導入到的資料夾) < (要被匯入的*.dump檔)
EX: svnadmin load /root/SVN_Reload/ < /root/EXPORT_Repository.dump

◎ 在SVN上新增一個使用者:
1. htpasswd -b (儲存帳密的檔案) (新增的帳號) (新增的密碼)
EX: htpasswd -b Authfile picasso picasso1234

2. 在authz.conf中新增該名使用者的帳號。

3. 重新啟動Web Server。

注意!! 倘若儲存帳密的檔案 (Authfile)不存在的話,就必須手動建立。
EX: htpasswd -c Authfile

◎ Check out SVN server上某一版本的Source Code:
1. svn co --revision (版號) (存放位址) (本地的資料夾名稱)
EX: svn co --revision 94 http://192.168.12.158/svn/SVN_TEST/ /root/SVN_CO/

2. 除了以版號來Check Out之外,還能夠依時間點來Check Out:
EX: svn co --revision {"2012-04-16 17:30"} http://192.168.12.158/svn/SVN_TEST/ /root/SVN_CO/

◎ SVN更換位址的方式--假設SVN Server的IP Address變更了,那SVN Client該如何變更??
1. svn cleanup // 一定要先下這個指令!!

2. svn switch --relocate (舊的IP Address) (新的IP Address)
EX: svn switch --relocate http://192.168.12.158/svn/SVN_TEST/ http://192.168.168.16:50505/svn/SVN_TEST/

執行之後約5~10分鐘即可生效!!

◎ 忘了講一個最重要的--如何從SVN Server Check Out Source Code??
EX: svn co --username picasso --password picasso1234 http://192.168.168.16:50505/svn/SVN_TEST/ /picasso/SVN/

沒有留言:

張貼留言