自 2012 年 7 月起,FreeBSD 儲存所有 FreeBSD 的原始碼、文件與 Port 套件集均使用 Subversion 作為其唯一的版本控制系統。
Subversion 只是一套開發人員工具。一般使用者可能會較喜歡使用 freebsd-update (節 23.2, “FreeBSD 更新”) 來更新 FreeBSD 基礎系統及 portsnap (節 4.5, “使用 Port 套件集”) 來更新 FreeBSD Port 套件集。
本節將示範如何在 FreeBSD 系統安裝 Subversion 以及使用它建立一個本地的 FreeBSD 檔案庫複本,也包含使用 Subversion 的其他資訊。
安裝 security/ca_root_nss 可讓 Subversion 能夠驗証 HTTPS 檔案庫伺服器的身份。root SSL 憑証可從 Port 安裝:
# cd /usr/ports/security/ca_root_nss
# make install clean或從套件:
# pkg install ca_root_nsssvnlite 為輕量化版的 Subversion,會隨 FreeBSD 安裝。Subversion 的 Port 或套件版本僅在要使用其 Python 或 Perl API 或想要使用最新版本 Subversion 時才需安裝,
與正常 Subversion 唯一的差別只是指令名稱改為 svnlite。
若無法使用 svnlite 或需要完整版本的 Subversion 就必須安裝。
Subversion 可從 Port 套件集安裝:
# cd /usr/ports/devel/subversion
# make install cleanSubversion 也可以以套件安裝:
# pkg install subversion要下載原始碼乾淨的複本到本地目錄可使用 svn。在此目錄中的檔案稱作 本地工作複本 (Local working copy)。
在第一次使用 checkout 前請先移動或刪除目地現有的目錄。
在現有非 svn 目錄存在的情況下做取出 (Checkout) 的動作會導致現有檔案與檔案庫中的檔案發生衝突。
Subversion 使用 URL 來指定檔案庫,使用的格式為 protocol://hostname/path。路徑的第一個部份為要存取的 FreeBSD 檔案庫,目前有三個檔案庫,base 為 FreeBSD 基礎系統原始碼、ports 為 Port 套件集以及 doc 為說明文件。舉例來說,URL https://svn.FreeBSD.org/ports/head/ 代表 Port 檔案庫的主要分支,使用 https 通訊協定。
使用指令從指定的檔案庫取出 (Checkout) 原始碼如下:
# svn checkout https://svn.FreeBSD.org/repository/branch lwcdirwhere:
repository 要是下列專案檔案庫其中之一:base, ports 或 doc。
branch 則依據使用的檔案庫來決定。ports 與 doc 大部份的更新皆在 head 分支,而 base 則會將 -CURRENT 的最新版本存放在 head 下,-STABLE 分支各自最新的版本則會放在 stable/9 (9.x) 與 stable/10 (10.x) 下。
lwcdir 則是要存放指定分支內容的目標目錄,通常 ports 會置於 /usr/ports,base 會置於 /usr/src 以及 doc 會置於 /usr/doc。
以下範例會使用 HTTPS 協定從 FreeBSD 的檔案庫取出 Port 套件集,並將本地工作複本放置於 /usr/ports。若 /usr/ports 已存在,且不是由 svn 所建立的,記得要在取出之前重新命名或刪除。
# svn checkout https://svn.FreeBSD.org/ports/head /usr/ports由於首次取出的動作必須下載遠端檔案庫中完整的分支,會需要花費一段時間,請耐心等候。
首次取出之後,往後要更新本地工作複本可以執行:
# svn update lwcdir要更新上述範例所建立的 /usr/ports 可執行:
# svn update /usr/ports因為只會傳輸有更新過的檔案,更新的動作會比取出還要快速。
另一種在取出之後更新本地工作複本的方式是透過 /usr/ports, /usr/src 以及 /usr/doc 目錄所提供的 Makefile。設定 SVN_UPDATE 並使用 update 目標。例如要更新 /usr/src:
# cd /usr/src
# make update SVN_UPDATE=yesFreeBSD Subversion 的檔案庫為:
svn.FreeBSD.org這是可公開存取的鏡像站,使用了 GeoDNS 會自動選擇適合的後端伺服器。若要由瀏覽器檢視 Subversion 檔案庫可以使用 https://svnweb.FreeBSD.org/。
HTTPS is the preferred protocol, but the
security/ca_root_nss
package will need to be installed in order to automatically
validate certificates.
要取得其他有關使用 Subversion 的資訊請參考 “Subversion Book”,其書名為 Version Control with Subversion 或是 Subversion Documentation。
本文及其他文件,可由此下載: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。
若有 FreeBSD 方面疑問,請先閱讀
FreeBSD 相關文件,如不能解決的話,再洽詢
<questions@FreeBSD.org>。
關於本文件的問題,請洽詢
<doc@FreeBSD.org>。