Problem: it would be nice to be able to drop history before a certain point and remove various branches or commits to save space and delete problematic material.
It is also important that we remember what we've deleted so we can avoid re-pulling it from people who've earlier pulled it from us.
Proposal: we can delete pieces of history by removing the deltas and recording a size of -1 in the index. This can be accomplished by a "punch" tool or command. Then we teach various things to behave or complain appropriately when they encounter punched versions.
To be done:
- teach revlog about punched revisions and fixing up deltas
- create punch command
- make sure pull works
- make sure checkout complains appropriately
- make sure annotate does something sensible
- make sure verify doesn't get too upset
Not to be confused with PartialClone, which trims the directory tree, not the history tree.