Конфликт дерева SVN полностью разрушил мой код в затмении - PullRequest
2 голосов
/ 16 ноября 2010

Я работаю в Eclipse, используя Subclipse (клиент SVN), и некоторое время я работал над своим проектом, в процессе которого я изменил имя пакета java. Когда я попытался зафиксировать SVN, он сказал мне, что у меня конфликт дерева. Я открыл конфликты и, конечно же, столкнулся с конфликтом с новым именем пакета, оставил выбор по умолчанию, который что-то говорил о слиянии, и нажал ok.

Теперь во всем моем коде есть такие вещи

<<<<<<< .working
        getProviders();

=======
>>>>>>> .merge-right.r44

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

Кроме того, теперь у меня есть все эти новые файлы, названные как Constants.java.merge-right.r43, где «Constants.java» - это настоящий файл, а «Constants.java.merge-right.r43» - какой-то новый файл. .

Что я могу сделать, чтобы устранить эту проблему с конфликтом деревьев?

Ответы [ 3 ]

2 голосов
/ 16 ноября 2010

Найти все конфликты слияния , обозначенные

<<<<<<< .working
  <your code>
=======
  <their code>
>>>>>>> .merge-right

частей и проверьте, какой код является правильным кодом (или комбинацией обеих частей). Сохраните / измените этот код и удалите индикаторы конфликта <, = и > строки.

Как вы заметили, существует несколько версий файлов, которые имеют конфликты:

  • Версия этих файлов .mine - это версия, которую у вас есть
  • .merge-right.r43 - это новая версия сервера
  • .merge-right.rXX (где XX <43) - это старая версия сервера, которую вы использовали для создания своей собственной версии. </li>

После того, как вы исправили рабочую версию, вам нужно использовать svn resolved <filename>, чтобы сообщить SVN, что вы решили конфликт слияния. После разрешения всех конфликтов вы можете снова зафиксировать свой код.

Для получения дополнительной информации читайте: Как разрешать конфликты Subversion

0 голосов
/ 16 ноября 2010

Прежде всего, вы должны рассмотреть возможность использования блокировок в следующий раз: -)

Во-вторых, вы можете щелкнуть правой кнопкой мыши файл и сказать, команда, Марк решен затем добавленные файлы будут удалены, но вам придется редактировать файл .java вручную. Или вы используете инструмент слияния, как WinMerge.

0 голосов
/ 16 ноября 2010

Вы должны использовать свои глубокие знания кода, чтобы решить для каждого элемента <<< === >>>, что на самом деле должно стоять на своем месте. Это может быть верхняя часть, это может быть нижняя часть, это может быть какая-то комбинация обоих, или это может быть что-то совсем другое. Только вы знаете. За каждую такую ​​<<< === >>> вещь ...

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

...