Я не думаю, что 'playskool' - хороший термин для описания Mercurial.Это крупный полнофункциональный DVCS, используемый Python, OpenOffice, Netbeans и многими другими проектами .«Playskool» подразумевает, что он не готов к использованию на производственном уровне или что это разбавленная версия чего-то другого.Оба не соответствуют действительности.Старайтесь не путать юзабилити с простотой или незначительностью.
Некоторые участники отметили, что по умолчанию Hg не поставляется с установленными расширениями, но поскольку расширения очень просты в установке, возможно, стоит знать, какие из них могут вызватьнекоторый "ущерб".Конечно, даже если причинен ущерб, распределенная природа Hg позволит вам удалить поврежденные наборы изменений и повторно вытащить с централизованного сервера (что-то вроде отрезания и повторного увеличения конечности, когда вы об этом думаете).
Я бы также различал Повреждения (повреждение хранилища или потеря данных) и Опасность (ловушка HG или неразумное действие - без потери данных).
Урон: Использование перебазирования может привести к серьезным конфликтам слияния, если вы пытаетесь перебазировать с revA на revB, и они значительно отличаются.В этих случаях Mercurial создаст файлы .diff, которые позволят вам самостоятельно обработать неудачные слияния.В этом случае объединение может быть сложным и данные могут быть потеряны.
Опасность: rebase изменяет хэш-идентификатор каждого перемещаемого набора изменений, что означает, что его не следует использовать после того, как набор изменений имееттолкнулКроме того, rebase будет применять наборы изменений к ветви по умолчанию, если вы не укажете иное с помощью --keep-branches
Урон: Хотя mq, вероятно, являетсяЛучшее расширение, Histedit все еще может быть использован для изменения, изменения или иного редактирования существующих наборов изменений.Использование edit
позволяет любому пользователю изменять ревизию, включая отмену всех изменений.Использование drop
позволяет полностью удалить наборы изменений.Обе эти операции могут привести к потере данных.
Опасность: Подобно перебазированию, histedit может изменить хэш-идентификатор набора изменений.
Урон: Mq - очень мощная и многогранная функция, поэтому урон, который может быть ей вызванразнообразен.mq strip
является простым примером потенциальной потери данных.
Опасность: снова , вызывает изменение идентификатора.
Как вы упомянули, эта операция может привести к некоторому повреждению.Текст справки лучше всего говорит:
Эту команду следует использовать с осторожностью.Существует только один уровень отката, и нет способа отменить откат.Он также восстановит состояние dirstate во время последней транзакции, потеряв при этом все изменения dirstate.
Решение?
Создание безопасного клона перед использованием любого из этих параметров должнопозволит вам преодолеть даже катастрофические повреждения.Положитесь на тот факт, что Hg является DVCS, чтобы всегда иметь копию репозитория, прежде чем пытаться что-нибудь сумасшедшее!