Как пакетно переписать историю в Mercurial

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

Я знаю, что это переписывает историю, создаст проблемы, если будут клоны, и изменит идентификаторы коммитов.

Какой лучший способ сделать это?

2 ответа

Решение

Использование hg export -g -o <outfile>, процесс outfile с любым инструментом, который вам нравится, и повторно импортируйте с hg import <outfile>,

  1. Самый простой способ: MQ

Короче:

  • qimport -r REV
  • qrefresh (-u для пользователя, -m | -l для фиксации сообщения)
  • qfinish + qdelete

с (вероятно) восстановлением правильного порядка наборов изменений (не могу вспомнить, где qfinished cset появится в DAG)

  1. Двухступенчатый (с хитростями и ограничениями) способ
    • Переписать авторов с помощью Convert Extension (Mercurial-> Mercurial преобразование) с помощью --authormap (нужны уникальные авторы)
    • Изменить коммит-сообщения с помощью histedit
Другие вопросы по тегам