自 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_nss
輕量化版的 Subversion svnlite
已會隨 FreeBSD 安裝。Port 或套件版的 Subversion 僅在要使用其 Python 或 Perl API 時需要,或是新想要使用最新版本 Subversion 時才需要。
與正常 Subversion 唯一的差別只是指令名稱改為 svnlite
。
若無法使用 svnlite
或需要完整版本的 Subversion 就必須安裝。
Subversion 可從 Port 套件集安裝:
#
cd /usr/ports/devel/subversion
#
make install clean
Subversion 也可以以套件安裝:
#
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
lwcdir
where:
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=yes
FreeBSD 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>。