手冊

包含共用子專案

有時候您會想要在您的工作副本中包含另一個專案,也許是一些程式庫程式碼。至少有 4 種處理方式。

使用 svn:externals

為您專案中的資料夾設定 svn:externals 屬性。此屬性由一或多行組成;每一行都有您想要用作共用程式碼檢出資料夾的子資料夾名稱,以及您想要檢出到該處的儲存庫 URL。如需完整詳細資訊,請參閱標題為「外部項目」的章節

提交新資料夾。現在當您更新時,Subversion 會將該專案的副本從其儲存庫提取到您的工作副本中。如果需要,將會自動建立子資料夾。每次您更新主要工作副本時,您也會收到所有外部專案的最新版本。

如果外部專案位於同一個儲存庫中,當您提交主要專案時,您在那裡所做的任何變更都將包含在提交清單中。

如果外部專案位於不同的儲存庫中,當您提交主要專案時,您對外部專案所做的任何變更都會顯示或指示,但您必須單獨提交這些外部變更。

在描述的三種方法中,這是唯一不需要在用戶端設定的方法。一旦在資料夾屬性中指定了外部項目,所有用戶端在更新時都會取得已填入的資料夾。

使用巢狀工作副本

在您的專案中建立一個新資料夾以包含共用程式碼,但不要將其新增到 Subversion。

為新資料夾選取TortoiseSVN檢出,然後將共用程式碼的副本檢出到其中。您現在有一個巢狀在主要工作副本內的獨立工作副本。

這兩個工作副本是獨立的。當您提交對父項的變更時,會忽略對巢狀 WC 的變更。同樣地,當您更新父項時,巢狀 WC 不會更新。

使用相對位置

如果您在多個專案中使用相同的共用核心程式碼,並且您不想為每個使用它的專案都保留多個工作副本,您可以將其檢出到與所有其他使用它的專案相關的單獨位置。例如

C:\Projects\Proj1
C:\Projects\Proj2
C:\Projects\Proj3
C:\Projects\Common
        

並使用相對路徑參照共用程式碼,例如 ..\..\Common\DSPcore

如果您的專案分散在不相關的位置,您可以使用此方法的變體,即將共用程式碼放在一個位置,並使用磁碟機代號替換將該位置對應到您可以硬式編碼在專案中的內容,例如將共用程式碼檢出到 D:\Documents\FrameworkC:\Documents and Settings\{login}\My Documents\framework,然後使用

SUBST X: "D:\Documents\framework"
        

來建立原始碼中使用的磁碟機對應。然後您的程式碼可以使用絕對位置。

#include "X:\superio\superio.h"
        

此方法僅適用於全 PC 環境,您需要記錄所需的磁碟機對應,以便您的團隊知道這些神秘檔案在哪裡。此方法嚴格用於封閉式開發環境,不建議一般使用。

將專案新增到儲存庫

也許最簡單的方法是簡單地將專案以子資料夾的形式新增到您自己的專案工作副本中。但是,這樣做的缺點是您必須手動更新和升級此外部專案。

為了協助升級,TortoiseSVN 在檔案總管右鍵拖曳內容選單中提供了一個指令。只需將您解壓縮新版本的外部程式庫的資料夾右鍵拖曳到工作副本中的資料夾,然後選取內容選單SVN Vendorbranch here。這會將新檔案複製到目標資料夾,同時自動新增新檔案並移除新版本中不再存在的檔案。

TortoiseSVN 首頁