Предположим, в хранилище 20 ревизий. Текущей версией записи является ревизия 10 , тогда как фактические локальные файлы основаны на последней ревизии 20 . Я не хочу переходить с ревизии 10 . Я хочу продолжить ревизию 20 .
В настоящее время я копирую все файлы из каталога ревизий, запускаю hg update -C (который обновляет номер ревизии), удаляет все файлы в каталоге репозитория, копирует все файлы обратно, затем совершить. Вы можете сказать, что это раздражает и тратит время. Есть ли способ только обновить номер ревизии, но не изменять какой-либо локальный файл?
Заранее спасибо.
РЕДАКТИРОВАТЬ : есть много вариантов использования (я в основном использую TortoiseHg).
1) Я по ошибке выбираю «Нет», когда мне предлагают удалить файлы из репозитория во время коммита. Я могу использовать полосу из mq, чтобы удалить ревизию, но это вернет все зафиксированные файлы. Вместо этого я хочу переопределить предыдущую ревизию, зафиксировать снова, а затем удалить нежелательную ревизию. Это может случиться с кем угодно в любое время, не только со мной, ни один раз.
2) У меня была машина для разработки A. Я запустил проект на ней и через несколько месяцев переключился на машину B. Код на A стареет, а код на B не передается, изменился. Если я хочу продолжить разработку на A, мне нужно скопировать код на A через Flash или по сети и т. Д. Теперь я хочу зафиксировать на A без разветвления (потому что код на A фактически основан на текущей подсказке). Это случается, может быть, реже, но все же не является проблемой «один раз», а более вероятно, когда участвует в большом проекте.
3) Хранилище имеет 2 ветви C и D. В нем примерно 2000 файлов. Текущий совет находится в C. Я хочу перезаписать некоторые файлы в D файлами с таким же именем в C (потому что C более реализован), сохраняя при этом другие файлы без изменений, а затем создать новый совет в D. У меня есть несколько вариантов. Я мог бы обновить до D, сравнить последнюю версию D с текущей подсказкой, внести изменения и зафиксировать. Обновление займет некоторое время, и сложность сравнения в значительной степени зависит от инструмента сравнения. Я также мог сначала сравнить, внести изменения, сделать резервную копию всего каталога, обновить его до D, а затем восстановить весь каталог. Это еще более громоздко. Но если бы я мог «переучиться» к D, мне просто нужно внести изменения и зафиксировать. Это не зависит от инструмента сравнения, потому что окно фиксации в TortoiseHg имеет список различий.
Там может быть больше вариантов использования, если вы хотите думать. Я надеюсь, что Mercurial предоставляет такую функцию «переопределения» (предположительно, новую опцию для обновления hg) или, по крайней мере, удобную альтернативу.