Jeff King <peff@xxxxxxxx> writes: > That is an interesting direction. In practice I guess you might want to > expand trees (to show their contents) or perhaps commits (to traverse > history and/or look at their trees). And we already have tools to do > that. > > So for example you can already do: > > git ls-tree --format='%(objectname) %(objectmode)' HEAD > > Or if you wanted to mix-and-match with other cat-file placeholders, you > can do: > > git ls-tree --format='%(objectname) %(objectmode)' HEAD | > git cat-file --batch-check='%(objectname) %(deltabase) %(rest)' > > That is a little less efficient (we look up the object twice), but once > you are working with hex object ids it is not too bad (cat-file is > heavily optimized here). Of course in the long run I think we should > move to a future where the formatting code is shared, and you can just > ask ls-tree for deltabase if you want to. I was imagining more about a use case "cat-file --batch" was originally designed for---having a long-running single process and ask any and all questions you have about various objects in the object database by interacting with it. So "yes, ls-tree can already give us that information", while it is true, shoots at a different direction from what I had in mind. > The strategy so far has been making sure cat-file can efficiently take > in the output of these other tools to further describe objects. But > moving towards a unified output formatting model would be even better, I > think. In the meantime, I think cat-file learning %(objectmode) makes > sense for single names (rather than listing trees), and fortunately it > uses the same (obvious) name that ls-tree does, so we won't have a > problem unifying them later. Yes, enriching the output format side is an orthogonal issue from the input side, and the %(objectmode) thing that gives a piece of information that is additionally available on top of the various pieces of information about the object itself does make sense. > The patch itself looked reasonable to me, modulo the comments you > already made. > > -Peff