跳轉到內容

WebObjects/Web 應用程式/開發/WebObjects 和 Subversion

來自 Wikibooks,開放世界中的開放書籍

關於在 WebObjects、Interface Builder 和 Mac OS X 中使用 subversion 的說明。

9/2/2005

使用的版本

  • Mac OS X 10.4.2
  • subversion 1.2.3
  • Interface Builder 2.5.1 (439)
  • XCode 2.1
  • WebObjects 5.3

Apple XCode 使用者指南的附錄 C 和 D(使用 Subversion 和配置 SSH 環境)在設定方面提供了相當大的幫助,儘管我建議您透過 subversion 主頁上的下載連結安裝 subversion,而不是使用 DarwinPorts。透過這些連結提供的二進位制版本更容易安裝,因為它使用傳統的可雙擊包安裝程式。請注意,您的安裝路徑將為 /usr/local/bin,而不是 /opt/local/bin。

我還發現 Ben Collins-Sussman、Brian W. Fitzpatrick 和 C. Michael Pilato 編寫的“使用 Subversion 進行版本控制”一書非常有用。

  • 建立儲存庫時,最好使用檔案系統而不是 Berkeley DB。為此,請將 --fs-type fsfs 標誌傳遞給 create 命令。

例如:svnadmin create --fs-type fsfs /path/to/repos

  • 至少有三種不同的方法可以對儲存庫進行身份驗證。我使用了 svn+ssh 方法,儘管我相信其他方法也能正常工作。
  • 如果您使用 ssh+svn 方法,則提供一個虛擬儲存庫路徑很有幫助,這樣終端使用者不必輸入完整的路徑。例如,在我的 authorized_keys 檔案中,我的金鑰以以下內容開頭
 command="/usr/local/bin/svnserve -t -r /Users/svn/svnrep/" ssh-dss

這允許使用者使用類似於 "svn+ssh://server-name/project-name" 的路徑,而不是 "svn+ssh://server-name/Users/svn/svnrep/project-name"。

  • 在使用 ssh 與多個使用者時,為了防止檔案許可權問題,伺服器上的每個 subversion 命令都應該用一個 shell 指令碼包裝,該指令碼首先呼叫 umask,例如
 $ cat /usr/local/bin/svn
 #!/bin/sh 
 umask 002 
 /usr/local/bin/svn-real "$@"

這意味著您應該重新命名每個命令並建立一個 shell 指令碼包裝器,該包裝器呼叫實際的命令。

  • 如果您建立 trunk、branches 和 tags 目錄,如本書中所述,您應該只檢出 trunk。
  • XCode 中的 subversion 支援存在一些問題,我使用免費的 "svnx" 效果更好,可以在網上找到。
 http://www.lachoseinteractive.net/en/community/subversion/svnx/features/
  • Subversion 在它管理的每個目錄中都留下了 ".svn" 目錄,這會導致早期版本的 Interface Builder 和 EOModeler 出現問題,這些工具會在儲存時刪除所有這些目錄。請確保您使用的是這些工具的最新版本。
  • 如果您正在使用 Interface Builder 開發 Java 客戶端程式,您的 nib 檔案將包含一個 java 檔案,該檔案位於幾個目錄下。這些目錄中的每一個都包含一個 ".svn" 目錄,即使是新版本的 Interface Builder 也會刪除這些目錄。為了解決這個問題,您需要下載並安裝 "SubversionPalette.palette";來自http://www.rtlabs.com/downloads/。即使這顯然已經很老了,但它似乎仍然有效(2005 年 9 月)。

就這樣!祝您好運,享受 subversion 的樂趣。

Peter Vandoros

[編輯 | 編輯原始碼]

我已經將 EOModeler 修補程式從http://www.rtlabs.com/downloads/移植到 Windows。從http://wocode.com/cgi-bin/WebObjects/WOCode.woa/wa/ShareCodeItem?itemId=451獲取。

華夏公益教科書