Фиксации и слияния на подкаталогах SVN, которые рассматривают вредными?

Вам нужно будет указать, что именно у вас есть в Словаре данных, чтобы было легче увидеть, в чем вы ошибаетесь.

Используя предоставленную вами информацию, я предполагаю, что ваш словарь данных выглядит следующим образом?

<group name="NoMDEntryTypes" required="N">      
    </group>

Однако MDEntryType должен быть внутри повторяющейся группы NoMDEntryTypes, как показано ниже.

 <group name="NoMDEntryTypes" required="N">
            <field name="MDEntryType" required="N"/>
    </group>
11
задан Aziz Shaikh 11 October 2012 в 05:47
поделиться

4 ответа

Одно из возможных объяснений состоит в том, что вы можете забыть части набора изменений.

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

Например, если у вас есть такой коммит на транке:

r5 | rich | 2009-04-16 22:22:46 +0200 (Thu, 16 Apr 2009) | 2 lines
Changed paths:
   M /trunk/subdir1/main.c
   M /trunk/subdir2/main.c

Change some stuff

И затем вы извлекаете subdir1 из вашей ветви «stable», тогда вы можете объединить набор изменений r5 следующим образом:

$ svn co http://example.com/svn/branches/stable/subdir1
$ cd subdir1
$ svn merge -c 5 http://example.com/svn/trunk/subdir1 .
--- Merging r5 into '.':
U    main.c
$ svn ci -m"Merged r5 from trunk"

Но это будет объединять только половину ревизии 5. Еще хуже, если вы вернетесь и посмотрите журнал, он теперь покажет это:

$ svn log -g http://example.com/svn/
...
------------------------------------------------------------------------
r5 | rich | 2009-04-16 22:22:46 +0200 (Thu, 16 Apr 2009) | 2 lines
Changed paths:
   M /trunk/subdir1/main.c
   M /trunk/subdir2/main.c
Merged via: r6

Change some stuff

Таким образом, похоже, что вы объединили весь коммит, хотя на самом деле вы только что слили некоторые этого Конечно, r6 действительно показывает, что только один файл изменился в стабильной ветке.

------------------------------------------------------------------------
r6 | rich | 2009-04-16 22:28:16 +0200 (Thu, 16 Apr 2009) | 1 line
Changed paths:
   M /branches/stable/subdir2
   M /branches/stable/subdir2/main.c

Merge revision 5 from trunk

Кто-то должен помнить или замечать, эта только часть набора изменений была объединена, а остальное нужно сделать. Отказ от слияния подкаталогов позволяет избежать этой проблемы.

Бывают случаи, когда вы действительно не хотите объединять все предыдущие коммиты, и описанный выше сценарий - именно то, что вы намеревались сделать. В этом случае, вероятно, лучше добавить хорошее сообщение о коммите, описывающее ваши намерения.

14
ответ дан 3 December 2019 в 05:14
поделиться

Еще одной причиной этого может быть слияние только с корнем ограничивает количество свойств svn: mergeinfo, которые будут установлены для папок / файлов в вашем хранилище.

6
ответ дан 3 December 2019 в 05:14
поделиться

Для версий subversion до 1.5 слияние подкаталогов сделало последующие слияния остальной части дерева каталогов действительно сложными. Если вы объединили каталог, svn просто применил все изменения, сделанные в этом каталоге, к другой ветви. Если вы уже слили подкаталог, а затем попытались объединить основной каталог, все изменения в подкаталоге уже были в целевой ветви (так как вы слили их ранее). Svn теперь не знал, что эти изменения произошли в результате предыдущего слияния, он просто видел, что были некоторые вещи, которые «мешали», когда он пытался объединить подкаталог, что приводило к множеству конфликтов.

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

Фиксация подкаталогов не является проблемой. Для SVN это просто нормальная, глобальная ревизия хранилища. В этой версии будут только изменения в одном подкаталоге, но для SVN это все еще новая версия всего хранилища, как и любой другой коммит.

1
ответ дан 3 December 2019 в 05:14
поделиться

У фиксации не должно быть проблем, но при слияниях SVN отслеживает, что есть, а что нет, слияния.

Поэтому я предполагаю, что вы хотите объединить в корне, чтобы упростить будущие слияния (в отношении размер набора данных сравнивается SVN).

1
ответ дан 3 December 2019 в 05:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: