From: Jeff King Date: Wed, 26 Sep 2007 12:58:11 GMT Subject: Re: [PATCH] Add a --dateformat= option to git-for-each-ref Message-ID: <20070926125811.GC13739@coredump.intra.peff.net> In-Reply-To: <200709261009.18777.andyparkins@gmail.com> On Wed, Sep 26, 2007 at 10:09:18AM +0100, Andy Parkins wrote: > For example (I'm in BST, +0100 at present): > > $ git-for-each-ref --dateformat=normal --format='%(taggerdate)' refs/tags/v1.5.2 > Sun May 20 00:30:42 2007 -0700 > $ git-for-each-ref --dateformat=relative --format='%(taggerdate)' refs/tags/v1.5.2 > 4 months ago What if you want a format that contains two dates in different formats? Something like: $ git-for-each-ref --format='%(committerdate:relative) %(authordate:normal)' would be more flexible. Although perhaps that is a bit too unlikely to be concerned with implementing, giving options to substitutions seems like a sane way to implement these sorts of things (e.g., "%(objectsize:human)", "%(parent:1)", etc). > + if (!prefixcmp(arg, "--dateformat=")) { > + arg += 13; > + if (!prefixcmp(arg,"relative")) { > + date_mode = DATE_RELATIVE; > + } else if (!prefixcmp(arg,"short")) { > + date_mode = DATE_SHORT; > + } else if (!prefixcmp(arg,"local")) { > + date_mode = DATE_LOCAL; > + } else if (!prefixcmp(arg,"iso8601")) { > + date_mode = DATE_ISO8601; > + } else if (!prefixcmp(arg,"rfc2822")) { > + date_mode = DATE_RFC2822; > + } > + continue; > + } Surely this same code exists elsewhere, and could be easily factored out into a parse_date_type function. -Peff