有時候您會想要在您的工作副本中包含另一個專案,也許是一些程式庫程式碼。至少有 4 種處理方式。
為您專案中的資料夾設定 svn:externals
屬性。此屬性由一或多行組成;每一行都有您想要用作共用程式碼檢出資料夾的子資料夾名稱,以及您想要檢出到該處的儲存庫 URL。如需完整詳細資訊,請參閱標題為「外部項目」的章節。
提交新資料夾。現在當您更新時,Subversion 會將該專案的副本從其儲存庫提取到您的工作副本中。如果需要,將會自動建立子資料夾。每次您更新主要工作副本時,您也會收到所有外部專案的最新版本。
如果外部專案位於同一個儲存庫中,當您提交主要專案時,您在那裡所做的任何變更都將包含在提交清單中。
如果外部專案位於不同的儲存庫中,當您提交主要專案時,您對外部專案所做的任何變更都會顯示或指示,但您必須單獨提交這些外部變更。
在描述的三種方法中,這是唯一不需要在用戶端設定的方法。一旦在資料夾屬性中指定了外部項目,所有用戶端在更新時都會取得已填入的資料夾。
在您的專案中建立一個新資料夾以包含共用程式碼,但不要將其新增到 Subversion。
為新資料夾選取
→ ,然後將共用程式碼的副本檢出到其中。您現在有一個巢狀在主要工作副本內的獨立工作副本。這兩個工作副本是獨立的。當您提交對父項的變更時,會忽略對巢狀 WC 的變更。同樣地,當您更新父項時,巢狀 WC 不會更新。
如果您在多個專案中使用相同的共用核心程式碼,並且您不想為每個使用它的專案都保留多個工作副本,您可以將其檢出到與所有其他使用它的專案相關的單獨位置。例如
C:\Projects\Proj1 C:\Projects\Proj2 C:\Projects\Proj3 C:\Projects\Common
並使用相對路徑參照共用程式碼,例如 ..\..\Common\DSPcore
。
如果您的專案分散在不相關的位置,您可以使用此方法的變體,即將共用程式碼放在一個位置,並使用磁碟機代號替換將該位置對應到您可以硬式編碼在專案中的內容,例如將共用程式碼檢出到 D:\Documents\Framework
或 C:\Documents and Settings\{login}\My Documents\framework
,然後使用
SUBST X: "D:\Documents\framework"
來建立原始碼中使用的磁碟機對應。然後您的程式碼可以使用絕對位置。
#include "X:\superio\superio.h"
此方法僅適用於全 PC 環境,您需要記錄所需的磁碟機對應,以便您的團隊知道這些神秘檔案在哪裡。此方法嚴格用於封閉式開發環境,不建議一般使用。