Added more VCSs to the delete-commit notes in interfaces/README.
authorW. Trevor King <wking@drexel.edu>
Mon, 20 Jul 2009 16:15:13 +0000 (12:15 -0400)
committerW. Trevor King <wking@drexel.edu>
Mon, 20 Jul 2009 16:15:13 +0000 (12:15 -0400)
interfaces/README

index 3eb42044234c6a9225b9fcfac922fa3bfae3e0fe..4d745807be3b14c2440649c7f60ec813058bf156 100644 (file)
@@ -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.