手冊

取得狀態資訊

當您在工作副本上作業時,通常需要知道您已變更/新增/移除或重新命名的檔案,甚至哪些檔案已被其他人變更和提交。

圖示覆蓋層

圖 4.12。 顯示圖示覆蓋層的檔案總管

Explorer showing icon overlays


現在您已從 Subversion 儲存庫檢出工作副本,您可以在 Windows 檔案總管中看到檔案圖示已變更。這是 TortoiseSVN 如此受歡迎的原因之一。 TortoiseSVN 為每個檔案圖示新增所謂的覆蓋圖示,該圖示會覆蓋原始檔案圖示。覆蓋圖示會根據檔案的 Subversion 狀態而有所不同。

全新檢出的工作副本具有綠色勾號作為覆蓋層。這表示 Subversion 狀態為 正常

一旦您開始編輯檔案,狀態就會變更為 已修改,而圖示覆蓋層則會變更為紅色驚嘆號。這樣一來,您可以輕鬆查看自上次更新工作副本以來已變更且需要提交的檔案。

如果在更新期間發生衝突,則圖示會變更為黃色驚嘆號。

如果您在檔案上設定了 svn:needs-lock 屬性,Subversion 會將該檔案設為唯讀,直到您取得該檔案的鎖定為止。此類檔案具有此覆蓋層,表示您必須先取得鎖定才能編輯該檔案。

如果您持有檔案的鎖定,且 Subversion 狀態為 正常,則此圖示覆蓋層會提醒您,如果您未使用鎖定,則應釋放鎖定,以允許其他人提交他們對檔案的變更。

此圖示顯示目前資料夾內的一些檔案或資料夾已排程要從版本控制中刪除,或受版本控制的檔案在資料夾中遺失。

加號表示檔案或資料夾已排程要新增至版本控制。

橫線符號表示檔案或資料夾為了版本控制目的而被忽略。此覆蓋層是選用的。

此圖示顯示未受版本控制但未被忽略的檔案和資料夾。此覆蓋層是選用的。

事實上,您可能會發現並非所有這些圖示都在您的系統上使用。這是因為 Windows 允許的覆蓋層數量非常有限,如果您也使用舊版本的 TortoiseCVS,則沒有足夠的覆蓋層插槽可用。 TortoiseSVN 嘗試成為良好公民 (TM),並限制其覆蓋層的使用,以便讓其他應用程式也有機會。

現在有越來越多的 Tortoise 用戶端(TortoiseCVS、TortoiseHg...),圖示限制成為一個真正的問題。為了解決這個問題,TortoiseSVN 專案引入了一個通用的共享圖示集,作為 DLL 載入,所有 Tortoise 用戶端都可以使用。請洽詢您的用戶端提供商,以查看是否已整合此功能 :-)

如需圖示覆蓋層如何對應到 Subversion 狀態和其他技術細節的說明,請閱讀標題為「圖示覆蓋層」的章節。

詳細狀態

圖 4.13。 檔案總管屬性頁面,Subversion 標籤

Explorer property page, Subversion tab


有時您想要取得關於檔案/目錄的更詳細資訊,而不僅僅是圖示覆蓋層。您可以在檔案總管屬性對話方塊中取得 Subversion 提供的所有資訊。只需選取檔案或目錄,然後在內容選單中選取Windows 選單內容(注意:這是檔案總管提供的正常內容選單項目,而不是 TortoiseSVN 子選單中的項目!)。在屬性對話方塊中,TortoiseSVN 為受 Subversion 控制的檔案/資料夾新增了一個新的屬性頁面,您可以在其中看到關於所選檔案/目錄的所有相關資訊。

本機和遠端狀態

圖 4.14。 檢查修改

Check for Modifications


了解您已變更哪些檔案以及哪些檔案已被其他人變更和提交通常非常有用。這就是 TortoiseSVN檢查修改... 命令的用武之地。此對話方塊會顯示您的工作副本中以任何方式變更的每個檔案,以及您可能擁有的任何未受版本控制的檔案。

如果您按一下檢查儲存庫,那麼您也可以尋找儲存庫中的變更。這樣一來,您可以在更新之前檢查是否存在可能的衝突。您也可以從儲存庫更新選取的檔案,而無需更新整個資料夾。預設情況下,檢查儲存庫按鈕僅會擷取工作副本的檢出深度的遠端狀態。如果您想查看儲存庫中的所有檔案和資料夾,即使是您尚未檢出的檔案和資料夾,那麼您必須在按一下檢查儲存庫按鈕時按住 Shift 鍵。

此對話方塊使用顏色編碼來突顯狀態。

藍色

本機修改的項目。

如果未變更的檔案位於已移動的目錄內,則狀態會在狀態欄中顯示 + 符號,並且也會以藍色著色。

紫色

已新增的項目。具有歷史記錄的新增項目在文字狀態欄中具有 + 符號,並且工具提示會顯示項目的複製來源。

深紅色

已刪除或遺失的項目。

綠色

在本機和儲存庫中修改的項目。這些變更將在更新時合併。這些可能會在更新時產生衝突。

亮紅色

在本機修改並在儲存庫中刪除的項目,或在儲存庫中修改並在本機刪除的項目。這些會在更新時產生衝突。

黑色

未變更和未受版本控制的項目。

這是預設的配色方案,但您可以使用設定對話方塊自訂這些顏色。請閱讀標題為「TortoiseSVN 色彩設定」的章節,以取得更多資訊。

覆蓋圖示也用於指示其他狀態。下面的螢幕截圖顯示了必要時顯示的所有可能覆蓋層。

覆蓋層會針對以下狀態顯示

  • 檢出深度 empty,表示僅限項目本身。

  • 檢出深度 files,表示僅限項目本身和所有檔案子項目,但不包含子資料夾。

  • 檢出深度 immediates,表示僅限項目本身和所有檔案和資料夾子項目,但不包含子資料夾的子項目。

  • 巢狀項目,即工作副本內的工作副本。

  • 外部項目,即透過 svn:externals 屬性新增的所有項目。

  • 在提交後還原的項目。請參閱標題為「僅提交檔案的某些部分」的章節,以取得詳細資訊。

  • 具有屬性修改的項目,但僅限於 svn:mergeinfo 屬性。如果修改了任何其他屬性,則不會使用覆蓋層。

已切換到不同儲存庫路徑的項目也會使用 (s) 標記指示。您可能在處理分支時切換了某些內容,但忘記切換回主幹。這是您的警告標誌!內容選單允許您將它們切換回正常路徑。

從對話方塊的內容選單中,您可以顯示變更的差異。使用內容選單與基礎版本比較檢查所做的本機變更。使用內容選單顯示差異為 unified diff 格式檢查其他人對儲存庫所做的變更。

您也可以還原個別檔案中的變更。如果您不小心刪除了檔案,它會顯示為遺失,您可以使用還原來復原它。

未受版本控制和忽略的檔案可以使用內容選單刪除從此處傳送到資源回收筒。如果您想永久刪除檔案(繞過資源回收筒),請在按一下刪除時按住 Shift 鍵。

如果您想詳細檢查檔案,可以從此處將其拖曳到另一個應用程式(例如文字編輯器或 IDE),或者您可以透過將其拖曳到檔案總管中的資料夾來儲存副本。

欄位是可自訂的。如果您按一下滑鼠右鍵任何欄位標題,您將看到一個內容選單,可讓您選取要顯示的欄位。您也可以透過使用當您將滑鼠移到欄位邊界上方時出現的拖曳控制點來變更欄位寬度。這些自訂設定會被保留,因此您下次會看到相同的標題。

如果您同時處理多個不相關的任務,您也可以將檔案群組到變更列表。請閱讀標題為「變更列表」的章節,以取得更多資訊。

在對話方塊的底部,您可以看到工作副本中使用的儲存庫修訂版本的範圍摘要。這些是提交修訂版本,而不是更新修訂版本;它們代表這些檔案上次提交的修訂版本範圍,而不是它們已更新到的修訂版本。請注意,顯示的修訂版本範圍僅適用於顯示的項目,而不適用於整個工作副本。如果您想查看整個工作副本的資訊,則必須勾選顯示未修改的檔案核取方塊。

提示

如果您想要工作副本的平面視圖,即在資料夾階層的每個層級顯示所有檔案和資料夾,那麼檢查修改對話方塊是實現此目的的最簡單方法。只需勾選顯示未修改的檔案核取方塊即可顯示工作副本中的所有檔案。

修復外部重新命名

有時檔案會在 Subversion 外部重新命名,它們會在檔案列表中顯示為遺失的檔案和未受版本控制的檔案。為了避免遺失歷史記錄,您需要通知 Subversion 關於此關聯性。只需選取舊名稱(遺失)和新名稱(未受版本控制),然後使用內容選單修復移動將這兩個檔案配對為重新命名。

修復外部複製

如果您複製了檔案但忘記使用 Subversion 命令來執行此操作,您可以修復該副本,以便新檔案不會遺失其歷史記錄。只需選取舊名稱(正常或已修改)和新名稱(未受版本控制),然後使用內容選單修復複製將這兩個檔案配對為複製。

檢視差異

通常您想要查看檔案內部,以查看您變更了什麼。您可以透過選取已變更的檔案,然後從 TortoiseSVN 的內容選單中選取Diff來完成此操作。這會啟動外部差異檢視器,然後將目前檔案與原始副本 (BASE 修訂版本) 進行比較,該副本是在上次檢出或更新後儲存的。

提示

即使不在工作副本中,或者當您有多個版本的檔案散落在周圍時,您仍然可以顯示差異

在檔案總管中選取您要比較的兩個檔案(例如使用 Ctrl 和滑鼠),然後從 TortoiseSVN 的內容選單中選擇 Diff。最後按一下的檔案(具有焦點的檔案,即虛線矩形)將被視為較新的檔案。

TortoiseSVN 首頁