obliterate functionality?
Theodore Tso
tytso at MIT.EDU
Wed Mar 19 10:06:33 CDT 2008
On Wed, Mar 19, 2008 at 10:00:32AM +0100, Adrian Buehlmann wrote:
> >
> > convert will do this today.
> >
>
> But this will invalidate a bunch of SHA-1 hashes, right? (Not just
> the obliterated ones).
>
> I was thinking about ways to not invalidate previously
> published hashes -- if that's possible.
You can't help invalidating all of the hashes *after* the fatal commit
containing the illegal material. But it is possible to keep all of
the hashes before the fatal commit. I would highly commend to people
the interface used by git:
http://www.kernel.org/pub/software/scm/git/docs/git-filter-branch.html
What this allows you to do is to pass in a shell script fragment, like
this:
git filter-branch --tree-filter 'rm -f drivers/sekrit_aacs_breaker.c' HEAD
This will remove the file "drivers/sekit_aacs_breaker.c" from all
commits in the repository. Of course, the hash for any commits which
end up getting modified by git-filter-branch will have new SHA-1 id's.
Ones before it will not.
It shouldn't be that hard for a Hg developer to code equivalent
functionality into Mercurial.
- Ted
More information about the Mercurial
mailing list