Разрешение конфликта субклипса - PullRequest
32 голосов
/ 08 октября 2009

Я и мой друг используем Flex Builder (на основе Eclipse) с Subclipse для проекта.

Перед фиксацией я всегда обновляюсь, но иногда не могу зафиксировать из-за конфликтов. Затем я использую Team-> Synchronize with Repository, и он показывает справа от самого репозитория, а слева - мою текущую рабочую копию. Он имеет кнопку для копирования из всех не конфликтующих справа налево (от последнего хранилища до моей рабочей копии). Но есть все еще противоречивые линии.

Иногда я просто хочу скопировать слева направо, но для этого нет кнопки (я имею в виду перезапись строк файла репозитория моими строками). После копирования не конфликтующих частей справа налево я просто хочу зафиксировать левую сторону (я хочу перезаписать и зафиксировать мой окончательный файл в хранилище). Я не могу совершить из-за этих проблем конфликта. Тогда мой друг может использовать команду «Заменить на -> Последний из репозитория», чтобы получить последнюю перезаписанную версию.

Документация Subclipse слабая. Я не смог найти хорошего руководства в Интернете. Не могли бы вы объяснить пошаговое разрешение конфликтов для такого манекена, как я? Видео, показывающее шаги или инопланетную технологию, чтобы быстро это исправить, будет в порядке. Есть ли лучшее (более простое) решение для управления исходным кодом для Eclipse?

(я использую подклип 1.4)

Ответы [ 4 ]

53 голосов
/ 09 октября 2009

Да, вы правы. Для этого нет кнопки. в Diff View (Side-by-Side View) элементы красного цвета находятся в конфликте. Они не могут быть автоматически объединены. Вы должны просмотреть конфликтующий элемент и вручную устранить его, скопировав / отредактировав конфликтующий код.

После фиксации или обновления из репозитория (Синхронизация с репозиторием) в представлении консоли вы увидите, что некоторые элементы находятся в конфликте. Когда вы посмотрите на этот файл в Package, вы увидите 3 файла прямо рядом с вашим исходным файлом:

myfile.txt (original file)
myfile.txt.mine
myfile.txt.r3293 
myfile.txt.r3501

Щелкните правой кнопкой мыши по исходному файлу и выберите «Команда» -> «Редактировать конфликт». В предоставленном Diff View отредактируйте файл слева, чтобы он соответствовал желаемому конечному результату. (т. е. вы можете захотеть сохранить некоторые из ваших изменений и скопировать новое обновление из ревизии в SVN, отменить все изменения и сохранить только ваши изменения и т. д.) После того как вы закончите, сохраните файл. Снова щелкните правой кнопкой мыши по исходному файлу и выберите «Команда» -> «Отметить повторно».

Вы увидите, что файлы добавления 3 исчезают. Теперь вы можете «безопасно» зафиксировать свою работу.

Нет простого способа сделать это, поскольку SVN не может решить, какой вариант лучше всего возникает в случае возникновения такого конфликта.

11 голосов
/ 14 сентября 2012

Я знаю, что эта ветка старая, но если кто-то ищет обновленный ответ, мой опыт может помочь.
Я использую Subclipse 1.8. Если щелкнуть правой кнопкой мыши по исходному файлу и выбрать «Отметить решено ...», у вас будет несколько вариантов, среди прочего, принять локальный файл или базовый файл в качестве правильной версии. Вы можете сэкономить время с помощью этих опций.

4 голосов
/ 10 сентября 2013

Я не могу найти «Mark Resolved», поэтому вместо того, чтобы вручную удалить сгенерированные файлы, я щелкнул «Mark as Merged».

0 голосов
/ 05 марта 2017

Выполните следующие шаги:

  • Скопируйте свои последние рабочие обновления в безопасное место.

  • Выберите файл, который имеет конфликты .. щелкните правой кнопкой мыши> выберите заменить на >> Выбрать последний из репозитория.

  • Затем вернитесь к сохраненной рабочей копии и вручную замените текущее содержимое файла (которое было перезаписано на предыдущем шаге) на ваше.

  • Затем из команды выберите Commit ... Таким образом, конфликты должны быть разрешены, и вы сохранили свои последние обновления в репозитории SVN.

...