Я преобразовал репозиторий Subversion в Mercurial несколько месяцев назад, и в итоге я оставил два бессмысленных пробела в моей истории изменений. Я' м пытаюсь выяснить, могу ли я просто сращивать пробелы, но мне не удалось получить инструменты, которые бы делали именно то, что я хочу.
Я реорганизовал репозиторий Subversion дважды в первые дни проекта: сначала преобразовать корень одного проекта в макет ствола / веток / тегов, а затем добавить второй связанный проект во вторую корневую папку с его собственными стволами / ветками / тегами.
К тому времени, когда я решил переключиться на Mercurial там не велось каких-либо значительных разработок за пределами основного первоначального проекта. Мне удалось использовать утилиты преобразования Mercurial и сопоставление путей для повторной сборки единого разумного ствола в новом репозитории Mercurial, по крайней мере, я так думал.
Теперь я понимаю, что у меня есть две дополнительные головки, каждая из которых соответствует тому, где по существу история изменений начинается сначала:
r0 ... r16 | (r17) r18 ... r61 | (r62) r63 ... tip
Результаты двух ревизий после разрывов, r17 и r62, идентичны по содержанию соответствующей ревизии до разрывов - они полностью состоят из операций добавления файлов с точно таким же содержимым, что и предыдущие ревизии. Значимые изменения начинаются только в следующих ревизиях (r18 и r63 соответственно).
Я испортил расширение Mercurial Transplant, пытаясь объединить r17 и r62, но в итоге оно конкатенировало объединенные наборы изменений до самого конца. кончик ветки по умолчанию (на данный момент r405).
Эти лишние головы на самом деле не мешают моей деятельности по разработке, поэтому я отпустил ее на некоторое время. Что заставляет меня решить эту проблему, так это то, что MercurialEclipse жалуется на эти лишние головы каждый раз, когда я извлекаю данные из своего удаленного репозитория.
Кто-нибудь может дать совет, как к этому подойти? Я просто неправильно понимаю флаги команд или использую не тот инструмент? Следует ли мне использовать вместо этого расширение Rebase? А как насчет какого-то процесса дамп-редактирование, дамп-файл-перезагрузка, который мы все использовали с Subversion?
Хотя я опубликовал проект на своем сервере разработки, существует только пара клонов, поэтому уничтожьте эти копии и повторное клонирование не должно иметь большого значения.