Разрешение конфликта деревьев

84

Как разрешить конфликт деревьев в текущем сценарии.

C:\DevBranch
C:\MyBranch

Обновил обе ветки. Отредактировал MyBranch, а затем вернул обратно. Теперь хочу объединить эти изменения в DevBranch. Когда я делаю слияние, я получаю "конфликты деревьев"

The last merge operation tried to add the file 'abc.def', but it was already added locally.

How do you want to resolve this conflict?
Keep the file from repository
Keep the local file

Как я могу решить?

coure2011
источник

Ответы:

168

Что вы можете сделать для разрешения своего конфликта?

svn resolve --accept working -R <path>

где <path>, где у вас есть конфликт (может быть корень вашего репо).

Пояснения:

  • resolveпросит svnразрешить конфликт
  • accept working указывает хранить ваши рабочие файлы
  • -R означает рекурсивный

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

РЕДАКТИРОВАТЬ:

Подводя итог сказанному в комментариях ниже:

  • <path>должен быть каталог в конфликте ( C:\DevBranch\в случае OP)
  • вполне вероятно, что источник конфликта
    • либо использование svn switchкоманды
    • или отметив Switch working copy to new branch/tagопцию при создании ветки
  • дополнительную информацию о конфликтах можно найти в специальном разделе документации Tortoise .
  • чтобы иметь возможность запускать команду, у вас должны быть установлены инструменты CLI вместе с Tortoise:

Клиентские инструменты командной строки

Янник Блондо
источник
какой должен быть путь? C: \ DevBranch или C: \ MyBranch?
coure2011
2
Так и должно быть C:\DevBranch. Кстати, вы использовали svn switchкоманду в одной из этих двух папок?
Янник Блондо
1
Думаю, при создании ветки я использовал «переключить рабочий каталог»
coure2011
@Luke Вы можете сделать это так, если вы установили инструменты CLI вместе с Tortoise. Просто cdв корень вашей рабочей копии и выполните svn resolve --accept working -R ./. Если вам нужна дополнительная информация о том, как сделать это с помощью Tortoise, вы можете проверить специальный раздел документации ... Надеюсь, это поможет!
Янник Блондо
0

Как правило, конфликты деревьев возникают при некоторой реструктуризации структуры папок в ветке. Вам нужно удалить папку конфликта и использовать svn cleanодин раз. Надеюсь, это разрешит ваш конфликт.

Уджвал Радж Шах
источник