Mercurial построен на идее неизменной истории.Каждое изменение строго является добавлением нового набора изменений.Например, удаление чего-либо выполняется путем добавления обратного (с помощью команды backout
), чтобы у вас была запись как плохого кода, так и его удаления в истории (в отличие от отсутствия записи в истории).
Это модель ученого, пишущего в своем журнале на ручке на пронумерованных страницах, записывающего как успехи, так и неудачи.
При этом базовая ртутная функциональность не собирается создавать пересматриваемые сообщения коммита,даже если их никогда не подталкивали, потому что это идет вразрез с моделью.Однако есть и другие способы пересмотра кода, пока вы не будете довольны им.Вы можете использовать Mercurial Queues, которые являются изменяемыми наложениями, которые сами по себе могут быть неизменными.
Однако, если бы я был вами, я бы просто принял рабочий режим, который охватывает неизменяемость.Поместить идентификатор проблемы в фиксацию замечательно - просто продолжайте делать это и делайте любые обновления или исправления в последующих наборах изменений с тем же идентификатором в описании.
Тогда вы сможете сделать что-то вроде:
hg log --keyword Task34
, который мгновенно покажет вам все изменения, связанные с этим идентификатором задачи, и если некоторые из них «отменены предыдущей попыткой, сделав еще один удар с помощью модуля foobaz», это хорошая практика, а не недостаток.