Странный вывод в окне журнала tortoisehg - PullRequest
4 голосов
/ 20 ноября 2008

У меня есть две ветви: основная (черная) и функциональная (желтая).

Как видите, поскольку ветвь функции была разветвленной, она постоянно обновлялась, извлекая изменения из main:

альтернативный текст http://azkotoki.org/images/stackoverflow/tgh-reintegrate1.gif

Когда я реинтегрирую ответвление функциональной ветви в основную, в окне журнала отображается этот ужасный график:

альтернативный текст http://azkotoki.org/images/stackoverflow/tgh-reintegrate2.gif

Показывает каждую точку слияния как новую ветвь, которая была слита с функциональной ветвью. Если бы у меня было несколько ветвей, это стало бы почти невозможно прочитать. Я также пробовал с hg view, и результаты еще более странные.

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

Я что-то не так делаю, сливаясь с веткой функций слишком много раз? Или я слишком многого ожидаю от окна журнала черепахи :)?

Заранее спасибо

Ответы [ 3 ]

4 голосов
/ 22 мая 2009

График выглядит так, поскольку ревизии упорядочены по номерам ревизий. Основной репозиторий имеет упорядоченные и пронумерованные ревизии:

0 Imported initial repo.
1 Trivial change to also echo b.
2 Added another echo for c.
3 Echo for d.
4 Echo for e.

Это отражает порядок, в котором наборы изменений были добавлены в хранилище. Репозиторий ветвей функций имеет следующий порядок:

0 Imported initial repo.
1 Trivial change to also echo b.
3 Added another echo for c.
4 Automatic merge...
5 Echo for d.
6 Automatic merge...
7 Echo for e.
8 Automatic merge...

Опять все хорошо. Но когда вы вытягиваете ветку объектов в основной репозиторий, добавляются только отсутствующие наборы изменений. Результат в основном таков:

0 Imported initial repo.
1 Trivial change to also echo b.
2 Added another echo for c.
3 Echo for d.
4 Echo for e.
5 Refactored echos to print.
6 Automatic merge...
7 Automatic merge...
8 Automatic merge...

и график отражает это.

Как вы заметили, с репозиторием все в порядке - это всего лишь артефакт того, как наборы изменений упорядочены на диске. Если вы хотите, вы можете поменять репозиторий с хорошим графиком на тот, что с уродливым графиком, поскольку теперь они содержат одинаковые наборы изменений. Просто не забудьте перенести все важные настройки из .hg/hgrc (скопируйте файл из клона с уродливым графиком).

Кстати, когда я смотрю на график в моем клоне http://hg.intevation.org/mercurial/crew/ (ветка разработки для Mercurial) и сравниваю его с графиком в свежем клоне https://www.mercurial -scm. org / repo / hg (основная ветка для Mercurial) вижу такое же явление.

1 голос
/ 26 августа 2011

Один из способов получить «более хороший» график - использовать TortoiseHg до версии 2.0, которая имела режим компактного графика. В этом режиме ваш второй репозиторий будет иметь только два столбца строк, аналогично тому, что на вашем первом скриншоте.

К сожалению, эта функция не была перенесена с GTK на Qt, поэтому ее нет в текущей версии (2.1.2) TortoiseHg.

0 голосов
/ 26 марта 2009

Если вы посмотрите поближе, вы увидите, что оба графика (почти) идентичны, но представление отличается. То, что выглядит как 3 разных ветви, на самом деле является одной веткой, но представлено немного по-другому.

Я написал "почти", потому что номера ревизий были переупорядочены. И это действительно странно ...

...