2016-06-19 2 views
3

Hg имеет новую функцию Changeset Evolution и родственное расширение Evolve.Как «GC» или «strip» скрытые эволюционные изменения в Hg?

Это довольно прохладно, потому что многие операции «переписать» теперь перемещаются в DAG (например, Git) - больше не требуется патч/линеаризация с MQ или полками! Он также избегает мучительно-медленных на больших репозитариях отдельных полос, которые ранее требовались для исправления, rebase, histedit и т. Д.

Однако после периода времени и множества локальных переписаний может накапливаться «значительное число» наборов изменений которые становятся скрытыми/помеченными устареванием.

Это то время, и есть много ревизий было бы неплохо, чтобы больше иметь (на всех):

  • Есть хороший/одобренный метод раздеться скрытым/obsolesced изменения из локального хранилища Hg ?

«Сравнимая» операция в Git будет GC, которая превращается в чернослив.

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

ответ

3

Простой способ безопасно избавиться от устаревших ревизий (ну, как безопасные, как hg strip может быть), чтобы использовать extinct() revset, то есть:

hg strip --hidden -r 'extinct()' 

Вымерших Изменения являются те, которые являются устаревшими, а также только имеют устаревшие потомки (т.е. нет живых изменений, которые все еще зависят от них).

Обратите внимание, что, если дисковое пространство не становится дефицитным, не должно быть необходимости избавляться от этих наборов изменений.

+1

Если у кого-то проблемы с этим на окнах: замените одинарные кавычки двойными кавычками, то есть «->» – ARF