Вопрос

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

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

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

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

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

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

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

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

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

Это было полезно?

Решение

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

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...

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

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). Я вижу то же самое явление.

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top