[git] Re: Bug in git-stash(.sh) ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Two days ago, Jeff King wrote:
> On Sun, Apr 29, 2012 at 06:26:36PM -0400, Eli Barzilay wrote:
> 
> > > which led to f4ea32f (improve reflog date/number heuristic,
> > > 2009-09-24).  That fixed the case of:
> > > 
> > >   git config log.date iso
> > >   git log -g --oneline
> > > 
> > > But later, 8f8f547 (Introduce new pretty formats %g[sdD] for reflog
> > > information, 2009-10-19) added another way to show selectors, and it
> > > did not respect the date_mode_explicit flag from f4ea32f. Which I
> > > think is a bug.
> > > 
> > > So the right solution is to pass the date_mode_explicit flag through
> > > to the pretty-print --format code, and then pass it along to the
> > > reflog code.
> > 
> > Assuming that I followed all of that correctly, it still seems bogus
> > to do that, given that %gd and %gD are described as producing reflog
> > selector, and given that Junio's note that stash operations are really
> > intended to be used only with these selectos.
> 
> Keep in mind this bug is not about stash at all; it is about showing
> reflog selectors. Those are a more general mechanism, and are used for
> more than just stash. The fact that user config affects the format of
> "%gd" is a bug; it should follow the same rules as the regular reflog
> pretty-printing (and the behavior of neither should be affected by user
> config, as scripts rely on the output being consistent).
> 
> Once that is fixed, then we can consider whether something more should
> happen for stash (though I am inclined to say that is enough; it is a
> feature that you can do "git stash list --date=relative" to see the
> stash timestamps).

Since the general problem is bigger, how about just the quick patch of
adding --date=default in the list_stash function as a stopgap?  That
seems to be close enough to how it should work anyway.


> > What looks more sensible to me given the necessity of %gd (and the
> > fact that it's different from %cd/%ad) is to change things as
> > follows:
> > 
> >   * %gd produces only the date, with the "default" having the same
> >     meaning as elsewhere (so it doesn't show the index numbers)
> 
> %gd is part of the public interface and will not change its semantics
> (or at least not without a long deprecation period).  It's a shame
> that "d" is taken for the selector, when it would be better to mean
> "date" as it does for author and committer. But I don't know if it's
> worth changing at this point.

(Yeah, I can see that.)


> >   * Some new %gi uses the index number: stash@{1}, and %gI produces
> >     refs/stash@{1}, unrelated to any date setting
> >   * git-stash.sh uses %gi so the output has the numbers
> >   * Some new option for "stash list" for the format string, so it's
> >     possible to show the dates if you want to with something like
> >     git stash list --format:"%gi: %gs (%gd)"
> 
> I don't have a huge problem with that. But what issue is it really
> solving? Are people using "git stash list --date=iso" and then
> getting confused by the output? Or is it simply a matter of
> mistakenly applying the config when it should not be? The latter
> needs fixed in either case.

It's basically an attempt to have a %gi that is disconnected from date
options (config or flags), which solves the config problem in a
trivial way (no date options are used)...

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!
--
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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]