手冊

是誰變更了哪一行?

有時候您不只需要知道哪些行被變更了,還需要知道檔案中特定行是由誰變更的。這時 TortoiseSVNBlame... 指令就派上用場了,這個指令有時也被稱為 annotate 指令。

這個指令會列出檔案中每一行的作者以及變更該行的修訂版本。

檔案的 Blame

圖 4.64. 註解 / Blame 對話方塊

The Annotate / Blame Dialog


如果您對早期修訂版本的變更不感興趣,您可以設定 blame 應該從哪個修訂版本開始。如果您想要 每個 修訂版本的 blame 資訊,請將此設定為 1

預設情況下,blame 檔案會使用 TortoiseBlame 檢視,它會醒目提示不同的修訂版本,讓檔案更容易閱讀。如果您希望列印或編輯 blame 檔案,請選取 使用文字檢視器檢視 blame

您可以指定處理行尾符號和空白字元變更的方式。這些選項在 「行尾符號和空白字元選項」 一節中說明。預設行為是將所有空白字元和行尾符號差異視為實際變更,但如果您想忽略縮排變更並找到原始作者,您可以在此處選擇適當的選項。

如果您願意,也可以包含合併資訊,儘管此選項可能需要相當長的時間才能從伺服器檢索。當行從另一個來源合併時,blame 資訊會顯示變更在原始來源中所做的修訂版本,以及合併到此檔案中的修訂版本。

一旦您按下 確定,TortoiseSVN 就會開始檢索資料以建立 blame 檔案。一旦 blame 處理完成,結果將寫入暫存檔,您可以檢視結果。

圖 4.65. TortoiseBlame

TortoiseBlame


TortoiseBlame 包含在 TortoiseSVN 中,使 blame 檔案更易於閱讀。當您將滑鼠懸停在 blame 資訊欄中的某行上時,所有具有相同修訂版本的行都會以較深的背景顯示。由同一作者變更的其他修訂版本的行則以淺色背景顯示。如果您的顯示器設定為 256 色模式,則色彩顯示可能不會那麼清晰。

如果您在某行上 按一下滑鼠左鍵,則所有具有相同修訂版本的行都會被醒目提示,而同一作者的其他修訂版本的行則以較淺的顏色醒目提示。這種醒目提示是黏性的,允許您移動滑鼠而不會遺失醒目提示。再次按一下該修訂版本即可關閉醒目提示。

當滑鼠懸停在 blame 資訊欄上時,修訂版本註解 (記錄訊息) 會顯示在提示方塊中。如果您想複製該修訂版本的記錄訊息,請使用在 blame 資訊欄上按一下滑鼠右鍵時出現的關聯選單。

您可以使用 編輯尋找... 在 Blame 報告中搜尋。這讓您可以搜尋修訂版本號碼、作者和檔案本身的內容。記錄訊息不包含在搜尋中 - 您應該使用記錄對話方塊來搜尋這些訊息。

您也可以使用 編輯跳到行... 跳到特定的行號。

當滑鼠位於 blame 資訊欄上方時,可以使用關聯選單,這有助於比較修訂版本和檢查歷史記錄,並使用滑鼠下方行的修訂版本號碼作為參考。關聯選單Blame 前一個修訂版本 會為同一個檔案產生 blame 報告,但使用前一個修訂版本作為上限。這為您提供了在您正在查看的行最後一次變更之前,檔案狀態的 blame 報告。關聯選單顯示變更 會啟動您的 diff 檢視器,顯示參考修訂版本中變更的內容。關聯選單顯示記錄 會顯示從參考修訂版本開始的修訂版本記錄對話方塊。

如果您需要更好的視覺指標來指示最舊和最新的變更位置,請選取 檢視顏色標示行齡。這將使用顏色漸層來顯示較新的行為紅色,較舊的行為藍色。預設的顏色標示相當淺,但您可以使用 TortoiseBlame 設定來變更它。

如果您正在使用合併追蹤,並且在開始 blame 時請求了合併資訊,則合併的行會以稍微不同的方式顯示。如果某行由於從另一個路徑合併而發生變更,TortoiseBlame 將顯示原始檔案中最後一次變更的修訂版本和作者,而不是合併發生的修訂版本。這些行會以斜體顯示修訂版本和作者來指示。當您將滑鼠懸停在 blame 資訊欄上方時,tooltip 中會另外顯示合併發生的修訂版本。如果您不希望以這種方式顯示合併的行,請在開始 blame 時取消勾選 包含合併資訊 核取方塊。

如果您想查看合併中涉及的路徑,請選取 檢視合併路徑。這會顯示該行最後一次變更的路徑,不包括因合併而產生的變更。

blame 資訊中顯示的修訂版本代表該行內容最後一次變更的修訂版本。如果檔案是透過複製另一個檔案建立的,那麼在您變更某行之前,其 blame 修訂版本將顯示原始來源檔案中的最後一次變更,而不是進行複製的修訂版本。這也適用於合併資訊顯示的路徑。路徑顯示該行最後一次變更的存放庫位置。

可以使用 TortoiseSVN設定... 在 TortoiseBlame 標籤頁中存取 TortoiseBlame 的設定。請參閱 「TortoiseBlame 設定」 一節。

Blame 差異

Blame 報告的限制之一是它只顯示特定修訂版本中的檔案,以及最後一個變更每一行的人。有時您想知道進行了哪些變更,以及是誰進行的變更。如果您在 TortoiseBlame 中的某行上按一下滑鼠右鍵,則會有一個關聯選單項目可以顯示該修訂版本中所做的變更。但是,如果您想同時查看變更 blame 資訊,那麼您需要結合 diff 和 blame 報告。

修訂版本記錄對話方塊包含幾個選項,可讓您執行此操作。

Blame 修訂版本

在頂部窗格中,選取 2 個修訂版本,然後選取 關聯選單Blame 修訂版本。這將擷取這 2 個修訂版本的 blame 資料,然後使用 diff 檢視器比較這兩個 blame 檔案。

Blame 變更

在頂部窗格中選取一個修訂版本,然後在底部窗格中選取一個檔案,並選取 關聯選單Blame 變更。這將擷取選取修訂版本和前一個修訂版本的 blame 資料,然後使用 diff 檢視器比較這兩個 blame 檔案。

比較並 Blame 工作 BASE

顯示單一檔案的記錄,在頂部窗格中選取單一修訂版本,然後選取 關聯選單比較並 Blame 工作 BASE。這將擷取選取修訂版本和工作 BASE 中檔案的 blame 資料,然後使用 diff 檢視器比較這兩個 blame 檔案。

TortoiseSVN 首頁