Ответ 1
Я использовал расширение hg mqueue для редактирования истории. Кажется, что это сработало. Спасибо всем.
Есть ли способ удалить a из удаленного набора изменений или удалить весь набор изменений?
Я случайно нажал файл .war
на удаленное репо, и я хочу его удалить.
Я использовал расширение hg mqueue для редактирования истории. Кажется, что это сработало. Спасибо всем.
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 недавно добавила функциональность полосы в свой веб-интерфейс. Найдите "Управление репозитариями" в разделе "Админ".
Bitbucket предлагает вам пакет (резервное копирование) при удалении, и это означает не против вашей квоты. Причина, по которой это делается, заключается только в том, что мы не сделали недействительным ключ кэша, указав, сколько места вы используете.
Это ошибка в нашей системе и будет исправлена. До тех пор будьте уверены, что набор изменений удален, а резервная копия бесплатна: -)
У меня был аналогичный случай, когда я хочу удаленно удалять ветвь с измененной ветвью "A" из ветки "Dev" с помощью TortoiseHg:
Вы увидите, что изменения в ветке A больше не существуют в Dev.