2009-11-17 27 views
12

我在Eclipse中使用了Create Patch功能來爲未提交的更改創建修補程序。我正在尋找一種在Eclipse中爲已經提交給VCS的更改創建補丁的方法。是否可以使用已經提交的更改在Eclipse中創建補丁?

除非我錯過了一些東西,我不認爲這是可能的,但有沒有插件可以增加這種功能?例如使您能夠在「歷史記錄」視圖中選擇兩個版本並在它們之間創建補丁或比較兩個分支並能夠從「同步」視圖的結果中創建補丁?

我很高興從命令行創建這樣的補丁,但我正在尋找一種方法來簡化/整合過程,如果可能的話。

感謝您的任何幫助。

更新:如果有任何建議是特定於特定的源代碼管理系統我特別感興趣的是CVS,SVN和Mercurial。再次感謝。

回答

8

使用subclipse,您可以在歷史視圖中選擇一個目錄的兩個修訂版,比較它們並將修補程序保存爲統一的差異。

+0

謝謝,我會檢查了這一點。 – mikej 2009-11-18 07:02:19

+1

所以你使用SVN?什麼是VCS? – 2009-11-18 08:03:04

+2

VCS =版本控制系統,CVS,SVN等的通用名稱。 – 2009-12-12 05:58:29

4

我做了一些廣泛的研究...我發現沒有辦法使用實際的Eclipse比較編輯器根據「本地歷史」部分中的差異生成.patch文件。

我將爲此創建一個新的功能請求。

+1

這是怎麼回事?在沒有「創建補丁」的情況下有「應用補丁...」令人生氣。我必須甩掉我的變化,而且我沒有任何幫助。 – badp 2015-04-01 08:47:20

+0

我不記得我是否曾經跟隨通並創建了HMM是前陣子 – 2015-09-11 13:09:52

0

根據其他答案,不,目前不可能。

但現在,這裏是一個手工作業,周圍SVN爲例(我想其他VCSS將允許非常類似的比較):

  • 創建第二個Eclipse工作區;工作區2.
  • 確保Workspace 2對於合併的「目標」以及原始工作區1具有正確的代碼,並且忘記了您從中取得補丁的代碼。
  • 使用能夠比較目錄的合併工具(在Windows上,我喜歡Araxis Merge,但WinMerge也可以),手動比較Workspace 1和2。
  • 打開每個文件並確保只有您的更改在其中,如果還有其他更改,則必須跨越每條更改的行,如果沒有其他人更改目標文件,則可以複製整個文件跨越。
  • 同步工作區2(但不檢入!),以便您可以看到您現在已經到達的更改。
  • 在工作區1中,打開「SVN Repository Exploring Perspective」
  • 右鍵單擊檢查代碼的文件夾(可能是「branches」或「trunk」下的某個文件夾) - >「比較...」已經在之前填寫了修訂號
  • 現在您可以在檢入之前看到您檢入的代碼(忘記帶補丁的代碼)與版本的更改。
  • 將工作區1和2並排打開,並可視化地運行每個更改的文件,以確保它們匹配1中的所有內容,現在顯示在2中。

非常,非常乏味,但它應該拿起所有的變化。

0

當我無法在Eclipse使這(我需要與CVS工作只),我嘗試使用其他軟件,發現SmartCVS可以做到這一點。但是,此功能僅在Pro付費版本中可用,並且當您有更多代碼時需要一些時間(比較慢)。

我想知道擁有這種能力的一些開源軟件,如果有人知道。由於

4

我只是做了之後提交補丁SVN! :)

  • 輸入 「SVN信息庫」
  • 轉到項目的根。
  • 點擊「比較」
  • 選擇「統一的diff輸出文件」
  • 點擊「選擇」,然後選擇文件
  • 單擊「確定」
+0

這爲我工作,但實際上是用鼠標右鍵單擊目錄,然後「用比較...」,然後在「科/標籤.. 。「,然後我在同一分支上選擇了前一版本,並選擇了」統一差異到輸出文件「選項 – oarevalo 2013-10-17 21:49:06

1

它的名稱和位置可以使用「SVN Repository explorer」視角來完成。

  • 導航至要比較的根元素(通常爲主幹文件夾)
  • 查看「歷史視圖」(如果尚未顯示)
  • 選擇從「歷史觀點」
  • 右兩個版本 - 點擊兩個修訂版中的一個,然後在上下文菜單中選擇「創建修補程序...」。
+0

您是在什麼版本的Eclipse上執行此操作的?我似乎無法找到開普勒的功能。 – Andrew 2016-10-19 16:25:42

+1

@Andrew:我目前正在使用Eclipse Luna,它運行良好。不過,我使用以前版本的Eclipse編寫了這個答案。不知道它是否是開普勒。可能是朱諾。 – Jidehem 2016-10-20 08:21:08

相關問題