diff options
Diffstat (limited to 'interfaces')
-rw-r--r-- | interfaces/README | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/interfaces/README b/interfaces/README index 3eb4204..4d74580 100644 --- a/interfaces/README +++ b/interfaces/README @@ -1,16 +1,34 @@ -Note for public interfaces that commit after every change: +Removing spam commits from the history +====================================== + +arch bzr darcs git hg none In the case that some spam or inappropriate comment makes its way through you interface, you can remove the offending commit XYZ with: + If the offending commit is the last commit: - bzr: bzr uncommit && bzr revert - git: git reset --hard HEAD^ - other VCSs? + + 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: - bzr: bzr rebase -r <XYZ+1>..-1 --onto before:XYZ . + + arch: + bzr: bzr rebase -r <XYZ+1>..-1 --onto before:XYZ . (requires bzr-rebase plugin, note, you have to increment XYZ by hand for <XYZ+1>, because bzr does not support "after:XYZ".) - git: git rebase --onto XYZ~1 XYZ - other VCSs? + darcs: darcs obliterate --matches 'name XYZ' + git: git rebase --onto XYZ~1 XYZ + hg: -not-supported- + (From http://hgbook.red-bean.com/read/finding-and-fixing-mistakes.html#id394667 + "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") + 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. |