blob: 4d745807be3b14c2440649c7f60ec813058bf156 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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.
|