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

StackOverflow https://stackoverflow.com/questions/2021095

  •  19-09-2019
  •  | 
  •  

Вопрос

Недавно я столкнулся с очень странным поведением subversion.

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

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

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

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

Это было полезно?

Решение

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

Другие советы

~/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'

Надеюсь, это поможет

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

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

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

svn update --accept theirs-full

svn resolve --accept theirs-full <pathname>

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

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

svn resolve  --accept=working <pathname>

ТЕПЕРЬ рекурсивно верните все "рабочие" изменения.Это отменило все мои локальные изменения.

svn revert -R .

Вернуться к нормальной жизни, без ошибок:

svn update

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top