Как вырезать ртутный репозиторий из определенной ревизии / толчка - PullRequest
2 голосов
/ 24 сентября 2010

Я сломал некоторый код в моих последних 4-5 ревизиях / отправках в главный репозиторий.Сейчас я хочу полностью удалить эти нажатия и запустить HEAD моего хранилища с этого момента.Как я могу это сделать?В SVN есть команда dump, которая копирует весь репозиторий из одной ревизии в другую.Есть какая-то замена в Mercurial или как-то иначе?

Ответы [ 2 ]

4 голосов
/ 24 сентября 2010

Вы можете использовать расширение для преобразования , чтобы сделать это.
Хотя я не совсем понимаю, почему люди всегда хотят скрывать / удалять в своей истории VCS, что они допустили ошибку.Это не так критично, если вы исправите это в новой версии ...

2 голосов
/ 24 сентября 2010

Quardas, «полное удаление» не является частью словаря по умолчанию Mercurial. Это система, построенная на неизменной истории. Вы можете изменить то, о чем сожалеете, но не удалите это. Подумайте о том, как ученый из его / ее лаборатории пишет ручкой на пронумерованных страницах в журнале - вырывание страницы считается мошенничеством. Есть смысл в том, чтобы сохранить ваших слепых союзников и ошибки, хотя бы потому, что вы помните, что больше не пытались это делать.

Подумайте об использовании hg backout, который легко и автоматически добавляет инверсию набора изменений, тем самым полностью его отменяя, но сохраняя запись как набора изменений, так и его отмены.

Если вы действительно не можете купить эту концепцию, попробуйте заглянуть в clone -r. Это позволяет вам клонировать ваш репозиторий до определенной точки. Например:

hg clone -r -6 myrepo partial-myrepo
mv myrepo myrepo-with-stuff-I-regret
mv partial-myrepo myrepo

, который заменит ваше репо новой копией, в которой пропущены последние пять наборов изменений.

Существует множество других способов сделать то же самое, используя инструменты, которые не являются частью набора инструментов по умолчанию Mercurial (такие расширения, как histedit, strip, mercurial queues и т. Д.), Но лучше не удалять историю вообще и делать это без расширений, если вы делаете.

...