如何在Linux-Ubuntu上建立SVN repository (使用HTTP)

在軟體開發上面,常常會有多個RD去共同開發、維護一個專案,因此「版本控制」在此就顯得非常重要!

如果少了版本控制,彼此要更新彼此的檔案除了傳到雲端,也可能要用USB拷貝檔案來解決程式碼同步更新的問題,實在是非常的不方便。

有了SVN:

  1. 一個人上傳程式碼(不論是新增、刪除、修改),所有人的開發環境都會同步。
  2. 上傳(commit)之後要打你修改了甚麼,如此一來這一版本裡面修改的內容都會一目了然。
  3. 萬一開發到後面版本有誤的時候,可以隨時還原到任一個節點(SVN 會自動備份)。
  4. 如果想要定版的話,可以切一個branch出來。

由上可知SVN(Apache Subversion)在軟體開發的重要性,而他的運作邏輯其實很簡單,就是一台伺服器安裝SVN的repository,然後你可以用各種SVN Client的工具去連上repository。

常見的SVN Client應該就是小烏龜了吧→TortoiseSVN




----------------------那們我們正文要開始了----------------------

1.連上Ubuntu然後打上以下指令,下載SVN Server
sudo apt-get install subversion
2.將執行目錄移動到你要的資料夾
cd /var/www/html/
3.新增一個svn的目錄(裡面可以放很多的repository),我們先創建一個repository叫做「project_1」
sudo mkdir svn
cd /svn
sudo mkdir project_1
4.將剛剛創建好的專案加入repository
sudo svnadmin create /project_1
(或完整目錄:sudo svnadmin create /var/www/html/svn/project_1)
5.回到html資料夾,將svn整個資料夾新增使用者修改、寫入權限
sudo cd /var/www/html/
sudo chown -R www-data:subversion svn
sudo chmod -R g+rws svn
6.因為我們要走HTTP協定,因此我們要到設定檔去修改資料
sudo nano /etc/apache2/mods-available/dav_svn.conf
(nano可以換成自己習慣的編輯器)
然後再最下面新增

 <Location /svn/project_1>
     DAV svn
     SVNPath /var/www/html/svn/project_1
     AuthType Basic
     AuthName "myproject subversion repository"
     AuthUserFile /etc/subversion/passwd
     Require valid-user
  </Location>
7.好了之後要重啟Web Server
sudo /etc/init.d/apache2 restart
8.在SVN新增第一位使用者,他會叫你打使用者密碼,要記起來唷!
sudo htpasswd -c /etc/subversion/passwd user_name
8.5.再新增多個使用者近來(如果有3個就重複打三次),一樣也都要輸入密碼
sudo htpasswd /etc/subversion/passwd second_user_name
9.設定repository專案有哪些使用者可以共同維護
$ svn co http://<這邊打上Server 實體IP>/svn/project_1 project_1 --username user_name


以上Server都設定好了,就可以回自己的電腦去連到Repository囉!


#create repository #HTTP #Linux #repository #SVN #Ubuntu

留言

這個網誌中的熱門文章

【解決】雲端硬碟檔案串流( Drive File Stream )佔據電腦空間問題

如何使用Cordova建置Android App 教學

設定本機的 localhost 可以連到 VM 的 Web Server