手冊

修訂圖表

圖 4.67. 修訂圖表示例

A Revision Graph


有時候您需要知道分支和標籤是從主幹的哪個位置建立的,而檢視這類資訊的理想方式是以圖表或樹狀結構呈現。這時候您就需要使用 TortoiseSVN修訂圖表...

這個命令會分析修訂歷史記錄,並嘗試建立一個樹狀圖,顯示副本建立的點,以及分支/標籤何時被刪除。

重要事項

為了產生圖表,TortoiseSVN 必須從儲存庫根目錄擷取所有日誌訊息。毋庸置疑,即使儲存庫只有幾千個修訂版本,這也可能需要幾分鐘時間,具體取決於伺服器速度、網路頻寬等。如果您嘗試對像 Apache 專案這樣目前擁有超過 500,000 個修訂版本的專案執行此操作,您可能需要等待相當長的時間。

好消息是,如果您正在使用日誌快取,您只需要忍受這一次延遲。之後,日誌資料將會在本機保存。日誌快取在 TortoiseSVN 的設定中啟用。

修訂圖表節點

每個修訂圖表節點代表儲存庫中您正在檢視的樹狀結構中發生變更的修訂版本。不同類型的節點可以通過形狀和顏色來區分。形狀是固定的,但顏色可以使用 TortoiseSVN設定 進行設定

新增或複製的項目

已新增或通過複製另一個檔案/資料夾建立的項目,會使用圓角矩形顯示。預設顏色為綠色。標籤和主幹會被視為特殊情況,並使用不同的陰影,具體取決於 TortoiseSVN設定

已刪除的項目

已刪除的項目,例如不再需要的分支,會使用八邊形(切角矩形)顯示。預設顏色為紅色。

已重新命名的項目

已重新命名的項目也使用八邊形顯示,但預設顏色為藍色。

分支頂端修訂版本

圖表通常僅限於顯示分支點,但能夠查看每個分支各自的 HEAD 修訂版本通常也很有用。如果您選擇 顯示 HEAD 修訂版本,則每個 HEAD 修訂版本節點將顯示為橢圓形。請注意,此處的 HEAD 指的是該路徑上最後提交的修訂版本,而不是儲存庫的 HEAD 修訂版本。

工作副本修訂版本

如果您從工作副本調用修訂圖表,您可以選擇使用 顯示 WC 修訂版本 在圖表上顯示 BASE 修訂版本,這會以粗體輪廓標記 BASE 節點。

已修改的工作副本

如果您從工作副本調用修訂圖表,您可以選擇使用 顯示 WC 修改 顯示代表您已修改工作副本的額外節點。這是一個橢圓形節點,預設情況下以紅色粗體輪廓顯示。

一般項目

所有其他項目都使用純矩形顯示。

請注意,預設情況下,圖表僅顯示項目新增、複製或刪除的點。顯示專案的每個修訂版本將會為非瑣碎的情況產生非常大的圖表。如果您真的想查看 所有 進行變更的修訂版本,則可以在 檢視 選單和工具列中找到一個選項來執行此操作。

預設檢視 (群組關閉) 將節點放置在嚴格的修訂版本順序中,因此您可以直觀地了解事情完成的順序。當兩個節點位於同一列時,順序非常明顯。當兩個節點位於相鄰列時,偏移量要小得多,因為不需要防止節點重疊,因此順序不太明顯。這種最佳化對於保持複雜圖表的合理大小是必要的。請注意,此排序使用節點 較舊 側的 邊緣 作為參考,即當圖表以最舊節點在底部顯示時的節點底部邊緣。參考邊緣很重要,因為節點形狀的高度並不完全相同。

變更檢視

由於修訂圖表通常非常複雜,因此有許多功能可用於根據您的需要調整檢視。這些功能可在 檢視 選單和工具列中找到。

群組分支

預設行為(群組關閉)會讓所有列都嚴格按照修訂版本排序。因此,具有稀疏提交的長期分支僅佔用一列用於少數變更,並且圖表變得非常寬。

此模式會按分支群組變更,因此沒有全域修訂版本順序:分支上的連續修訂版本將顯示在(通常)連續的行中。但是,子分支的排列方式是,後來的分支將顯示在同一列中,在較早的分支之上,以保持圖表的精簡。因此,給定的行可能包含來自不同修訂版本的變更。

最舊在頂部

通常,圖表在底部顯示最舊的修訂版本,並且樹狀結構向上生長。使用此選項可改為從頂部向下生長。

在頂部對齊樹狀結構

當圖表被分成幾個較小的樹狀結構時,樹狀結構可能會以自然的修訂版本順序顯示,或者在視窗底部對齊,具體取決於您是否正在使用 群組分支 選項。使用此選項可改為從頂部向下生長所有樹狀結構。

減少交叉線

此選項通常是啟用的,可避免顯示帶有大量混亂交叉線的圖表。但是,這也可能使佈局列出現在不太符合邏輯的位置,例如對角線而不是列,並且圖表可能需要更大的繪製區域。如果這是一個問題,您可以從 檢視 選單中停用該選項。

差異路徑名稱

長路徑名稱可能會佔用大量空間,並使節點框非常大。使用此選項僅顯示路徑的變更部分,並用點替換共同部分。例如,如果您從 /trunk/doc/html 建立分支 /branches/1.2.x/doc/html,則分支可以緊湊形式顯示為 /branches/1.2.x/..,因為最後兩個層級 dochtml 沒有變更。

顯示所有修訂版本

這完全符合您的期望,並顯示樹狀結構中發生變更的每個修訂版本。對於漫長的歷史記錄,這可能會產生非常龐大的圖表。

顯示 HEAD 修訂版本

這可確保每個分支上的最新修訂版本始終顯示在圖表上。

精確副本來源

當建立分支/標籤時,預設行為是將分支顯示為從最後一個進行變更的節點取得。嚴格來說,這是不準確的,因為分支通常是從目前的 HEAD 而不是特定的修訂版本建立的。因此,可以顯示用於建立副本的更正確(但不太有用)的修訂版本。請注意,此修訂版本可能比來源分支的 HEAD 修訂版本更新。

摺疊標籤

當專案有很多標籤時,將每個標籤顯示為圖表上的單獨節點會佔用大量空間,並模糊更令人感興趣的開發分支結構。同時,您可能需要能夠輕鬆存取標籤內容,以便您可以比較修訂版本。此選項會隱藏標籤的節點,而是將它們顯示在複製來源節點的工具提示中。來源節點右側的標籤圖示表示已建立標籤。這大大簡化了檢視。

請注意,如果標籤本身被用作副本的來源,例如基於標籤的新分支,則該標籤將顯示為單獨的節點,而不是摺疊。

隱藏已刪除的路徑

隱藏儲存庫 HEAD 修訂版本中不再存在的路徑,例如已刪除的分支。

如果您選擇了 摺疊標籤 選項,則仍會顯示從中取得標籤的已刪除分支,否則標籤也會消失。最後一個標記的修訂版本將以用於已刪除節點的顏色顯示,而不是顯示單獨的刪除修訂版本。

如果您選擇 隱藏標籤 選項,則這些分支將再次消失,因為它們不需要顯示標籤。

隱藏未使用的分支

隱藏沒有對相應檔案或子資料夾提交任何變更的分支。這不一定表示分支未使用,只是表示沒有對 這個 部分進行任何變更。

顯示 WC 修訂版本

標記圖表上與您擷取圖表項目的更新修訂版本相對應的修訂版本。如果您剛剛更新,這將是 HEAD,但如果自您上次更新以來其他人已提交變更,則您的 WC 可能會低幾個修訂版本。節點會以粗體輪廓標記。

顯示 WC 修改

如果您的 WC 包含本機變更,則此選項會將其繪製為單獨的橢圓形節點,並連結回您的 WC 上次更新到的節點。預設輪廓顏色為紅色。您可能需要使用 F5 重新整理圖表以擷取最近的變更。

篩選器

有時修訂圖表包含的修訂版本超出您想要查看的範圍。此選項會開啟一個對話方塊,讓您可以限制顯示的修訂版本範圍,並按名稱隱藏特定路徑。

如果您隱藏了特定路徑且該節點有子節點,則子節點將顯示為單獨的樹狀結構。如果您也想隱藏所有子節點,請選取 移除整個子樹 核取方塊。

樹狀條紋

當圖表包含多個樹狀結構時,有時在背景上使用交替顏色來幫助區分樹狀結構會很有用。

顯示概觀

顯示整個圖表的小圖片,目前的檢視視窗顯示為您可以拖曳的矩形。這讓您可以更輕鬆地瀏覽圖表。請注意,對於非常大的圖表,由於極端的縮放比例,概觀可能會變得無用,因此在這種情況下將不會顯示。

使用圖表

為了更輕鬆地瀏覽大型圖表,請使用概觀視窗。這會在小視窗中顯示整個圖表,並以高亮度顯示目前顯示的部分。您可以拖曳高亮顯示的區域來變更顯示區域。

當滑鼠懸停在修訂版本框上方時,修訂版本日期、作者和註解會顯示在提示框中。

如果您選取兩個修訂版本(使用 Ctrl+滑鼠左鍵點擊),您可以使用上下文選單來顯示這些修訂版本之間的差異。您可以選擇顯示分支建立點的差異,但通常您會想要顯示分支終點的差異,即 HEAD 修訂版本的差異。

您可以將差異檢視為 Unified-Diff 檔案,該檔案在單個檔案中以最少的上下文顯示所有差異。如果您選擇 上下文選單比較修訂版本,您將看到已變更檔案的清單。 按兩下 檔案名稱以擷取檔案的兩個修訂版本,並使用視覺差異工具比較它們。

如果您 按一下滑鼠右鍵 修訂版本,您可以使用 上下文選單顯示日誌 來檢視歷史記錄。

您也可以將選定修訂版本中的變更合併到不同的工作副本中。資料夾選取對話方塊可讓您選擇要合併到的工作副本,但之後沒有確認對話方塊,也沒有任何嘗試測試合併的機會。最好合併到未修改的工作副本中,這樣如果失敗,您可以還原變更!如果您想要將選定的修訂版本從一個分支合併到另一個分支,這是一個有用的功能。

學習閱讀修訂圖表

初次使用者可能會對修訂圖表顯示的內容與使用者的心智模型不符感到驚訝。例如,如果修訂版本變更了檔案或資料夾的多個副本或分支,則該單個修訂版本將有多個節點。最好從工具列中最左邊的選項開始,逐步自訂圖表,直到它接近您的心智模型。

所有篩選器選項都盡可能減少資訊的遺失。這可能會導致某些節點變更其顏色。每當結果出乎意料時,請撤銷上次篩選器操作,並嘗試了解該特定修訂版本或分支的特殊之處。在大多數情況下,篩選器操作最初預期的結果要么是不準確的,要么是具有誤導性的。

重新整理檢視

如果您想再次檢查伺服器是否有更新的資訊,您可以簡單地使用 F5 重新整理檢視。如果您正在使用日誌快取(預設啟用),這將檢查儲存庫是否有較新的提交,並且僅擷取新的提交。如果日誌快取處於離線模式,這也將嘗試重新上線。

如果您正在使用日誌快取,並且您認為訊息內容或作者可能已變更,則您應該使用日誌對話方塊來重新整理您需要的訊息。由於修訂圖表從儲存庫根目錄工作,我們將不得不使整個日誌快取失效,並且重新填滿它可能需要 非常 長的時間。

修剪樹狀結構

大型樹狀結構可能難以瀏覽,有時您會想要隱藏部分樹狀結構,或將其分解為較小樹狀結構的森林。如果您將滑鼠懸停在節點連結進入或離開節點的點上,您將看到一個或多個彈出按鈕,可讓您執行此操作。

按一下減號按鈕以摺疊附加的子樹。

按一下加號按鈕以展開摺疊的樹狀結構。當樹狀結構已摺疊時,此按鈕保持可見,以指示隱藏的子樹。

按一下叉號按鈕以分割附加的子樹,並將其顯示為圖表上的單獨樹狀結構。

按一下圓圈按鈕以重新附加分割的樹狀結構。當樹狀結構已分割時,此按鈕保持可見,以指示存在單獨的子樹。

按一下圖表背景以顯示主上下文選單,其中提供 全部展開全部加入 選項。如果沒有分支被摺疊或分割,則不會顯示上下文選單。

TortoiseSVN 首頁