***************** Dealing with spam ***************** In the case that some spam or inappropriate comment makes its way through you interface, you can (sometimes) remove the offending commit ``XYZ``. If the offending commit is the last commit ========================================== +-------+----------------------------+ | arch | | +-------+----------------------------+ | bzr | bzr uncommit && bzr revert | +-------+----------------------------+ | darcs | darcs obliterate --last=1 | +-------+----------------------------+ | git | git reset --hard HEAD^ | +-------+----------------------------+ | hg | hg rollback && hg revert | +-------+----------------------------+ If the offending commit is not the last commit ============================================== +----------+-----------------------------------------------+ | arch | | +----------+-----------------------------------------------+ | bzr [#]_ | bzr rebase -r ..-1 --onto before:XYZ . | +----------+-----------------------------------------------+ | darcs | darcs obliterate --matches 'name XYZ' | +----------+-----------------------------------------------+ | git | git rebase --onto XYZ~1 XYZ | +----------+-----------------------------------------------+ | hg [#]_ | | +----------+-----------------------------------------------+ .. [#] Requires the ```bzr-rebase`` plugin`_. Note, you have to increment ``XYZ`` by hand for ````, because ``bzr`` does not support ``after:XYZ``. .. [#] From `Mercurial: The Definitive Guide`: "Mercurial also does not provide a way to make a file or changeset completely disappear from history, because there is no way to enforce its disappearance" .. _bzr-rebase plugin: http://wiki.bazaar.canonical.com/Rebase .. _Mercurial: The Definitive Guide: http://hgbook.red-bean.com/read/finding-and-fixing-mistakes.html#id394667 Warnings about changing history =============================== Note that all of these *change the repo history* , so only do this on your interface-specific repo before it interacts with any other repo. Otherwise, you'll have to survive by cherry-picking only the good commits.