#svn
Вопрос:
Это меня уже давно беспокоит-как правильно разрешить конфликт слияния в свойствах SVN, установленных в каталоге? Допустим, например, есть два разработчика, работающих над проектом, в котором svn:ignore установлен в некотором каталоге. Если оба разработчика внесут изменения в это свойство, когда обновится второй, они увидят конфликт слияния.
В отличие от конфликтов слияния файлов, в каталоге под названием «dir_conflicts.prej» создается один файл, который второй разработчик должен прочитать и исправить вручную. Обычно в конечном итоге я возвращаю все свои изменения в локальную копию, а затем перенастраиваю эти свойства вручную с помощью информации в файле dir_conflicts.prej. Однако это довольно громоздко при работе с большим списком URL-адресов в свойстве svn:externals, как это используется во многих наших проектах.
Должен быть лучший способ сделать это-кто-нибудь знает, как это сделать?
Ответ №1:
Просто быстрое обновление после некоторых дополнительных исследований-невозможно легко объединить свойства SVN. Мой первоначально описанный метод (возврат, объединение данных из файлов .prej, набор реквизитов, повторная фиксация), по-видимому, является лучшим способом решения проблем такого типа.
Комментарии:
1. К сожалению, я должен 1 ответить на этот вопрос. Шахта имеет дело со свойством svn:externals и шаблоном в его использовании. Не самое подходящее место для вдавания в подробности, но я просто подумал, что все равно буду здесь ворчать.
Ответ №2:
В то же время это возможно в Eclipse Подклипсе (Индиго) с помощью функции
Команда->Редактирование конфликтов свойств
(только что попробовал с конфликтующими svn:игнорировать свойства)
Эта функция открывает диалоговое окно, в котором отображаются обе версии свойств (локальная и репозитория), где вы можете скопировать и вставить, а затем разрешить конфликт с помощью команды->Пометить Разрешен.
Ответ №3:
У меня была та же проблема.
Я попытался использовать команду->Редактировать конфликты свойств>, но мой STS повесился и не ответил, поэтому я был вынужден закрыть.
Это можно решить с помощью TortoiseSVN
Вот как я решил
- выберите папку, в которой
dir_conflicts.prej
находится - щелкните правой кнопкой мыши TortoiseSVN -> Разрешить…>
- Затем он попросит разрешить имущественный конфликт
- Решите и сохраните
Ответ №4:
Я хотел бы предложить более обнадеживающее решение, но, исходя из моего опыта, в настоящее время невозможно объединить свойства svn с помощью TortoiseSVN. Видишь http://svn.haxx.se/tsvn/archive-2008-09/0212.shtml.
Ответ №5:
Вы имеете в виду конфликт слияния при фиксации/обновлении или слиянии ветвей?
В книге SVN довольно ясно говорится о свойстве svn:игнорировать, в частности:
Subversion не предполагает, что каждый файл или подкаталог в каталоге рабочей копии предназначен для управления версиями. Ресурсы должны быть явно переданы под управление Subversion с помощью команд svn add или svn import.
…
Заставить каждого пользователя этого репозитория добавлять шаблоны для этих ресурсов в свои области конфигурации во время выполнения было бы не просто обременительно, но и может привести к конфликту с потребностями в конфигурации других рабочих копий, которые пользователь проверил.
Ответ №6:
Просто для ясности, SVN, похоже, использует файл dir_conflicts.prej для вывода факта наличия конфликта в каталоге. Если вы намерены вручную устранить конфликт, вы можете просто удалить файл dir_conflicts.prej, а затем вручную настроить свойства svn так, как вы хотите. (Конечно, убедитесь, что вы получили то, что вам нужно, из файла .prej, прежде чем удалять его!)
Ответ №7:
У меня был похожий конфликт. Я открыл dir_conflicts.prej
в текстовом редакторе и увидел, что текст svn ignore list
был изменен. К счастью, содержимое списка осталось прежним, изменился только порядок. Итак TortoiseSVN 1.9.3
, я просто щелкаю правой кнопкой мыши по папке TortoiseSVN -> Resolve...
. И конфликт был улажен.