Можно ли редактировать резюме после коммита с помощью TortoiseHg? - PullRequest
15 голосов
/ 18 августа 2010

Иногда я добавляю некоторый код в репозиторий, добавляю комментарий / сводку, затем читаю сводку и понимаю, что допустил ошибку или должен был включить немного больше информации.Можно ли редактировать резюме после коммита в TortoiseHg?Я использую версию 1.1

Ответы [ 7 ]

10 голосов
/ 10 февраля 2011

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

Когда патчи создаются, они сохраняются в папке .hg / patches в вашем репозитории, и вы можете редактировать их (включая сообщение о фиксации), прежде чем повторно их применять.

  • Включены расширения Mercurial Queues (MQ)
  • Щелкните правой кнопкой мыши и выберите Импортировать редакцию в MQ для каждого набора изменений, чтобы преобразовать их в исправления в очереди исправлений
  • Включить окно очереди исправлений из меню просмотра
  • Выберите стрелку Не применять все исправления в очереди исправлений, чтобы убрать наборы изменений
  • Редактирование файлов исправлений в .hg / patches
  • Выбрать Применить все патчи
  • Щелкните правой кнопкой мыши патч и выберите Завершить применено , чтобы закрыть очередь
7 голосов
/ 18 августа 2010

Если это последний коммит, вы можете нажать кнопку «Отменить» в диалоге фиксации (это интерфейс hg rollback), а затем снова зафиксировать те же файлы с новым сообщением. Если это коммит в середине дерева, вам нужно использовать расширение mq, чтобы удалить все последующие коммиты и повторно применить их. И если коммит с неверной сводкой помещается в публичный репозиторий, вы должны принять это и согласиться с этим, потому что вы не должны изменять опубликованные коммиты.

6 голосов
/ 31 августа 2010

Фил - я отправлю тот же ответ, который я только что опубликовал на этот вопрос (заданный после вашего):

Один из подходящих способов сделать это - использовать histedit.Histedit позволяет вам удалять, изменять, комбинировать или иным образом редактировать ваши предыдущие коммиты.

Histedit не поставляется с Mercurial и его нельзя использовать с TortoiseHg, но использование командной строки очень просто:

> hg histedit <rev>

где - ревизия, к которой вы хотите изменить комментарий.Histedit сгенерирует список наборов изменений и покажет вам их SHA1.Помимо каждого набора изменений есть слово, указывающее, что будет делать histedit с каждым набором изменений после закрытия текстового окна.Рядом с набором изменений, который вы хотите изменить - замените «pick» на «edit».Закройте текстовое окно и затем выполните эту команду:

> hg histedit --continue

, и появится другое текстовое окно, содержащее сообщение журнала.Измените сообщение на то, что вы хотите.Вы можете сделать это для нескольких наборов изменений за один раз, при условии, что файлы еще не были переданы.Это довольно тривиальное использование histedit, более сложное - объединение коммитов или удаление части какого-либо коммита.

3 голосов
/ 31 августа 2010

Судя по ответам .. итоговый ответ:

Да , возможно, если последнее действие было совершением рассматриваемой ревизии (в этом случаевыполнить команду rollback ) и

No , это невозможно, не из коробки (без расширения mq и большого количества ворчаний),если рассматриваемая ревизия уже была отправлена ​​или были сделаны последующие проверки.

Я отправляю этот ответ, потому что другие ответы не допускают «нет», только «если».:) Не стесняйтесь голосовать, я просто хотел изложить здесь выводы.

2 голосов
/ 15 мая 2012

рт. Ст. 2.2 только что добавила git -подобную --amend опцию.(См. Примечания к выпуску hg 2.2 .)

Так что вы можете сделать это в командной строке:

hg commit --amend

См. Также Mercurial: как исправитьпоследний коммит?

Я так и не понял, как это сделать в TortoiseHg.

1 голос
/ 27 марта 2013

TortoiseHG до тех пор, пока вы не нажали:

Отметьте последнюю ревизию (которая должна быть изменена),

нажмите зеленую галочку сверху, как если бы вы хотели зафиксировать.

Откройте треугольник меню справа от кнопки «Подтвердить» с правой стороны и выберите «изменить текущую версию» вместо «Подтвердить изменения».

Здесь вы находитесь.

1 голос
/ 18 августа 2010

Если вы зафиксировали, но не нажали, вы можете откатить последний коммит, используя

hg rollback

Я не уверен, что эта функция реализована в TortoiseHG, но вы всегда можете открыть консоль, перейдитеСделайте репо и наберите эту команду самостоятельно.

...