This patch series supports for only outputing the "objects" (OID) with a new option names `--oid-only`. Changes with the first patch are : 1. Three commits are squashed to 1 commit (Peff's advice) 2. The tests issues (Đoàn Trần Công Danh's advice) 3. Use `OPT_CMDMODE()` for mutually exclusive control (Ævar Arnfjörð Bjarmason's advice) Some discussions are not included in Patch 2 : 1. `git ls-tree --long --name-only` and `git ls-tree --long --oid-only` which is arguably a bug (Peff's advice) 2. Support `--format` for `git-ls-tree` (Ævar Arnfjörð Bjarmason's advice) The reason why these 2 discussions not included is I'm not sure whether I should continue on the current patchset or start a new one. And for the second, I think current implementation is clear and simple to use, meeting the needs of the moment. Maybe I will to support `--format` option, but before that, I'm appreciate if there are more suggestions appear. Thanks. Teng Long (1): ls-tree.c: support `--oid-only` option for "git-ls-tree" Documentation/git-ls-tree.txt | 8 +++++-- builtin/ls-tree.c | 27 ++++++++++++++++------- t/t3104-ls-tree-oid.sh | 40 +++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 10 deletions(-) create mode 100755 t/t3104-ls-tree-oid.sh Range-diff against v1: 1: c4479178d7 < -: ---------- ls-tree.c: support `--oid-only` option for "git-ls-tree" 2: 853ebbcf88 < -: ---------- t3104: add related tests for `--oid-only` option 3: 33c68c1f11 < -: ---------- git-ls-tree.txt: description of the 'oid-only' option -: ---------- > 1: 8b68568d6c ls-tree.c: support `--oid-only` option for "git-ls-tree" -- 2.33.1.10.g1f74a882e4