From 6c8a35eef432e041e3e6e224405b189f3557e635 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Mon, 20 Jul 2009 12:15:13 -0400 Subject: Added more VCSs to the delete-commit notes in interfaces/README. --- interfaces/README | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) (limited to 'interfaces/README') 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 ..-1 --onto before:XYZ . + + arch: + bzr: bzr rebase -r ..-1 --onto before:XYZ . (requires bzr-rebase plugin, note, you have to increment XYZ by hand for , 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. -- cgit