Mercurial очень старается сохранить ваши данные в безопасности, поэтому вы вообще не можете изменить историю.
При этом существует множество расширений для Mercurial, которые позволяют вам в любом случае довольно легко изменить историю. В вики есть страница об истории редактирования . На этой странице также объясняются последствия.
В вашем конкретном случае вы должны спросить себя, будут ли другие уже вытащить вашу ревизию? Если это так, то даже если вы удалите его, он все равно будет существовать в их клонах, и вам лучше принять ошибку.
Если вы решите удалить его, я предлагаю использовать hg clone
, чтобы получить копию без него. Это безопасный способ, поскольку он всегда оставляет за собой резервную копию. Если вы нажали [z]
в удаленном хранилище:
[x] --- [y] --- [z]
и теперь хотите удалить его, затем войдите на сервер и выполните
hg clone -r y repo repo-without-z
Тогда repo-without-z
будет содержать все изменения вплоть до [y]
- то есть [z]
будет удалено:
[x] --- [y]
Затем вы можете продолжить работу и добавить новую ревизию:
[x] --- [y] --- [w]
Если я уже вытащил набор изменений [z]
, а теперь потяну [w]
, я увижу две головы в хранилище:
[w]
/
[x] --- [y] --- [z]
Это не опасно само по себе - но люди могут быть удивлены. Если я удалю [z]
из своего клона, у меня будет тот же репозиторий, что и у вас. Но, как написано выше, это может быть нецелесообразно, если у вас много пользователей.
Вы также можете использовать расширение MQ до полоса , чтобы сдать набор на месте. Таким образом, вы не сделаете новый клон.
Наконец, если вы уверены, что отправка была самой последней операцией, выполненной на сервере, тогда hg rollback
можно использовать для удаления последней транзакции. Но не делайте этого, если вы единственный, кто может отправить в хранилище, иначе вы можете откатить другую транзакцию.
Если репозиторий включен Bitbucket , то вы не можете войти на сервер. Но Bitbucket недавно добавил функциональность полосы в свой веб-интерфейс. Найдите раздел «Управление хранилищем» в разделе «Администратор».