最近接到一個客戶的需求是希望我們協助安裝版本管理系統(Version Control),找了一些open source相關的工具,包括 Apache的Subversion(SVN)、Concurrent Version System(CVS)、Git 等都是有名的軟體,最後決定幫客戶使用Visual SVN在Windows Server上。
版本控制(Revision control)是維護工程藍圖的標準作法,能追蹤工程藍圖從誕生一直到定案的過程。此外,版本控制也是一種軟體工程技巧,藉此能在軟體開發的過程中,確保由不同人所編輯的同一程式檔案都得到同步。[維基百科]
簡單的說,就是將每次修改的程式碼、文件等,記錄任何異動的歷程,並且為每次的修改加上變更序號。如此,就可以追蹤過去修改的紀錄,且多人共同開發時,就有一致的程式或文件。
如果要要在Raspberry Pi上安裝版本管理系統,可以安裝 Git 或 Subversion,雖然 Git 用的人數蠻多的,但個人還是對 Subversion 比較喜愛,以下是安裝的步驟與方法:
建立一個目錄來存放 repositories :
再建立一個名為 led 的專案(project):
目錄內會建立幾個檔案,如下圖:
再建立專案,名為 led:
我用 nano 編輯一個名為 led.py 的檔案,放在上述目錄內,再執行 svn import 將 led 專案匯入svn。
會出現以下視窗,再按 Ctrl + x 離開這個視窗
離開視窗後,會出現以下畫面,就可開始使用svn,但只限本機使用。
編輯 dav_svn.conf 檔設定:
在檔案最後面加上以下這段設定:
存檔完成後離開,重新啟動 Apache:
接著改變目錄的權限:
現在再建立 SVN 使用者,這裡建的是我的英文名字 ceiling:
-c 選項只有在建立第一個使用者時使用這個參數,要新增第二個使用者,如果還用這個參數,會將之前的使用者刪除,請特別注意。
現在使用瀏覽器看到建立的專案了,只要輸入該主機 IP,後面接著 /Repo名稱/專案名,就可以看到該目錄內的檔案了。
輸入帳號密碼後,瀏覽器畫面是這樣:
安裝完成後,只要在桌面按滑鼠右鍵,就可以看到以下視窗:
選擇 [Repo-browser],就可以看到 Server 上的檔案了。
版本控制(Revision control)是維護工程藍圖的標準作法,能追蹤工程藍圖從誕生一直到定案的過程。此外,版本控制也是一種軟體工程技巧,藉此能在軟體開發的過程中,確保由不同人所編輯的同一程式檔案都得到同步。[維基百科]
簡單的說,就是將每次修改的程式碼、文件等,記錄任何異動的歷程,並且為每次的修改加上變更序號。如此,就可以追蹤過去修改的紀錄,且多人共同開發時,就有一致的程式或文件。
如果要要在Raspberry Pi上安裝版本管理系統,可以安裝 Git 或 Subversion,雖然 Git 用的人數蠻多的,但個人還是對 Subversion 比較喜愛,以下是安裝的步驟與方法:
[設定步驟]
執行安裝指令,過程會將 lib等相關套件一併安裝進來:$ sudo apt-get install subversion
建立一個目錄來存放 repositories :
$ mkdir -p /home/pi/svn
再建立一個名為 led 的專案(project):
$ sudo svnadmin create /home/pi/svn/led
目錄內會建立幾個檔案,如下圖:
再建立專案,名為 led:
$ mkdir -p /home/pi/projects/led $ cd /home/pi/projects/led
我用 nano 編輯一個名為 led.py 的檔案,放在上述目錄內,再執行 svn import 將 led 專案匯入svn。
$ sudo svn import /home/pi/projects/led/ file://localhost/home/pi/svn/led
會出現以下視窗,再按 Ctrl + x 離開這個視窗
離開視窗後,會出現以下畫面,就可開始使用svn,但只限本機使用。
如果要透過網路存取,就必須再安裝 Apache Web Server,安裝步驟如下:
$ sudo apt-get install apache2 libapache2-svn
編輯 dav_svn.conf 檔設定:
sudo nano /etc/apache2/mods-available/dav_svn.conf
在檔案最後面加上以下這段設定:
<Location /svn> DAV svn SVNParentPath /home/pi/svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </Location>
存檔完成後離開,重新啟動 Apache:
$ sudo /etc/init.d/apache2 restart
接著改變目錄的權限:
$ sudo chown -R www-data:www-data /home/pi/svn
現在再建立 SVN 使用者,這裡建的是我的英文名字 ceiling:
$ sudo htpasswd -c /etc/apache2/dav_svn.passwd ceiling
-c 選項只有在建立第一個使用者時使用這個參數,要新增第二個使用者,如果還用這個參數,會將之前的使用者刪除,請特別注意。
現在使用瀏覽器看到建立的專案了,只要輸入該主機 IP,後面接著 /Repo名稱/專案名,就可以看到該目錄內的檔案了。
http://192.168.1.112/svn/led
輸入帳號密碼後,瀏覽器畫面是這樣:
[個人電腦端安裝程式]
SVN Server 安裝完成後,個人電腦端需要工具跟 Server 連線,在 Windows 最常被使用的TortoiseSVN , Linux的用戶可使用 kdesvn進行連線。Windows 的用戶如要安裝軟體,可到以下網站進行下載:安裝完成後,只要在桌面按滑鼠右鍵,就可以看到以下視窗:
選擇 [Repo-browser],就可以看到 Server 上的檔案了。
[參考資料]
- 維基百科 版本控制
- Jeremy Morgan Raspberry Pi How to: Set Up a SVN Server
張貼留言