obliterate functionality?

Paul Moore p.f.moore at gmail.com
Wed Mar 19 04:18:30 CDT 2008


On 19/03/2008, Martin Geisler <mg at daimi.au.dk> wrote:
> "Paul Moore" <p.f.moore at gmail.com> writes:
>  > This thread has resulted in an awful lot of absolute statements.
>  > Things are not really so black and white.
>  >
>  > Of course it's possible to get people to delete copies of a
>  > repository. You just ask them.
>
>
> Of course! That is easy to do with Mercurial too: you simply strip
>  away the offending changesets on all your clones and ask people to do
>  the same.

Thanks. I apologise if I sounded grumpy, it was getting late last
night and I was struggling to see the technical content through the
philosophy. My problem, not anyone else's.

Could I ask, at a technical level, if I have a file XXX in my
repository, maybe added a few changes ago (possibly lots, on the case
of the FreeBSD guys, but they can probably speak for themselves), how
would I remove that file from my repository?

1. What commands would I use? hg strip was mentioned, but that looks
like it would also remove any other unrelated changes made after the
addition, so presumably I'd need to do some cleanup as well - how
would I do that? Another option mentioned was hg convert, presumably
I'd use a filemap to exclude the offending file, is there anything
else I'd need to do (for example, if my repository was a private copy
of a public project and I wanted to continue pulling after fixing my
mistake)?

2. What implications might there be? For example, I mention above the
case of a private copy of a public repository. Would I break the
relationship between the two? Specifically, can it be made to *only*
change the hashes of changesets from the introduction of file XXX
onwards?

Maybe a wiki page explaining the options for this type of operation
(with all the warnings and caveats) would help stop the question
coming up repeatedly.

Paul.


More information about the Mercurial mailing list