Обработка конфликтов в SVN с черепахой?

В любой момент, когда проблема возникает, как конфликт слияния или что-то подобное, это действительно замедляет меня.

Может кто-нибудь объяснить мне, как принудительно разрешать конфликты?

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

Когда я пошел на фиксацию, я получу ошибку конфликта. Файл, который он редактировал, больше не существует на моей рабочей копии. Как я могу сказать SVN просто бросить плакать о конфликте и заставить его принять мою рабочую копию (т.е. Переписать головную редакцию моей рабочей копией).

Ответ 1

При обновлении рабочей копии вы можете щелкнуть правой кнопкой мыши в списке журналов и выбрать способ разрешения конфликта:

  • разрешить использование редактора /TortoiseMerge (или любого другого слияния, который вы настроили)
  • разрешить использование "своих", то есть версию в репозитории
  • разрешить использование "mine", то есть вашу версию файла.

Это также работает при правильном удалении файлов - т.е. вам нужно удалить файл с помощью svn, если вы хотите фактически удалить его из репозитория. Если вы удалили файл по соображениям удобства, вы можете захотеть svn revert его перед обновлением, так как файл, отсутствующий в рабочей копии, также является измененным файлом (неудивительно).

Подводя итог: вы не можете сказать svn, чтобы "перестать плакать" и просто перезаписать свою рабочую копию. Это хорошая вещь. Вам нужно разрешить конфликт (что может означать просто перезапись текущего состояния), пометить затронутые файлы как разрешенные (svn resolved), а затем зафиксировать результат.

Ответ 2

Вот как я это сделал:

  • Щелкните правой кнопкой мыши папку "Решения", выберите "TortoiseSVN → Показать журнал".
  • Щелкните правой кнопкой мыши ревизию, которую вы хотите вернуть, выберите "Отменить изменения из этой версии"
  • Щелкните правой кнопкой мыши конфликтующие папки, выберите "Разрешено".
  • Зафиксируйте решение
  • Profit

Ответ 3

Лучший способ предотвратить это - обновить до того, как вы выполните Commit.

Ответ 4

Я бы сказал: лучший способ предотвратить это - обновить до вас... ИЗМЕНИТЬ файл. После того, как вы закончите с вашими изменениями, вы потеряете их, если вы обновите их до совершения!

Ответ 5

Здесь это: Если вы находитесь в двух панелях, вы можете редактировать файл только в правой панели (Mine). Чтобы применить изменения, сделанные в левом файле (Их), щелкните правой кнопкой мыши на измененных строках и выберите Контекстное меню → Использовать текстовый блок из "их" . Затем изменения в левом файле добавляются в правый файл.

Иногда вам действительно нужны оба текстовых блока, а контекстное меню также предлагает контекстное меню → Использовать оба текстовых блока (сначала это) и Контекстное меню → Использовать оба текстовых блока (это последнее).

Если вы находитесь в трех панельном представлении (иногда называемом представлением слияния), вы можете редактировать файл только в нижнем представлении (Объединенный). Как и в режиме с двумя панелями, вы можете щелкнуть правой кнопкой мыши по конфликтующим линиям и выбрать контекстное меню → Использовать текстовый блок из "их" или "Контекстное меню" → Использовать текстовый блок из "Мой" . Кроме того, если вы хотите оба блока, вы можете выбрать Контекстное меню → Использовать текстовый блок из "Мой" до "Их" или "Контекстное меню" → Использовать текстовый блок от "их" до "Мой" . В соответствии с выбранной вами командой изменения используются в результате объединенного файла.

Ссылка: https://tortoisesvn.net/docs/nightly/TortoiseMerge_en/tmerge-dug-conflicts.html