星期四, 2月 09, 2017

Raspberry Pi 筆記(二十三):安裝版本管理系統 Subversion

[2017/02/08]
最近接到一個客戶的需求是希望我們協助安裝版本管理系統(Version Control),找了一些open source相關的工具,包括 Apache的Subversion(SVN)、Concurrent Version System(CVS)、Git 等都是有名的軟體,最後決定幫客戶使用Visual SVN在Windows 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 上的檔案了。



[參考資料]


Share:

0 意見:

張貼留言