С «пуристической» точки зрения Mercurial Майк прав - выдвигаемые изменения находятся вне вашего контроля. Но на практике это зачастую слишком строгая точка зрения.
Вопреки тому, что сказал Майк, удаление уже выдвинутых наборов изменений может быть вариантом. Это зависит от того, есть ли у вас контроль над центральным репозиторием (чтобы удалить его тоже), а также от размера вашей команды / сообщества и от того, как оно организовано.
Если вы точно знаете, что никто еще не вытащил ваши плохие наборы изменений, просто удалите локальное и центральное репо - готово, история удалена.
Если есть шанс, что кто-то уже удалил ваши плохие ревизии, вы также должны удалить локальное и центральное репо, и вам нужно будет уведомить всех участников команды, которые хотят удалить плохие ревизии в их локальных репозиториях. репо (или переклонирование из удаленного центрального репо). Если повезет, все сделают то, что вы говорите. В противном случае наборы изменений рано или поздно снова окажутся в центральном репо.
Суть в том, что удаление может быть решением для таких случаев, как ваш - вы должны сбалансировать затраты (обременять свою команду дополнительной работой) и выгоду (чистая история).
Практический пример, когда выгода превышает стоимость, - это случайное добавление больших двоичных файлов. В этом случае, вероятно, каждый член команды предпочитает синхронное разделение, а не работать с взорванным репозиторием.
ОБНОВЛЕНИЕ: вы можете использовать обработчики на стороне сервера, чтобы предотвратить возвращение удаленных наборов изменений в центральный репозиторий - подробнее здесь.
03.02.2011