歡迎您光臨本站 註冊首頁

訂閱所有linux的日誌SubVersion ubuntu

←手機掃碼閱讀     火星人 @ 2014-03-26 , reply:0

SubVersion 這個文檔是知道如何在 Ubuntu Linux 安裝 SubVersion (SVN). 面對的讀者是數量的Linux用戶和系統管理員.

介紹

如果你剛剛接觸 SubVersion, 這個章節提供了一個關於 SubVersion 的快速介紹.

SubVersion 是一個開源的版本控制系統. 使用 SubVersion, 你可以記錄源代碼文件和文檔的歷史. 它一直管理著文件和目錄. 一個文件樹被添加到一個核心倉庫. 倉庫就好像是一個通常的文件伺服器, 除了它記錄每一次文件和目錄的變化.

前提

這裡假設你知道如何運行Linux命令, 編輯文件, 在Ubuntu Linux 系統 啟動/停止 服務. 它還假設 Ubuntu Linux 正在運行, 你可以使用Sudo (RootSudo) 和你想使用 SubVersion 軟體.

假設你需要使用所有的訪問方法來訪問 SVN 倉庫. 同時假設你有 internet 連接和你已經配置好了 /etc/apt/sources.list.

文檔的範圍

為了使用 HTTP 協議來訪問 SVN 倉庫, 你必須安裝和配置 web 服務. Apache 2 被證實可以於 SVN 一起工作. 關於如何安裝 Apache 2 Webserver 超過了這篇文章的範圍. 為 SVN 配置 Apache 2 Webserver 包含在這篇文章里.

為了使用 HTTP 協議來訪問 SVN 倉庫, 你必須在你的 Apache 2 web server 安裝和配置數字證書. 安裝和配置數字證書超過了這篇文章的範圍. 你可以去查閱其它適當的文檔.

安裝

SubVersion 已經在 main 倉庫了. 因此, 你可以運行如下命令安裝 SubVersion:

$ sudo apt-get install subversion $ sudo apt-get install libapache2-svn
如果報告錯誤, 請下載包安裝他們. 如果報告任何其它內容, 請解決他們. 如果不能解決錯誤, 請求助那些包的郵件列表.

服務配置

這一步假設你已經在你的系統安裝好了上述的包. 這段將如何 SVN 倉庫和訪問項目.

建立 SVN倉庫
SVN 倉庫可以使用如下命令建立:

$ svnadmin create /path/to/repo/project
訪問方法

SubVersion 倉庫在可以通過多種不同的方法來訪問 (checkout), 本地硬碟或不同的網路協議. 一個倉庫位置, 無論如何都一直是一個 URL. 這個表說明了可以用來訪問的不同的 URL 類型.

模式

訪問方法

file:///
direct repository access (on local disk)

http://
Access via WebDAV protocol to SubVersion-aware Apache 2 web server

https://
Same as http://, but with SSL encryption

svn://
Access via custom protocol to an svnserve server

svn+ssh://
Same as svn://, but through an SSH tunnel


在這一結, 我們將看到如何為所有訪問方法來配置 SVN. 這裡, 我們隱藏了基本的知識. 對於更詳細的使用明細, 你可以去查閱 svn book.

直接倉庫訪問 (file://)
這個是所有訪問方法中最簡單的. 不需要任何運行的 SVN server 進程. 這個訪問 SVN 的方法被使用在同一台機器. 語法如下:

$ svn co file:///path/to/repo/project or $ svn co file://localhost/path/to/repo/project
注意: 請注意, 如果你不能說明 hostname, 你必須使用三個反斜桿 (///). 如果你說明 hostname, 你必須使用兩個反斜桿 (//).

倉庫的許可權依賴於文件系統的許可權. 如果用戶有讀/寫許可權, 他就可以 checkout/commit 變化給倉庫.

通過 WebDAV 協議訪問 (http://)
通過 WebDAV 協議訪問 SVN repository, 你必須配置你的 Apache 2 web server. 你必須增加下面的部分打破你的 /etc/apache2/apache2.conf 文件:

DAV svn SVNPath /path/to/repo AuthType Basic AuthName "Your repository name" AuthUserFile /etc/subversion/passwd Require valid-user
下一步, 你必須建立 /etc/subversion/passwd 文件. 這個文件包含了用戶驗證信息. 為了增加一條, 例如.. 為了增加一個用戶, 你可以使用如下命令:

htpasswd2 /etc/subversion/passwd user_name
它將提示你輸出密碼,當你輸入了密碼, 用戶就增加了. 現在, 你可以使用如何命令來訪問倉庫:

$ svn co http://hostname/project project --username user_name
它將提示你輸入密碼. 你必須輸入一個你使用 htpasswd2 命令配置的密碼. 當驗證通過,項目被 checked out.

警告: 口令作為普通文本被傳輸. 如果你擔心你的密碼外泄, 你可以考慮使用 SSL 加密. 對於這個, 請看如下章節.

通過 WebDAV 協議和 SSL 加密訪問 (https://)
通過 WebDAV 協議和 SSL 加密來訪問 SVN 倉庫 (https://) 和 http:// 類似,出了你必須安裝和配置數字簽名在你的 Apache 2 web server.

你可以安裝一個數字簽名證書通過 簽名權威公司 比如 Verisign. alternatively, 你可以安裝你直接的簽名證書.

這一步假設你已經安裝和配置了數字簽名在你的 Apache 2 web server. 現在可以去訪問 SVN 倉庫,請訪問上面的章節! 耶, 訪問方法是一致的出了協議. 你必須使用 https:// 來訪問 SVN 倉庫.

通過定製的協議訪問 (svn://)
一旦 SVN 倉庫被建立, 你可以配置訪問協議. 你可以編輯 /path/to/repos/project/conf/svnserve.conf 文件來配置訪問控制.

例如, 為了設置許可權你可以取消註解在配置文件中的如下行:

# [general] # password-db = passwd
取消註解下面的行以後, 你可以提供一個用戶列表在 passwd 文件. 因此, 在同樣的目錄編輯 passwd 文件和增加一個新用戶. 語法如下:

username = password
對於詳細說明, 請查詢文件.

現在, 可以通過 svn:// 自定義協議來訪問 SVN 在同一台機器或不同機器, 你可以運行svnserver 使用 svnserve 命令. 語法如下:

$ svnserve -d --foreground -r /path/to/repo # -d -- daemon mode # --foreground -- run in foreground (useful for debugging) # -r -- root of directory to serve For more usage details, please refer, $ svnserve --help
當你運行這個命令后, SVN 將來時監聽預設的埠 (3690). 訪問這個項目倉庫, 你必須運行如下命令:

$ svn co svn://hostname/project project --username user_name
基於上面的配置, 它提示輸入口令. 當驗證通過, 它將從 SVN 倉庫 checks out 出代碼.

使用本地的文件來同比項目倉庫, 你可以運行 update sub-command. 語法如下:

$ cd project_dir $ svn update
對於使用 SVN sub-command 的詳細資料, 你可以參考手冊. 例如, 學習更多關於 co (checkout) 命令, 運行:

$ svn co help
通過自定義協議和 SSL 加密來訪問 (svn+ssh://)
和 svn:// 方法的配置和伺服器的進程相同. 對於詳細, 請閱讀上面的章節. 這一步假設, 你已經通過了上一步並使用 svnserve 命令運行.

它還假設 ssh server 正在運行在這台機器上並允許連接. 為了證實, 請嘗試使用 ssh 登錄機器. 如果你可以登錄, 那麼所有的事都是正確的. 如果你不能, 在更遠的嘗試以前請處理它.

svn+ssh:// 協議是使用 SSL 加密來訪問 SVN 倉庫. 如你所知的, 數據傳輸被加密. 為了訪問 SVN 倉庫, 你必須運行下面的命令:

$ svn co svn+ssh://hostname/path/to/repos/project project --username user_name
提示: 你使用這種方法來訪問 SVN 倉庫時,必須使用完整路徑 (/path/to/repos/project) 來訪問.

基於伺服器的配置, 它提示輸入密碼. 你必須輸入你通過 ssh 登錄的密碼. 當驗證通過, 它將從 SVN 倉庫 checks out 出代碼.

你也可以參閱 SVN 圖書獲得關於 svn+ssh:// 協議的更詳細信息。

[火星人 ] 訂閱所有linux的日誌SubVersion ubuntu已經有428次圍觀

http://coctec.com/docs/linux/show-post-181096.html