Subversion 是一套好用的版本控制工具,一般簡稱為 SVN,可跨平台、跨開發工具支援,除了作為程式碼專案的版本控制管理,拿來當文件管理、備份、分享系統也相當實用。在 SVN 成為普遍使用的工具之前,最常被使用的工具是
CVS(Current Version System),以Eclipse開發工具來說,CVS是很早就已內建支援的團隊協同(team collaboration)開發工具,而SVN通常必須加上3rd Party的延伸套件(
Subclipse)才能支援(成為預設套件應該只是時間上的問題,目前3.4已經提供
Subversive - SVN Team Provider,只是要
另外加裝3rd Party Connectors)。由於SVN的易學易用,並有許多具親和力的圖形介面工具、可與Windows檔案瀏覽器(Explorer)整合(
Tortoisesvn),即使是Visual Studio .NET的開發者,也有
AnkhSVN可以選擇(當然使用人口沒微軟自家的Team System多啦)。集合起各種作業系統、開發環境平台的使用者,SVN儼然成為時下的主流。
這篇文章提供Ubuntu安裝SVN伺服器的初步說明,希望能幫助還未上手的朋友能在短時間內學會使用這個好工具。
安裝 Subversion要善用Ubuntu超級豐富的APT套件庫,不但省時省力、日後也好維護。
sudo apt-get install subversion一道指令解決。
設定 SVN 伺服器自己架設伺服器也只需要很少的幾個步驟。
sudo apt-get install xinet.d這道指令並非與SVN直接相關,而是安裝一個xinetd的daemon程式,它就像一個伺服器服務程式的管家,負責幫忙接待想透過網路連結服務的客戶。
建立新檔案在
/etc/xinet.d/svn ,檔案內容如下:
# default: off# description: svnserve is the server part of Subversion.# server_args = -i -r /var/lib/svn/repositoriesservice svn{ disable = no port = 3690 socket_type = stream protocol = tcp wait = no user = svn server = /usr/bin/svnserve server_args = -i -r /home/svn}* /home/svn 是自行指定的 repository 存放目錄
接著建立 svn 的 user 及 home directory:
sudo mkdir /home/svnsudo useradd -d /home/svn svnsudo chown svn.svn /home/svn重新啟動 xinetd ,測試SVN服務:
sudo /etc/init.d/xinetd restarttelnet localhost 3690當telnet程式連線成功,並出現以下訊息,則表示SVN daemon已經啟動成功:
( success ( 1 2 ( ANONYMOUS ) ( edit-pipeline svndiff1 absent-entries ) ) )
建立新的 repositorycd /home/svnsudo svnadmin create NEW_REPOsudo chown svn.svn NEW_REPO -R完成之後,就能已 svn 指令(SVN client)操作。
svn list svn://localhost/NEW_REPO當然,因為都還沒有丟檔案,回傳一定是空的。
如果要操作權限(例如有帳號密碼可讀寫,訪客只能讀不能寫),則需要編輯 NEW_REPO/conf/svnserve.conf,設定以下三行(取消註解):
anon-access = readauth-access = writepassword-db = passwd並在 NEW_REPO/conf/passwd 下新增帳號及密碼,例如:
[users]
jacky = pwd_is_blank---= Q&A =---SVN server在運作一段時間後,可能出現資料庫錯誤的狀況,訊息如下:
Could not open the requested SVN filesystem此時必須使用 db_recover 指令進行修復,以Ubuntu Linux來說,安裝db4.*-util套件即可取得此程式。
以下示範在 Ubuntu Linux 的流程:先搜尋有哪些db4.*-util版本可以安裝。
apt-cache search db4.*-utildb4.6-util - Berkeley v4.6 Database Utilities db4.2-util - Berkeley v4.2 Database Utilities db4.3-util - Berkeley v4.3 Database Utilities db4.4-util - Berkeley v4.4 Database Utilities db4.5-util - Berkeley v4.5 Database Utilities我選擇的是db4.4-util,因此開始apt-get安裝。
apt-get install db4.4-util
安裝完成後,就會多一道
db4.4_recover 指令,切換到 svn repository directory 下執行這道指令即可修復。
更多參考資源在: