SVN отмечает целые файлы как конфликтующие - PullRequest
5 голосов
/ 26 февраля 2009

Я новичок в SVN. После работы над веткой в ​​течение дня или около того я попытался объединить изменения из ствола в ветку:

svn merge svn://server/trunk

Проблема в том, что всякий раз, когда SVN встречает конфликтующий файл, он не может распознать построчное изменение и помечает всю строку как конфликтующую. Я экспериментировал с несколькими другими клиентами SVN, а также пытался переключать параметры конца строки и пробелов без какого-либо прогресса. Что я делаю неправильно? Я думаю, что это простейший случай слияния, поэтому я ожидаю, что он будет работать с большинством настроек Subversion по умолчанию, с любым клиентом и в любой версии SVN. Это какой-то известный улов новичка?

Клиент: 1.5.5 (SlikSvn: tag/1.5.5@34877) WIN32

Сервер: 1.4.6 (r28521), Windows

Редактировать

Основываясь на предложениях в комментариях и ответах ниже, я провел дополнительное исследование:

  1. Проблемные файлы: UTF8.

  2. У них нет свойств SVN.

  3. Команда "svn diff" правильно определяет различия.

Ответы [ 5 ]

5 голосов
/ 27 февраля 2009

Недавно мы столкнулись с этой проблемой и обнаружили, что это проблема с использованием сервера 1.4.x и клиента 1.5.x. В Subversion 1.5 реализовано более интеллектуальное слияние, но для использования этого преимущества необходимо, чтобы сервер и клиент работали с 1.5.

Мы обнаружили, что указание диапазона номеров ревизий, которые мы хотели объединить, дало ожидаемые результаты.

2 голосов
/ 27 февраля 2009

Я выбрал ответ Марка. Это просто для подведения итогов и предоставления более подробной информации. Моя проблема вызвана тем, что мы используем SVN 1.4, который не поддерживает более продвинутые функции слияния 1.5. Как указано в выбранном ответе, я обнаружил, что должен использовать следующий формат команды слияния SVN (в случае, если я хочу распространить изменения из транка в мою ветку):

svn merge svn://dpr/branches/abc@REV svn://dpr/trunk@REV

Я полагаю, что моя путаница была вызвана тем, что книга SVN и клиенты, которые я использовал, молча предполагали, что у меня уже работает 1.5, а примеры и методы слияния по умолчанию используют новые функции. Справедливости ради, во введении к разделу «Основное слияние» в книгах SVN упоминается об этом (что я заметил, только когда решил проблему).

0 голосов
/ 26 февраля 2009

Я не использовал SVN за тонну, и я использовал его только через плагин eclipse, но могут быть некоторые сценарии, когда вам просто нужно указать, какой случай использовать (ваш локальный или удаленный файл) , объединение набора непересекающихся исходящих и входящих изменений обычно не является проблемой, но если линия конфликтует с определенными типами изменений (в затмении она помечает всю строку / блок как красную), вам может потребоваться принять одну или другую, так как он, вероятно, не слится дальше сам по себе.

0 голосов
/ 26 февраля 2009

Проверьте свойство svn: mime-type в ваших файлах. Если такой набор свойств существует и его значение не начинается с 'text /', тогда Subversion обрабатывает эти файлы как двоичные, а не как текст.

Если ваши файлы закодированы в utf-16, Subversion также будет обрабатывать эти файлы как двоичные по умолчанию.

0 голосов
/ 26 февраля 2009

Вы пытались использовать TortoiseSVN ? Он поставляется в комплекте с ToroiseMerge, который я считаю неплохим слиянием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...