Подтвердить что ты не робот

Не удается разрешить конфликт дерева с SVN

Недавно я встретил очень странное поведение подрывной деятельности.

Я только что объединил свою локальную копию ветки с удаленной ветвью. Все прошло гладко, но у меня есть один конфликт дерева (локальное удаление, удаленное обновление).

Хорошо, подумал я, соответствующим образом изменил рабочую копию и выполнил "svn resolve --accept = working -R.".

Subversion сообщила, что она разрешила мои проблемы, и "svn st" больше не показывал никаких проблем. Итак, я попытался зафиксировать, но svn сказал мне, что одна из внутренних папок (внутри моей противоречивой) устарела и предложила svn вверх, НО она заставила папку снова в конфликте!

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

4b9b3361

Ответ 1

Это может или не поможет, но иногда "svn cleanup" исправляет странные проблемы с метаданными. Если вы проверите чистую рабочую копию, имеет ли чистая копия такая же проблема? Если это так, то предыдущий ответ звучит как шаг в правильном направлении

Ответ 2

~/sandbox/jabira > svn resolve  --accept=theirs-full testClient/
svn: warning: Tree conflicts can only be resolved to 'working' state; 'testClient' not resolved

~/sandbox/jabira  > svn resolve  --accept=working testClient/
Resolved conflicted state of 'testClient'

Надеемся на эту помощь

Ответ 3

Вы можете использовать другой способ, чем команда разрешения svn:

  • Создайте патч конфликтующего файла. (или резервное копирование вашей версии конфликтующей папки с экспортом svn...)
  • Обновите свой репозиторий (обновление svn)
  • Применить ранее выполненный патч (или заменить конфликтный файл/папку резервной копией)
  • Зафиксировать изменение (svn commit)

Ответ 4

Вероятно, вы не обновляли свои папки, когда вы делали слияние, или был конфликт где-то до слияния. Чтобы исправить это, вам нужно будет вернуть свою сундук (целевую папку) в предыдущую ревизию. Затем запустите очистку в этой папке. Затем запустите очистку в папке ветки (исходная папка). Затем обновите обе папки снова. Если вы получаете строки красным цветом в любом рабочем процессе, вам нужно сначала вернуть эти файлы, а затем ввести их в состояние, в котором вы хотите. Затем обновите папки (да, еще раз). Наконец, снова выполните слияние.

Ответ 5

Это то, что сработало для меня, чтобы отказаться от всех локальных изменений и перейти с файлами из репозитория сервера:

svn update --accept theirs-full

svn resolve --accept theirs-full <pathname>

Появится это сообщение: W155027: конфликт дерева может быть разрешен только "работающим"

Неинтуитивный следующий шаг, но это фактически сокращает catch-22:

svn resolve  --accept=working <pathname>

СЕЙЧАС вернет все "рабочие" изменения рекурсивно. Это уменьшило все мои локальные изменения.

svn revert -R .

Возврат к нормальному состоянию без ошибок:

svn update