使用修補程式
修補程式可讓開發人員不用將成果儲存在儲存庫中,就可分享它。
當開發人員想要分送至透過儲存庫分享的專案,但是對儲存庫又沒有寫入權時,這項功能就非常有用。在此情況下,開發人員可以建立修補程式,然後以電子郵件將它寄給具有寫入權的開發人員,或是將它附加到專案所使用的錯誤報告系統中的一個錯誤,視專案所定義的程序而定。然後具有寫入權的開發人員就可套用修補程式至專案,並確認變更。
如果要從 CVS 專案建立修補程式:
- 選取包含要併入修補程式中的修正之資源。您可以選取在多個專案中的資源,或在任何層次的資源,因為當「建立修補程式」精靈執行預設模式時,它知道如何建立多專案的修補程式。
修補程式也應套用至它在其上產生的同一個檔案修訂,因此應採取一些步驟,確定修補程式套用至同一個資源清單(執行這個動作的最簡單方法是在版本的頂端建立修補程式)。
- 從蹦現功能表中,選取團隊 > 建立修補程式...。「建立修補程式」精靈將會開啟。
- 選擇儲存修補程式的位置:
- 儲存至剪貼簿 - 這會將修補程式置於剪貼簿上,使其可被貼到文字編輯器(如電子郵件程式)中。
- 儲存至檔案系統 - 這個選項會將修補程式置於本端檔案系統中的指定檔案中。
- 儲存在工作區 - 這個選項會將修補程式置於其中一個現有的工作台專案內的指定檔案中。
如果是小型的修補程式,則使用剪貼簿傳送修補程式可能較為合理,但是在大部分的情況下,最好是選擇使用本端檔案系統。
- 您可以展開「變更」窗格中所呈現的「資源」樹狀結構,以預覽和細部調整您的修補程式選項。
只有已勾選的元素會併入修補程式中。
按下一步來配置產生修補程式的方式。
- 選擇如何配置修補程式:
- Diff 輸出格式 - 容許選擇數個共用的 diff 輸出格式。一致是許多修補程式應用程式工具(包括 Eclipse)所使用的格式。用於 Context 和 Unified diff 的格式可套用至修補程式,即使針對 hunk(修補程式術語)提到的行號不正確也一樣。
在此情況下,當套用修補程式時,演算法會來回掃描一組符合 hunk 給定的環境定義的行號。
- 修補程式根 - 可讓您指定修補程式根所在的層次。
選項如下:工作區、專案和選項。
工作區可讓您將多個專案的資源併入修補程式中,它是預設選項。
「工作區」修補程式可以套用到工作區的任何資源上 - 它們所包含的資訊,足以讓「套用修補程式」精靈知道哪些資源需要修補。
專案修補程式的根在專案層次 - 這表示它們只能包含一個專案的資源,必須套用到相同專案上。
選項修補程式的根是任何所選資源,必須套用到相同資源上。
- 按一下完成。
- 針對適用於正在修正的專案,傳送修補程式。
如果要套用修補程式:
- 選取修補程式在其上產生的資源。這個資源應包含與在其上產生修補程式的清單相同的檔案修訂。
- 從蹦現功能表中,選取團隊 >套用修補程式...。這時會開啟「套用修補程式」精靈。
另一種作法是將修補程式內容複製到剪貼簿,然後選擇編輯 > 貼上,直接將它貼到「套件瀏覽器」視圖中。
在此情況下,您可以跳過下一步。
- 指出修補程式位於何處:
- 檔案 - 修補程式在本端檔案系統上的檔案中。請輸入到檔案的完整路徑,或是使用瀏覽... 按鈕來尋找檔案。
- 剪貼簿 - 修補程式在剪貼簿上。警告:使用檔案型修補程式比較安全。如果使用剪貼簿,但是修補程式是在不同的平台上產生(亦即 Linux 對 Windows),則可能無法正確處理指令行結尾。
- URL - 修補程式位於給定的 URL 之下。警告:請確定您輸入的 URL 有效並且包含適當的修補程式。否則,將無法套用它。此外請謹記,直接從 URL 套用修補程式可能需要一些時間。
- 工作區 - 修補程式已儲存在工作區的其他位置。
按下一步來查看套用修補程式的效果。
-
選用步驟:修補程式的起始位置必須位於專案或選項層次,這個步驟才適用 - 起始位置位於工作區的修補程式會自動進行到「修補程式預覽」頁面。
在「修補程式目標規格」頁面中,您應該選取要作為修補程式起始位置的資源。
- 修補程式預覽頁面會顯示修補程式是否能套用到工作區中的檔案。
頂端窗格會顯示修補程式所包含的變更清單。
頂端窗格有兩種項目類型:檔案變更和不相符修補程式區段(即修補程式術語中所謂的 'hunk')。
- 如果有一或多個修補程式區段可自動套用至檔案,所顯示的檔案將有一個送入的變更指示器。
您可以按兩下該檔案來檢查變更。
- 如果有一或多個 hunk 無法自動套用,則 hunk 項目將出現在頂端窗格成為該檔案的子項,紅色驚嘆號指出修補程式或 hunk 有問題。
您可以按兩下它來檢查 hunk。然後您可以手動將右窗格的 hunk 套用到左窗格的檔案。
從左窗格儲存會更新頂端窗格中的上層檔案項目,但不會修改磁碟上的檔案。
唯有按下「完成」時,才會修改磁碟上的檔案。
為了能順利套用完整的修補程式,您必須以下列方式除去問題(紅色驚嘆號):手動套用修補程式區段、從快速功能表中選取移除,將該修補程式區段排除在作業之外,或調整這個精靈頁面中的選項(請參閱以下的「選項」)。
- 如果一切都沒有問題,請按一下完成來套用修補程式。現在,工作區將會包含修補程式所修改的每一個檔案的送出變更。
可將修補程式與本端內容同步化,來套用修補程式
如果要與修補程式同步化,請執行下列動作:
-
從「團隊同步化」視景中的「同步化」
按鈕下拉功能表中,選取同步化... 動作。
-
從可能的同步化類型清單中選取與修補程式同步化,按下一步。
- 指出修補程式位於何處:
- 檔案 - 修補程式在本端檔案系統上的檔案中。請輸入到檔案的完整路徑,或是使用瀏覽... 按鈕來尋找檔案。
- 剪貼簿 - 修補程式在剪貼簿上。警告:使用檔案型修補程式比較安全。如果使用剪貼簿,但是修補程式是在不同的平台上產生(亦即 Linux 對 Windows),則可能無法正確處理指令行結尾。
- URL - 修補程式位於給定的 URL 之下。警告:請確定您輸入的 URL 有效並且包含適當的修補程式。否則,您無法套用修補程式。此外請謹記,直接從 URL 套用修補程式可能需要一些時間。
- 工作區 - 修補程式已儲存在工作區的其他位置。
按下一步來查看套用修補程式的效果。
-
選用步驟:修補程式的起始位置必須位於專案或選項層次,這個步驟才適用 - 起始位置位於工作區的修補程式會自動進行到「修補程式預覽」頁面。
在「修補程式目標規格」頁面中,您應該選取要作為修補程式根的資源。
-
選用步驟:只有在修補程式所參照的專案無法存取時,這個步驟才適用 - 如果修補程式中的所有專案皆存在於工作區中,並且已開啟,將會跳過這個頁面。在「無法存取的專案」頁面中,您可以開啟任何已關閉的專案。此外,也會顯示不存在之專案的相關詳細資料。已關閉或者不存在於工作區中的專案無法修補。
-
在最後一頁中,按一下完成,在「同步化」視圖中預覽修補程式的變更。
套用修補程式的選項
為取得修補程式檔的順利相符項,您有下列選項:
-
回到「套用修補程式」精靈的首頁,選取應套用修補程式的正確資源。
-
如果儲存在修補程式檔中的路徑名稱的共用字首與您現行工作區中的路徑名稱不符,您可以忽略前置路徑名稱區段。
-
使用忽略空格按鈕,讓比對程序不管修補程式檔與您工作區中檔案之間的空格差異。
-
調整模糊因素(修補程式術語)。這個因素指出要忽略的 hunk 環境定義行數。
如果模糊因素值為零,則所有行號都必須符合。
如果模糊因素大於零,例如 2,則會忽略 hunk 之前的最前面兩行環境定義行和 hunk 之後的最後面兩行環境定義行。
按一下猜測,以計算容許大部分 hunk 相符的模糊因素。
-
對已套用到您工作區的修補程式檔,使用反轉修補程式選項。復原或重做修補程式時,這個選項也非常有用。
-
對於「工作區」修補程式,您可以選取工作區中的另一個專案來套用修補程式變更。
如果要執行這個動作,請在頂端窗格中選取一個專案,並從快速功能表中選取移動。
這會啟動一個對話框,其中含有工作區中所有可用專案的清單。
請選取一個專案,按一下確定;修補程式變更會套用到您所選的專案上。
-
使用顯示已排除選項,以顯示您已選擇不要併入修補程式中的 hunk。
-
在與修補程式同步化時,「同步化」視圖的下拉功能表中會提供上述的選項。您也可以在可用的模型之間切換,來取得所要套用之變更的其他資訊。

使用 CVS 的團隊程式設計

比較資源
與儲存庫同步化

團隊
CVS