使用修補程式

修補程式可讓開發人員不用將成果儲存在儲存庫中,就可分享它。 當開發人員想要分送至透過儲存庫分享的專案, 但是對儲存庫又沒有寫入權時,這項功能就非常有用。在此情況下, 開發人員可以建立修補程式,然後以電子郵件將它寄給具有寫入權的開發人員, 或是將它附加到專案所使用的錯誤報告系統中的一個錯誤,視專案所定義的程序而定。然後具有寫入權的開發人員就可套用修補程式至專案, 並確認變更。

如果要從 CVS 專案建立修補程式:

  1. 選取包含要併入修補程式中的修正之資源。您可以選取在多個專案中的資源,或在任何層次的資源,因為當「建立修補程式」精靈執行預設模式時,它知道如何建立多專案的修補程式。 修補程式也應套用至它在其上產生的同一個檔案修訂, 因此應採取一些步驟,確定修補程式套用至同一個資源清單(執行這個動作的最簡單方法是在版本的頂端建立修補程式)。
  2. 從蹦現功能表中,選取團隊 > 建立修補程式...。「建立修補程式」精靈將會開啟。
  3. 選擇儲存修補程式的位置:
    1. 儲存至剪貼簿 - 這會將修補程式置於剪貼簿上, 使其可被貼到文字編輯器(如電子郵件程式)中。
    2. 儲存至檔案系統 - 這個選項會將修補程式置於本端檔案系統中的指定檔案中。
    3. 儲存在工作區 - 這個選項會將修補程式置於其中一個現有的工作台專案內的指定檔案中。
    如果是小型的修補程式,則使用剪貼簿轉送修補程式可能較為合理,但是在大部分的情況下,最好是選擇使用本端檔案系統。
  4. 您可以展開「變更」窗格中所呈現的「資源」樹狀結構,以預覽和細部調整您的修補程式選項。 只有已勾選的元素會併入修補程式中。 按下一步來配置產生修補程式的方式。
  5. 選擇如何配置修補程式:
    1. Diff 輸出格式 - 容許選擇數個共用的 diff 輸出格式。一致是許多修補程式應用程式工具(包括 Eclipse)所使用的格式。
    2. 修補程式根 - 可讓您指定修補程式根所在的層次。 選項如下:工作區專案選項

      工作區可讓您將多個專案的資源併入修補程式中,它是預設選項。 「工作區」修補程式可以套用到工作區的任何資源上 - 它們所包含的資訊,足以讓「套用修補程式」精靈知道哪些資源需要修補。

      專案修補程式的根在專案層次 - 這表示它們只能包含一個專案的資源,必須套用到相同專案上。

      選項修補程式的根是任何所選資源,必須套用到相同資源上。
  6. 按一下完成
  7. 針對適用於正在修正的專案,轉送修補程式。

如果要套用修補程式:

  1. 選取修補程式在其上產生的資源。這個資源應包含與在其上產生修補程式的清單相同的檔案修訂。
  2. 從蹦現功能表中,選取團隊>套用修補程式...。「資源修補程式」精靈將會開啟。
  3. 指出修補程式位於何處:
    1. 檔案 - 修補程式在本端檔案系統上的檔案中。請輸入到檔案的完整路徑,或是使用瀏覽... 按鈕來尋找檔案。
    2. 剪貼簿 - 修補程式在剪貼簿上。警告:使用檔案型修補程式比較安全。如果使用剪貼簿, 但是修補程式是在不同的平台上產生(亦即 Linux 對 Windows),則可能無法正確處理指令行結尾。
    3. 工作區 - 修補程式已儲存在工作區的其他位置。
    下一步來查看套用修補程式的效果。
  4. 選用步驟您必須有根在專案或選項層次的修補程式,這個步驟才適用 - 根在工作區的修補程式會自動進行到「修補程式預覽」頁面。 在「修補程式目標規格」頁面中,您應該選取要作為修補程式根的資源。
  5. 修補程式預覽頁面會顯示修補程式是否能套用到工作區中的檔案。 頂端窗格會顯示修補程式所包含的變更清單。 如果您在樹狀結構中選取葉節點項目, 則底端窗格會以易讀的並列呈現方式顯示修補程式檔(在修補程式術語中又稱為 'hunk')的一部分。附註:在套用 hunk 之後,底端窗格不會顯示資源在工作區中的外觀預覽。 它只顯示修補程式檔的內容。
    1. 已勾選的項目表示修補程式(或 hunk)可順利套用至工作區資源。 您可以取消勾選修補程式或個別的 hunk 來加以排除。
    2. 紅色驚嘆符號表示修補程式或 hunk 有問題。
      如果修補程式的格式不正確,或是在修補程式中產生的一或多個檔案的修訂與該修補程式所套用的修訂不符,就會發生這個問題。
      失敗的原因會記載於括弧中。

      為了能順利套用完整的修補程式,您必須除去問題(紅色驚嘆號), 並取得在每一處所勾選的項目,方法是調整這個精靈頁面中的選項(請參閱以下的「選項」)。

  6. 如果一切都沒有問題,請按一下完成來套用修補程式。現在,工作區將會包含修補程式所修改的每一個檔案的送出變更。

套用修補程式的選項

為取得修補程式檔的順利相符項目,您有下列選項:
  1. 回到「資源修補程式」精靈的第一頁, 選取應套用修補程式的正確資源。
  2. 如果儲存在修補程式檔中的路徑名稱的共用字首與您現行工作區中的路徑名稱不符, 您可以「忽略前置路徑名稱區段」。
  3. 使用「忽略空格」選項,使相符的程序獨立於修補程式檔與您工作區中的檔案之間的空格差異。
  4. 調整「最大 fuzz 因素」(修補程式術語)。 這個因素決定了當尋找相符項時,會忽略環境定義的頂端和底端中的多少行。 預設值是 2。
  5. 對已套用到您工作區的修補程式檔,使用「反轉修補程式」選項。復原或重做修補程式時,這個選項也非常有用。
  6. 對於「工作區」修補程式,請利用「重設修補程式目標」,選取工作區中的另一個專案來套用修補程式變更。 如果要執行這個動作,請在頂端窗格中選取一個專案,按一下「重設修補程式目標」按鈕。 這會啟動一個對話框,其中含有工作區中所有可用專案的清單。 請選取一個專案,按一下「確定」;修補程式變更會套用到您的所選專案上。

相關概念
使用 CVS 的團隊程式設計

相關作業
比較資源

參考資訊
CVS