將您所做的變更傳送到您的工作副本稱為提交變更。但在提交之前,您必須確保您的工作副本是最新的。您可以直接使用
→ 。或者您可以先使用 → ,以查看哪些檔案在本機或伺服器上已變更。如果您的工作副本是最新的且沒有衝突,您就可以準備提交變更。選取您要提交的任何檔案和/或資料夾,然後點擊
→ 。
提交對話方塊將顯示每個已變更的檔案,包括新增、刪除和未版本化的檔案。如果您不希望提交某個已變更的檔案,只需取消勾選該檔案。如果您想要包含未版本化的檔案,只需勾選該檔案即可將其新增至提交。
若要快速勾選或取消勾選檔案類型,例如所有已版本化的檔案或所有已修改的檔案,請點擊顯示項目列表上方的連結項目。
有關項目根據其狀態的著色和覆蓋層的資訊,請參閱名為「本機和遠端狀態」的章節。
已切換到不同儲存庫路徑的項目也會使用 (s)
標記指示。您可能在處理分支時切換了某些內容,但忘記切換回主幹。這是您的警告標誌!
當您提交檔案時,提交對話方塊僅顯示您已選取的檔案。當您提交資料夾時,提交對話方塊將自動選取已變更的檔案。如果您忘記了您建立的新檔案,提交資料夾仍然會找到它。提交資料夾並非表示每個檔案都會標記為已變更;它只是透過為您做更多工作來讓您的生活更輕鬆。
如果您認為提交對話方塊顯示太多未版本化的檔案(例如編譯器產生的或編輯器備份檔案),則有幾種處理方法。您可以
將檔案(或萬用字元副檔名)新增到設定頁面上要排除的檔案清單中。這將影響您擁有的每個工作副本。
使用 svn:ignore
清單中。這只會影響您設定 svn:ignore
屬性的目錄。使用 SVN 屬性對話方塊,您可以變更目錄的 svn:ignore
屬性。
使用 svn:global-ignores
清單中。這將影響您設定 svn:global-ignores
屬性的目錄以及所有子資料夾。
閱讀名為「忽略檔案和目錄」的章節以取得更多資訊。
雙擊提交對話方塊中的任何已修改檔案,將啟動外部差異工具以顯示您的變更。右鍵選單將為您提供更多選項,如螢幕截圖所示。您也可以從這裡將檔案拖曳到另一個應用程式,例如文字編輯器或 IDE。
您可以透過點擊項目左側的核取方塊來選取或取消選取項目。對於目錄,您可以使用 Shift-選取來使動作遞迴。
底部窗格中顯示的欄位是可自訂的。如果您按一下滑鼠右鍵任何欄位標題,您將看到一個右鍵選單,允許您選取要顯示的欄位。您也可以透過使用當您將滑鼠移到欄位邊界上方時出現的拖曳手柄來變更欄位寬度。這些自訂設定會被保留,因此您下次將看到相同的標題。
預設情況下,當您提交變更時,您持有的任何檔案鎖定會在提交成功後自動釋放。如果您想要保留這些鎖定,請確保勾選 保留鎖定 核取方塊。此核取方塊的預設狀態取自 Subversion 設定檔案中的 no_unlock
選項。閱讀名為「一般設定」的章節,以取得有關如何編輯 Subversion 設定檔案的資訊。
通常,提交是針對主幹或分支進行的,而不是針對標籤。畢竟,標籤被認為是固定的,不應變更。
如果嘗試提交到標籤 URL,TortoiseSVN 會先顯示確認對話方塊,以確保這是否真的是您的意圖。因為大多數時候這種提交都是意外完成的。
但是,此檢查僅在儲存庫佈局是建議的佈局之一時才有效,這表示它使用名稱 trunk
、branches
和 tags
來標記三個主要區域。如果設定不同,則可以在設定對話方塊中設定標籤/分支/主幹的偵測(也稱為 分類模式
):名為「修訂圖設定」的章節
您可以從其他位置將檔案拖曳到提交對話方塊中,只要工作副本是從同一個儲存庫檢出的即可。例如,您可能有一個龐大的工作副本,其中開啟了多個檔案總管視窗以查看階層結構中遠端的資料夾。如果您想要避免從頂層資料夾提交(需要長時間的資料夾爬行來檢查變更),您可以為一個資料夾開啟提交對話方塊,並從其他視窗中拖曳項目以包含在同一個原子提交中。
您可以將位於工作副本內的未版本化檔案拖曳到提交對話方塊中,它們將會自動新增到 SVN 中。
將檔案從提交對話方塊底部的清單拖曳到日誌訊息編輯方塊中,會將路徑作為純文字插入到該編輯方塊中。如果您想要撰寫包含受提交影響的路徑的提交日誌訊息,這會很有用。
有時檔案會在 Subversion 之外重新命名,它們會在檔案清單中顯示為遺失的檔案和未版本化的檔案。為了避免遺失歷史記錄,您需要通知 Subversion 關於連線。只需選取舊名稱(遺失)和新名稱(未版本化),然後使用
→ 將這兩個檔案配對為重新命名。如果您複製了檔案但忘記使用 Subversion 命令來執行此操作,您可以修復該副本,以便新檔案不會遺失其歷史記錄。只需選取舊名稱(正常或已修改)和新名稱(未版本化),然後使用
→ 將這兩個檔案配對為複製。提交對話方塊支援 Subversion 的變更列表功能,以協助將相關檔案分組在一起。在名為「變更列表」的章節中瞭解此功能。
有時您只想提交對檔案所做的變更中的一部分。當您正在處理某些內容,但隨後需要提交緊急修復程式,而該修復程式恰好位於您正在處理的同一個檔案中時,通常會發生這種情況。
按一下滑鼠右鍵檔案,然後使用 → 。這將建立檔案目前狀態的副本。然後您可以編輯檔案,例如在文字編輯器中,並復原您不想提交的所有變更。儲存這些變更後,您可以提交檔案。
如果您使用 TortoiseMerge 來編輯檔案,您可以照常編輯變更,或標記您想要包含的所有變更。按一下滑鼠右鍵已修改的區塊,然後使用 → 以包含該變更。最後按一下滑鼠右鍵並使用 → ,這將變更右側視圖,使其僅包含您之前標記的變更,並復原您未標記的變更。
提交完成後,檔案副本會自動還原,您會擁有包含所有未提交的修改的檔案。
有時您有版本化檔案,這些檔案經常變更,但您真的不想提交。有時這表示您的建置流程存在缺陷 - 為什麼這些檔案是版本化的?您應該使用範本檔案嗎?但偶爾這是不可避免的。一個經典的原因是您的 IDE 每次建置時都會變更專案檔案中的時間戳記。專案檔案必須是版本化的,因為它包含所有建置設定,但它不需要僅因為時間戳記已變更而提交。
為了協助解決這種尷尬的情況,我們保留了一個名為 ignore-on-commit
的變更列表。新增到此變更列表的任何檔案都會在提交對話方塊中自動取消勾選。您仍然可以提交變更,但您必須在提交對話方塊中手動選取它。
務必輸入日誌訊息,描述您正在提交的變更。這將有助於您在稍後瀏覽專案日誌訊息時查看發生了什麼以及何時發生。訊息可以盡可能長或盡可能簡短;許多專案都有關於應包含的內容、要使用的語言,有時甚至是嚴格格式的指南。
您可以使用類似於電子郵件中使用的慣例,將簡單的格式套用到您的日誌訊息。若要將樣式套用到 文字
,請使用 *文字*
表示粗體、_文字_
表示底線,以及 ^文字^
表示斜體。
TortoiseSVN 包含拼字檢查器,可協助您正確撰寫日誌訊息。這將醒目提示任何拼字錯誤的單字。使用右鍵選單來存取建議的更正。當然,它並不知道您所知道的每個技術術語,因此拼字正確的單字有時會顯示為錯誤。但別擔心。您只需使用右鍵選單將它們新增到您的個人字典中即可。
日誌訊息視窗還包含檔案名稱和函式自動完成功能。這使用正規表示式從您正在提交的(文字)檔案以及檔案名稱本身中擷取類別和函式名稱。如果您正在輸入的單字與清單中的任何內容相符(在您輸入至少 3 個字元或按下 Ctrl+Space 後),會出現下拉式選單,讓您可以選取完整名稱。TortoiseSVN 隨附的正規表示式保存在 TortoiseSVN 安裝 bin
資料夾中。您也可以定義自己的正規表示式,並將它們儲存在 %APPDATA%\TortoiseSVN\autolist.txt
中。當然,當您更新 TortoiseSVN 安裝時,您的私人自動清單將不會被覆寫。如果您不熟悉正規表示式,請查看 https://en.wikipedia.org/wiki/Regular_expression 中的簡介,以及 https://regular-expressions.dev.org.tw/ 中的線上文件和教學課程。
取得正確的正規表示式可能很棘手,因此為了協助您找出合適的表示式,有一個測試對話方塊,可讓您輸入表示式,然後輸入檔案名稱以針對其進行測試。從命令提示字元使用命令 TortoiseProc.exe /command:autotexttest
啟動它。
日誌訊息視窗還包含提交訊息片段功能。這些片段會在您輸入片段快捷鍵後顯示在自動完成下拉式選單中,然後在自動完成下拉式選單中選取片段會插入片段的完整文字。TortoiseSVN 隨附的片段保存在 TortoiseSVN 安裝 bin
資料夾中。您也可以定義自己的片段,並將它們儲存在 %APPDATA%\TortoiseSVN\snippet.txt
中。#
是註解字元。可以透過像這樣逸出換行符號來插入換行符號:\n
和 \r
。若要插入反斜線,請像這樣逸出它:\\
。
您可以重複使用先前輸入的日誌訊息。只需點擊
即可檢視您為此工作副本輸入的最後幾個訊息的清單。儲存訊息的數量可以在 TortoiseSVN 設定對話方塊中自訂。您可以從 TortoiseSVN 設定的 已儲存資料 頁面清除所有已儲存的提交訊息,或者您可以使用 Delete 鍵從 最近的訊息 對話方塊中清除個別訊息。
如果您想要在日誌訊息中包含選取的路徑,您可以使用編輯控制項中的
→ 命令。將路徑插入日誌訊息的另一種方法是簡單地將檔案從檔案清單拖曳到編輯控制項上。
有幾個特殊資料夾屬性可用於協助更精細地控制提交日誌訊息的格式和拼字檢查器模組使用的語言。閱讀名為「專案設定」的章節以取得更多資訊。
如果您已啟用錯誤追蹤系統,您可以在 錯誤 ID / 問題編號: 文字方塊中設定一個或多個問題。多個問題應以逗號分隔。或者,如果您使用基於正規表示式的錯誤追蹤支援,只需將您的問題參考新增為日誌訊息的一部分即可。在名為「與錯誤追蹤系統/問題追蹤器整合」的章節中瞭解更多資訊。
按下
後,會出現一個對話方塊,顯示提交的進度。
進度對話方塊使用顏色編碼來醒目提示不同的提交動作
提交修改。
提交新增項目。
提交刪除或取代。
所有其他項目。
這是預設的配色方案,但您可以使用設定對話方塊自訂這些顏色。閱讀名為「TortoiseSVN 顏色設定」的章節以取得更多資訊。