2014-01-29 4 views
2

Я проверил багажник и выполнил слияние из ветки в багажник. Теперь все изменения, сделанные в ветке, присутствуют в моей рабочей копии. Если я сделаю фиксацию на этой рабочей копии, есть ли способ идентифицировать позже, что это было слияние, а не как обычная checkout-modify-checkin. Я могу указать детали слияния в журнале, но мне интересно, имеет ли SVN некоторые методы для идентификации и отслеживания этого.Как захватить информацию об объединении svn

Я видел в других инструментах управления версиями, таких как прозрачный чемодан, в дереве версий будет входить цепочка слияния, для каждого слияния. Есть ли что-нибудь подобное (некоторый символ слияния или стрелка слияния) для SVN?

+0

'svn log -g' in/trunk? –

+0

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

+0

'svn log -g' показывает записи для объединенных записей, а также запись для пересмотра, которая объединила его. Поэтому скажите, что вы объединили r123, r124 и r126 с вашей ветки на магистраль в r129.Если вы запустите 'svn log -c 129 -g', вы получите журнал для r129, за которым следуют r123, r124 и r126. В объединенных версиях будет строка, подобная «Объединенная через: r129» или «Обратное объединение через: r129». Поэтому он не просто указывает вам на журнал, который вы пишете. –

ответ

2

Вы должны увидеть, что есть изменения в свойстве svn:mergeinfo на одном или нескольких путях. Это используется для track what was merged. Затем вы можете использовать команду svn mergeinfo, чтобы узнать, какие пути были объединены или могут быть объединены из ветви источника в другую ветвь. svn mergeinfo также может отображать несколько грубый график для слияния, если вы не передадите ему аргумент --show-revs в 1.8. Как уже упоминалось в его комментарии Dipu H, вы также можете увидеть объединенные версии с опцией -g на svn log.

На основании вашего тега кажется, что вы используете TortoiseSVN. Насколько я знаю, TortoiseSVN не имеет возможности визуализировать mergeinfo с помощью функции графика пересмотра, которую она имеет. Smart SVN является коммерческим клиентом Subversion, который has such a feature (полное раскрытие информации я работаю для компании, которая производит Smart SVN). Subclipse has such a feature, если вы используете Eclipse. Существует плагин для JetBrains IDEs as well.

Так что я уверен, что если вы обыскали, вы найдете что-то, что сработает для вас. Но я не знаю достаточно о вашей среде, чтобы указать вам в каком-либо конкретном направлении.

2

альтернатива методу Бена mergeinfo

Давайте проверять такой (тест) хранилище

enter image description here

с ответвлением и некоторыми перекрестными узлами сливает в процессе

Вход для отделения (ленивый журнал, без --stop-on-copy)

reading>svn log -g -q -v 
------------------------------------------------------------------------ 
r7 | Badger | 2014-01-30 13:51:41 +0600 (Чт, 30 янв 2014) 
Changed paths: 
    M /branches/reading/1.txt 
------------------------------------------------------------------------ 
r6 | Badger | 2014-01-30 13:50:34 +0600 (Чт, 30 янв 2014) 
Changed paths: 
    M /branches/reading 
    M /branches/reading/1.txt 
------------------------------------------------------------------------ 
r5 | Badger | 2014-01-30 13:43:45 +0600 (Чт, 30 янв 2014) 
Changed paths: 
    M /trunk/1.txt 
Merged via: r6 
------------------------------------------------------------------------ 
r4 | Badger | 2014-01-30 13:42:59 +0600 (Чт, 30 янв 2014) 
Changed paths: 
    M /branches/reading/1.txt 
------------------------------------------------------------------------ 
r3 | Badger | 2014-01-30 13:39:37 +0600 (Чт, 30 янв 2014) 
Changed paths: 
    A /branches/reading (from /trunk:2) 
------------------------------------------------------------------------ 
r2 | Badger | 2014-01-30 13:36:46 +0600 (Чт, 30 янв 2014) 
Changed paths: 
    A /trunk/1.txt 
------------------------------------------------------------------------ 
r1 | Badger | 2014-01-30 13:35:19 +0600 (Чт, 30 янв 2014) 
Changed paths: 
    A /branches 
    A /tags 
    A /trunk 
------------------------------------------------------------------------ 

Даже без лог-сообщения в r6 Merged via: r6 из r5 ясно сказано: r6 является mergeset, где ГОЛОВА соединительной линии (r5) были объединены в филиал

Log (соответствующая часть) для ствола

WC>svn log -g -q -v 
------------------------------------------------------------------------ 
r8 | Badger | 2014-01-30 13:56:09 +0600 (Чт, 30 янв 2014) 
Changed paths: 
    M /trunk 
    M /trunk/1.txt 
------------------------------------------------------------------------ 
r7 | Badger | 2014-01-30 13:51:41 +0600 (Чт, 30 янв 2014) 
Changed paths: 
    M /branches/reading/1.txt 
Merged via: r8 
------------------------------------------------------------------------ 
r6 | Badger | 2014-01-30 13:50:34 +0600 (Чт, 30 янв 2014) 
Changed paths: 
    M /branches/reading 
    M /branches/reading/1.txt 
Merged via: r8 
------------------------------------------------------------------------ 
r4 | Badger | 2014-01-30 13:42:59 +0600 (Чт, 30 янв 2014) 
Changed paths: 
    M /branches/reading/1.txt 
Merged via: r8 
------------------------------------------------------------------------ 
r3 | Badger | 2014-01-30 13:39:37 +0600 (Чт, 30 янв 2014) 
Changed paths: 
    A /branches/reading (from /trunk:2) 
Merged via: r8 
------------------------------------------------------------------------ 

Merged via: r8 в журнале записи для r3: r7 показать следующую MergePoint (в это время - от ветви к стволу)

Короче: mergeinfo показать , что был присоединен, журнал -g - , что и когда

Смежные вопросы