tags:

views:

89

answers:

1

I understand how to remove an entire changeset from history but it's not clear how to remove a subset instead.

For example, how do I remove all DLL files from an existing changeset while leaving the source-code alone?

+6  A: 

Because the revision ids (e.g. a8d7641f...) are based on a hash of the changeset, it's not really possible to remove a subset of a changeset from history.

However, it is possible to create a new repo with a parallel history, except for a certain set of files, by using the Convert extension. You'll be converting a Mercurial repo to a Mercurial repo, using the filemap to exclude the files you don't want by adding excludes. This will create a new, unrelated repository, which means that any clones people have won't be able to pull from it any more, and will have to re-clone from this new repo.

tghw