Подтвердить что ты не робот

Как разрешить конфликт слияния с свойствами SVN?

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

В отличие от конфликтов слияния файлов, один файл создается в каталоге под названием "dir_conflicts.prej", который второй разработчик должен прочитать и вручную исправить. Обычно то, что я делаю, возвращает все мои изменения в локальную копию, а затем повторно устанавливает эти свойства вручную с информацией в файле dir_conflicts.prej. Однако это довольно громоздко, когда вы имеете дело с большим списком URL-адресов в свойстве svn: externals, как и многие из наших проектов.

Там должен быть лучший способ сделать это - кто-нибудь знает, как?

4b9b3361

Ответ 1

Просто быстрое обновление после некоторых дополнительных исследований - невозможно легко слить свойства SVN. Мой изначально описанный метод (возврат, слияние данных из файлов .prej, propset, re-commit) представляется лучшим способом справиться с этим типом проблемы.

Ответ 2

Тем временем это возможно в Eclipse + Subclipse (Indigo), используя функцию

Team- > Изменить конфликты свойств

(просто попытался с конфликтующими свойствами svn: ignore)

Эта функция открывает диалоговое окно, в котором отображаются как версии свойств (локальные, так и репозитарии), где вы можете скопировать и вставить, а затем разрешить конфликт, используя Team- > Mark Resolution.

Ответ 3

У меня была та же проблема.

Я попытался использовать Team- > Edit Property Conflicts, но мой STS получил повешенное и не ответил, поэтому я принудительно закрыл.

Можно решить с помощью TortoiseSVN

Вот как я разрешил

  • выберите папку, в которой находится dir_conflicts.prej
  • щелкните правой кнопкой мыши TortoiseSVN → Resolve...
  • Затем он попросит разрешить конфликт свойств
  • Разрешить и сохранить

Ответ 4

Я бы хотел предложить более надежное решение, но по моему опыту в настоящее время невозможно объединить свойства svn с помощью TortoiseSVN. См. http://svn.haxx.se/tsvn/archive-2008-09/0212.shtml.

Ответ 5

Вы имеете в виду конфликт слияния при фиксации/обновлении или объединении ветвей?

SVN Book довольно ясно о свойствах svn: ignore, в частности:

Subversion не предполагает, что каждый файл или подкаталог в рабочей копии каталог предназначен для версии контроль. Ресурсы должны быть явно размещен под управлением Subversion использование импорта svn или svn команды.

...

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

Ответ 6

Чтобы быть ясным, SVN, похоже, использует файл dir_conflicts.prej, чтобы получить тот факт, что в каталоге есть конфликт. Если вы намерены вручную устранить конфликт, вы можете просто удалить файл dir_conflicts.prej, а затем вручную установить свойства svn по своему усмотрению. (Конечно, убедитесь, что вы получили то, что вам нужно из файла .prej, прежде чем удалять его!)

Ответ 7

У меня был подобный конфликт. Я открыл dir_conflicts.prej в текстовом редакторе и увидел, что svn ignore list был изменен. К счастью, содержимое списка было одинаковым, изменилось только упорядочение. Поэтому в TortoiseSVN 1.9.3 я просто щелкаю правой кнопкой мыши по папке, затем TortoiseSVN -> Resolve.... И конфликт был исправлен.