如果您要匯入到已存在且包含專案的儲存庫,那麼儲存庫結構應該已經決定好了。如果您要匯入資料到新的儲存庫,那麼值得花時間思考一下如何組織它。請閱讀標題為「儲存庫佈局」的章節以獲得更多建議。
本節描述 Subversion 的匯入命令,該命令旨在一次性將目錄層次結構匯入儲存庫。雖然它能完成工作,但也有幾個缺點
除了使用全域忽略設定外,沒有辦法選擇要包含的檔案和資料夾。
匯入的資料夾不會變成工作副本。您必須執行簽出才能從伺服器複製檔案回來。
很容易匯入到儲存庫中錯誤的資料夾層級。
由於這些原因,我們建議您完全不要使用匯入命令,而是遵循標題為「就地匯入」的章節中描述的兩步驟方法,除非您正在執行建立儲存庫中初始 /trunk /tags /branches
結構的簡單步驟。既然您在這裡,以下是基本匯入的工作方式...
在將專案匯入儲存庫之前,您應該
移除所有建置專案不需要的檔案(暫存檔、編譯器產生的檔案,例如 *.obj、已編譯的二進位檔...)
將檔案組織到資料夾和子資料夾中。雖然稍後可以重新命名/移動檔案,但強烈建議在匯入之前先確定專案的結構!
現在在 Windows 檔案總管中選擇專案目錄結構的最上層資料夾,然後按一下滑鼠右鍵以開啟內容選單。選擇 → 命令,這會彈出一個對話方塊
在這個對話方塊中,您必須輸入要將專案匯入的儲存庫位置 URL。非常重要的是要意識到,您要匯入的本機資料夾本身不會出現在儲存庫中,只有它的內容會出現。例如,如果您有以下結構
C:\Projects\Widget\source C:\Projects\Widget\doc C:\Projects\Widget\images
而且您將 C:\Projects\Widget
匯入到 http://mydomain.com/svn/trunk
,那麼您可能會驚訝地發現您的子目錄直接進入 trunk
,而不是在 Widget
子目錄中。您需要將子目錄指定為 URL 的一部分,http://mydomain.com/svn/trunk/Widget-X
。請注意,如果儲存庫中不存在子目錄,匯入命令將自動建立它們。
匯入訊息用作記錄訊息。
預設情況下,符合全域忽略模式的檔案和資料夾不會被匯入。要覆寫此行為,您可以使用包含忽略的檔案核取方塊。有關設定全域忽略模式的更多資訊,請參閱標題為「一般設定」的章節。
一旦您按下沒有受到版本控制!要取得受版本控制的工作副本,您需要對剛匯入的版本執行簽出。或者繼續閱讀以了解如何就地匯入資料夾。
,TortoiseSVN 就會將完整的目錄樹(包括所有檔案)匯入到儲存庫中。專案現在儲存在儲存庫中,受到版本控制。請注意,您匯入的資料夾假設您已經有一個儲存庫,並且想要向其中新增一個新的資料夾結構,只需按照以下步驟操作
使用儲存庫瀏覽器直接在儲存庫中建立新的專案資料夾。如果您使用的是標準佈局之一,您可能需要將其建立為 trunk 的子資料夾,而不是儲存庫根目錄。儲存庫瀏覽器顯示儲存庫結構,就像 Windows 檔案總管一樣,因此您可以看到事物的組織方式。
將新資料夾簽出到您要匯入的資料夾之上。您會收到本機資料夾不是空的警告。忽略警告。現在您有一個已版本控制的最上層資料夾,其中包含未版本控制的內容。
在這個已版本控制的資料夾上使用 svn:ignore
屬性,並進行您需要的任何其他變更。
提交最上層資料夾,您就有了一個新的已版本控制的樹狀結構和一個本機工作副本,從您現有的資料夾建立。
有時您需要將包含使用者特定資料的檔案置於版本控制之下。這表示您有一個檔案,每個開發人員/使用者都需要修改以適應他/她的本機設定。但是版本控制這樣一個檔案很困難,因為每個使用者每次都會將他/她的變更提交到儲存庫。
在這種情況下,我們建議使用範本檔案。您建立一個包含開發人員所需的所有資料的檔案,將該檔案新增到版本控制,並讓開發人員簽出此檔案。然後,每個開發人員都必須複製一份該檔案並重新命名該副本。在那之後,修改副本就不再是問題了。
例如,您可以查看 TortoiseSVN 的建置腳本。它呼叫一個名為 default.build.user
的檔案,該檔案在儲存庫中不存在。只有檔案 default.build.user.tmpl
。default.build.user.tmpl
是範本檔案,每個開發人員都必須從中建立副本,並將該檔案重新命名為 default.build.user
。在該檔案內部,我們新增了註解,以便使用者看到他們必須編輯哪些行並根據其本機設定進行變更才能使其運作。
為了不打擾使用者,我們也將檔案 default.build.user
新增到其父資料夾的忽略清單中,也就是說,我們已設定 Subversion 屬性 svn:ignore
以包含該檔案名稱。這樣,它就不會在每次提交時都顯示為未版本控制。