Можно ли создать исправление в Eclipse из изменений, которые уже были зафиксированы? - PullRequest
14 голосов
/ 17 ноября 2009

Я использовал функцию «Создать патч» в Eclipse для создания патчей для незафиксированных изменений. Я ищу способ создания исправлений в Eclipse для изменений, которые уже были внесены в VCS.

Если я что-то пропустил, я не думаю, что это возможно, но есть ли плагин, который добавляет эту возможность? например что позволяет вам выбрать две версии в представлении «История» и создать между ними патч или сравнить две ветви, а также создать патч из результатов в представлении «Синхронизировать»?

Я счастлив, создавая такие патчи из командной строки, но ищу способ упростить / интегрировать процесс, если это возможно.

Спасибо за любую помощь.

Обновление: если какие-либо предложения относятся к конкретной системе контроля версий, меня особенно интересуют CVS, SVN и Mercurial. Еще раз спасибо.

Ответы [ 6 ]

9 голосов
/ 17 ноября 2009

С помощью subclipse вы можете выбрать две ревизии каталога в представлении истории, сравнить их и сохранить патч как единую разницу.

6 голосов
/ 30 мая 2013

Я только что сделал патч SVN после коммита! :)

  • Войти в "SVN Repository"
  • Перейти в корень проекта.
  • Нажмите «Сравнить»
  • Выберите "Unified diff to output file"
  • Нажмите «Выбрать» и выберите имя и местоположение файла
  • Нажмите «ОК»
4 голосов
/ 27 сентября 2012

Я провел несколько обширных исследований ... и обнаружил, что нет способа использовать реальный редактор сравнения Eclipse для создания файла .patch на основании различий в разделе «Локальная история».

Я собираюсь создать новый запрос для этого.

2 голосов
/ 11 декабря 2014

Это можно сделать с помощью перспективы «SVN Repository explorer».

  • Перейдите к корневому элементу, который вы хотите сравнить (обычно это к стволовой папке)
  • Показать "Просмотр истории" (если еще не отображено)
  • Выберите две ревизии в «Истории»
  • Щелкните правой кнопкой мыши одну из двух ревизий и выберите «Создать исправление ...» в контекстном меню.
0 голосов
/ 20 марта 2013

Когда я не смог сделать это в Eclipse (мне нужно было работать только с CVS), я попробовал другое доступное программное обеспечение и обнаружил, что SmartCVS может это сделать. Однако эта функция доступна только в платной версии Pro и требует немного времени (по сравнению с медленным сравнением), когда у вас больше кода.

Я хотел бы знать о каком-либо программном обеспечении с открытым исходным кодом с этой возможностью, если кто-то знает об этом. Спасибо

0 голосов
/ 11 января 2013

Согласно другим ответам, нет, в настоящее время это невозможно.

Но пока, вот ручной обходной путь с SVN в качестве примера (я думаю, что другие VCS позволят очень похожие сравнения):

  • Создать второе рабочее пространство Eclipse; Рабочая область 2.
  • Убедитесь, что в Workspace 2 есть правильный код для «цели» слияния, а в исходной Workspace 1 есть код, из которого вы забыли взять патч.
  • Вручную сравнивайте Workspace 1 и 2, используя инструмент слияния, способный сравнивать каталоги (В Windows мне нравится Araxis Merge, но WinMerge тоже работает).
  • Откройте каждый файл и убедитесь, что в нем есть только ваши изменения. Если есть другие изменения, вам нужно будет перенести каждую из ваших измененных строк поперек, если никто другой не изменил целевой файл, вы можете скопировать весь файл через.
  • Синхронизируйте Workspace 2 (но не регистрируйтесь!), Чтобы вы могли видеть изменения, которые у вас сейчас есть.
  • В рабочей области 1 откройте «Перспектива изучения репозитория SVN»
  • Щелкните правой кнопкой мыши папку, в которой был зарегистрирован код (возможно, что-то под "ветками" или "стволом") -> "Сравнить ...", и он должен был уже ввести номер ревизии только за до Ваш чек.
  • Теперь вы можете видеть изменения кода, который вы зарегистрировали (который вы забыли взять патч) с версией до того, как вы ее зарегистрировали.
  • Рабочие пространства 1 и 2 должны открываться бок о бок и визуально запускать каждый измененный файл, чтобы убедиться, что они совпадают со всеми, начиная с 1, теперь появляется в 2.

Очень, очень утомительно, но все изменения должны быть приняты.

...