aboutsummaryrefslogtreecommitdiffstats
path: root/interfaces/README
diff options
context:
space:
mode:
Diffstat (limited to 'interfaces/README')
-rw-r--r--interfaces/README34
1 files changed, 34 insertions, 0 deletions
diff --git a/interfaces/README b/interfaces/README
new file mode 100644
index 0000000..4d74580
--- /dev/null
+++ b/interfaces/README
@@ -0,0 +1,34 @@
+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:
+
+ 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 <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".)
+ 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.