aboutsummaryrefslogblamecommitdiffstats
path: root/doc/SPAM
blob: 4d745807be3b14c2440649c7f60ec813058bf156 (plain) (tree)
1
2
3
4
5
6
7
8
9



                                      


                                                                    
 
                                             






                                     
                                                 


                                                        

                                                                     







                                                                                     

                                                                     

                                                                 
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.