Re: [PATCH] git show <tree>: show mode and hash, and handle -r
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Oct 31, 2008, 21:40 UTC
- Message-ID
- <alpine.DEB.1.00.0810312236490.22125@pacific.mpi-cbg.de.mpi-cbg.de>
- In-Reply-To
- <7vk5bo8y3m.fsf@gitster.siamese.dyndns.org>
Hi,
On Fri, 31 Oct 2008, Junio C Hamano wrote:
Show 17 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: > > > On Thu, 30 Oct 2008, Junio C Hamano wrote: > > > >> I wonder if it would help breaking down cmd_log_init() a bit like this. > > > > Sorry, I am quite busy (this is the first time I am able to check my > > mail since the GitTogether), so I cannot look at that in detail. > > > > However, I strongly expect your suggestion not to help: for showing > > commits, we _want_ recursive to be the default. And switching that on > > devoids us from being able to DIFF_OPT_TST(.., RECURSIVE) to detect if > > the user said '-r' _explicitely_. > > You can turn on recursive unconditionally for the normal "show > committish" case, and check for explicit "-r" for "show treeish" that > was bolted-on much later, can't you?
No, I can't, because cmd_show() uses setup_revisions() (actually, this is called by cmd_log_init()) not only to parse the command line arguments, but also the objects to show.
The only way I could imagine this working is to turn _off_ FORMAT_PATCH, do the parsing, then check if RECURSIVE was set, then turn _on_ FORMAT_PATCH and call diff_setup_done().
But that feels just as awful.
Ciao, Dscho