2013-08-21 6 views
0

Как известно, TortoiseSVN создает svn:mergeinfo как свойство папки, если слияние выполняется на этом уровне папки. Это может быть верхняя папка (например, trunk) или какая-либо подпапка. Я всегда думал, что было нормально сливаться на уровне подпапков, так как svn:mergeinfo в подпапках будет использоваться при слиянии на уровне верхней папки. Я думаю, что в целом это работало и в прошлом, и до сегодняшнего дня, когда я увидел случай, который я не мог объяснить.Как использовать mergeinfo подпапки при слиянии на уровне верхней папки?

Я видел слияние на суб уровне папок из ветви к стволу, и я мог видеть в этой ревизии в svn:mergeinfo собственность на этой подпапке в стволе, а также.

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

Я не мог объяснить, что я увидел здесь. Может ли кто-нибудь пролить свет на это? Я использую последнюю версию TortoiseSVN 1.8.1. Раньше я использовал TortoiseSVN 1.7 и ниже. Была ли последняя версия TortoiseSVN изменена для этого намеренно или я что-то пропустил?

ответ

2
  1. Не используйте трюки, которые вы не понимаете полностью
  2. Не используйте трюки, когда они не нужны (поддерево сливает является обязательным в редких, особых случаях только)
  3. Читайте соответствующую часть ("Subtree Слияния и Subtree Mergeinfo" тема) из SVN Bookмягко, медленно, без спешки

и теперь, соображения относительно вашего вопроса:

  • Когда вы объединить некоторые изменения в поддереве, в ничего не значит для родителей - потому что для родителей любого уровня эти изменения не слившиеся (даже если у них нет каких-либо объектов за пределами поддерева)
  • Mergeinfo поддерева, используемого только для избежания дублирования слияния в этом поддереве (не выше или ниже), когда такая же ревизия слилась позже с некоторым родителем (и перенесена в слияние-корень родителя, когда такие слияния с пересекающимися ревизия (в поддереве и родительских слияниях))