Как пакетно переписать историю в Mercurial
Я хотел бы пакетно отредактировать несколько коммитов, чтобы автоматически вносить изменения в автора и коммит сообщения (возможность применения нескольких регулярных выражений будет в порядке).
Я знаю, что это переписывает историю, создаст проблемы, если будут клоны, и изменит идентификаторы коммитов.
Какой лучший способ сделать это?
2 ответа
Решение
Использование hg export -g -o <outfile>
, процесс outfile
с любым инструментом, который вам нравится, и повторно импортируйте с hg import <outfile>
,
- Самый простой способ: MQ
Короче:
- qimport -r REV
- qrefresh (
-u
для пользователя,-m
|-l
для фиксации сообщения) - qfinish + qdelete
с (вероятно) восстановлением правильного порядка наборов изменений (не могу вспомнить, где qfinished cset появится в DAG)
- Двухступенчатый (с хитростями и ограничениями) способ
- Переписать авторов с помощью Convert Extension (Mercurial-> Mercurial преобразование) с помощью
--authormap
(нужны уникальные авторы) - Изменить коммит-сообщения с помощью histedit
- Переписать авторов с помощью Convert Extension (Mercurial-> Mercurial преобразование) с помощью