SVN Merge не сливается - PullRequest
       51

SVN Merge не сливается

0 голосов
/ 29 февраля 2012

Я пытаюсь объединить некоторые исправления из магистрали в ветку.Когда я сравниваю trunk/foo.py и branches/feature/foo.py, я вижу различия.Тем не менее, когда я запускаю svn merge https://<svn server>/trunk/foo.py foo.py, никакие изменения не объединяются.Повторная попытка с параметром --force также не имеет никакого эффекта.Похоже, что SVN считает, что копия ветви функций foo.py является последней версией.Как мне убедить SVN иначе?

РЕДАКТИРОВАТЬ: Мой клиент Subversion - svn версия 1.6.16 (Linux).На сервере работает trac, версия 0.12.

EDIT2: Версия сервера Subversion - 1.6.9.Благодаря hasienda в комментариях за указание, что trac и subversion не обязательно коррелируют.

Ответы [ 3 ]

2 голосов
/ 29 февраля 2012

Я бы начал с;

  • Являются ли файлы соединительных линий и филиалов отправленными в SVN?Слияние не может произойти, если файлы не находятся в хранилище.
  • Сравните svn info <trunk>/foo.py и svn <branch>/foo.py;Проверьте последние Измененные Rev & Date, если SVN говорит, что это один и тот же файл, слияния не будет.

Вы можете проверить Расширенное слияние для получения дополнительной информации.

0 голосов
/ 29 февраля 2012

Всякий раз, когда что-то в Subversion ведет себя неожиданно или кажется более сложным, чем должно быть, мое общее правило заключается в том, чтобы взять свежую рабочую копию в новом чистом каталоге и попробовать ее снова без локальных изменений. Это, как правило, исключает ряд тонких проблем, которые трудно обнаружить.

Кроме того, выполните svn diff <server>/branches/this_branch <server>/trunk, чтобы убедиться, что Subversion считает, что есть изменения для слияния. Использование двух путей к хранилищу устранит любые возможные проблемы с вашей рабочей копией. Если указанная выше команда diff дает вам другие результаты, когда вы меняете URL-адрес ветви на путь к своему WC, вероятно, проблема в вашей рабочей копии.

Вы также можете выполнить слияние исключительно в хранилище, указав два полных URL-адреса для команды merge. Если вы идете по этому пути, я настоятельно рекомендую использовать параметр --dry-run для предварительного просмотра слияния, прежде чем сделать его официальным.

Кроме того, есть ли причина, по которой вы объединяете, используя конкретные имена файлов, а не просто объединяете весь /trunk со своей веткой? Обычно я вижу гораздо меньше проблем при объединении целых ревизий в ветку, а не в конкретные файлы.

0 голосов
/ 29 февраля 2012

Я не уверен, какую версию Subversion вы используете, но отслеживание слияний не было полностью реализовано до 1,5, я думаю.

...