Junio C Hamano <gitster@xxxxxxxxx> writes: > Jonathan Tan <jonathantanmy@xxxxxxxxxx> writes: > >> Adding "--objects" works, and all existing tests pass, except for the >> potential performance issue and the side effect that even fetching a >> reachable blob no longer works. This is due to a possible bug where a >> call like "git rev-list --objects $tree ^master" (where $tree is the >> tree object corresponding to master) prints out objects ... > > The "reachable from this, excluding what is reachable from that" > notation was originally designed to work only on commits, and I > wouldn't be surprised if "$tree ^master" did not work as you expect > in the current implementation. > > I agree that ideally it shouldn't show anything, but I suspect that > it would make it very expensive if done naively---we'd end up having > to call mark_tree_uninteresting() for all uninteresting commits, not > just for the commits at the edge of the DAG as we do right now. BTW, by "it would be expensive" I didn't mean "hence it shouldn't be done." Even though I do not know by how much expensive it would become, I think this approach is a lot better way going forward than punting and say "no, you cannot specify anything lower than commit." Thanks for looking into this.