Меркуриальный:Удалить набор изменений из удаленной ветки

StackOverflow https://stackoverflow.com/questions/907133

Вопрос

Есть ли способ удалить из удаленного набора изменений или удалить весь набор изменений?Я случайно нажал .war файл в удаленный репозиторий, и я хочу его удалить.

Это было полезно?

Решение 3

Я использовал расширение hg mqueue для редактирования истории.Кажется, это сработало.Спасибо всем.

Другие советы

Mercurial очень старается обеспечить безопасность ваших данных, поэтому вы, как правило, не можете изменить историю.

При этом существует множество расширений для Mercurial, которые в любом случае позволяют довольно легко изменять историю.Eсть страница в вики об истории редактирования.На этой странице также объясняются последствия.

В вашем конкретном случае вы должны спросить себя, извлекли ли уже другие ваши изменения?Если это так, то даже если вы удалите его, он все равно будет существовать в своих клонах, и вам, возможно, будет лучше признать ошибку.

Если вы решите удалить его, я предлагаю использовать 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 предлагает вам пакет (резервную копию) после удаления, и это действительно так. нет засчитывать в свою квоту.Причина, по которой это происходит, заключается только в том, что мы не сделали недействительным ключ кэша, указывающий, сколько места вы используете.

Это ошибка в нашей системе, и она будет исправлена.А пока будьте уверены, что набор изменений был удален, а резервная копия бесплатна :-)

У меня был аналогичный случай, когда я хотел удаленно удалить набор изменений объединенной ветки «A» из ветки «Dev» с помощью TortoiseHg:

  1. Создайте ветку AA из родительской ветки ветки A;его происхождение.
  2. Объедините A с AA (рабочим каталогом) и убедитесь, что эта опция:Установлен флажок «Отменить все изменения из другой ревизии».
  3. Объединить AA с веткой Dev (с сообщением о фиксации, указывающим, что изменения в ветке A были удалены).

Вы увидите, что изменений ветки А больше нет в Dev.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top