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/
沒有留言:
張貼留言