2008-09-30 3 views
40

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

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

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

ответ

11

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

+0

К сожалению, у меня +1 этот ответ. Mine имеет дело с собственностью svn: externals и anit-pattern в его использовании. Не подходящее место для подробностей, но я просто подумал, что я все равно поймаю. – FlipMcF 2013-03-07 20:25:55

1

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

+0

+1 для окончательного ссылки – Hobo 2009-07-24 16:17:16

1

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

SVN Book довольно четкое представление о SVN: игнорировать свойство, в частности:

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

...

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

3

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

Team-> Редактировать собственности Конфликты

(просто попытался с противоречивой СВН: игнорировать свойства)

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

0

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

0

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

3

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

Я пытался использовать Team-> Изменить собственности Конфликтов но мой STS был повешен и не ответил, следовательно, я вынужден близко.

можно решить с TortoiseSVN

Это, как я решил

  • выберите папку, в которой dir_conflicts.prej находится
  • правой кнопкой мыши TortoiseSVN -> Решить ...
  • Он попросит разрешить СОБСТВЕННОСТЬ конфликта
  • ли Resolve и сохранить
Смежные вопросы