From 0cce2f8703c88a00c9c49d3b6e4a974bcd0f8fa8 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Sun, 19 Jul 2009 09:59:41 -0400 Subject: Added interfaces/README with commit-deletion notes. Up to now, my email interface never committed automatically, in order to avoid locking in inappropriate changes. However, with the ability to modify bug status, etc., it could be hard to determine the correct status with a single email's effects removed. In order to make that easier, I'm switching over to a "auto-commit after every user action" model, and I've looked up the incantations for commit deletion for bzr and git (the VCSs I use). These incantations are recorded in interfaces/README. Next up: add auto-commit functionality. --- interfaces/README | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 interfaces/README (limited to 'interfaces/README') diff --git a/interfaces/README b/interfaces/README new file mode 100644 index 0000000..3eb4204 --- /dev/null +++ b/interfaces/README @@ -0,0 +1,16 @@ +Note for public interfaces that commit after every change: + +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? + If the offending commit is not the last commit: + 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? +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. -- cgit 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