Junio C Hamano wrote: > Graft is a local matter, but that does not mean it should > introduce inconsistencies. It is a way to _locally_ change the > world view, and to give the consistent world view locally, not > only the commands you listed (fsck, prune, pack-objects) but > also log, rev-list and friends all should take grafts into > account, which is why losing B is the right thing to do if you > repack or prune. In your altered world, B is not part of any > remaining history. Here's my stance on it. Grafts should be a local matter. And they alter the world view, with a pronounciation on *view*. That's why I proposed that only log familiy of commands obey them[*]. And probably rev-list so that gitk et.al. have a way to obey them. And also the ref parser (so that master~20 is what it looks it is). Everything else should disregard grafts: repack, prune, fetch, <transfer>-pack, push etc. No nasty side effects anymore. No transfer of the grafts file needed. No clash when someone else has a different *view* of the world. Then the location of the file in .git/info/grafts is justified. If grafts continue to have the radical influence that they have now, then the grafts file is better located in .git/objects/info/grafts as part of the objects database. [*] ok, I originally also proposed the diff family, but that's likely not necessary. -- Hannes - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html