[PATCH 3 of 3 STABLE] date: accept broader range of ISO 8601 time specs

Matt Mackall mpm at selenic.com
Wed Jul 27 21:42:24 EDT 2016


On Wed, 2016-07-27 at 17:10 -0500, Kevin Bullock wrote:
> > 
> > On Jul 27, 2016, at 15:48, Matt Mackall <mpm at selenic.com> wrote:
> > 
> > # HG changeset patch
> > # User Matt Mackall <mpm at selenic.com>
> > # Date 1469650956 18000
> > #      Wed Jul 27 15:22:36 2016 -0500
> > # Branch stable
> > # Node ID 114728123ca15c6e614ad4ad7d6c719ba9f0ac7b
> > # Parent  a8d5ca11a21b8c833577e9265b3a16f78a528c63
> > date: accept broader range of ISO 8601 time specs
> > 
> > The "normal" ISO date/time includes a T between date and time. It also
> > allows dropping the colons and seconds from the timespec. Add new
> > patterns for these forms as well as tests.
> > 
> > diff -r a8d5ca11a21b -r 114728123ca1 mercurial/util.py
> > --- a/mercurial/util.py	Wed Jul 27 15:20:34 2016 -0500
> > +++ b/mercurial/util.py	Wed Jul 27 15:22:36 2016 -0500
> > @@ -440,7 +440,14 @@
> > 
> > # used by parsedate
> > defaultdateformats = (
> > -    '%Y-%m-%d %H:%M:%S',
> > +    '%Y-%m-%dT%H:%M:%S', # the 'real' ISO8601
> > +    '%Y-%m-%dT%H:%M',    #   without seconds
> > +    '%Y-%m-%dT%H%M%S',   # another awful but legal variant without :
> > +    '%Y-%m-%dT%H%M',     #   without seconds
> > +    '%Y-%m-%d %H:%M:%S', # our common legal variant
> > +    '%Y-%m-%d %H:%M',    #   without seconds
> > +    '%Y-%m-%d %H%M%S',   # without :
> > +    '%Y-%m-%d %H%M',     #   without seconds
> >     '%Y-%m-%d %I:%M:%S%p',
> >     '%Y-%m-%d %H:%M',
> >     '%Y-%m-%d %I:%M%p',
> > @@ -1764,7 +1771,7 @@
> >     if s.endswith("Z") and s[-2:-1].isdigit():
> >         return 0, s[:-1]
> > 
> > -    # ISO8601-style [+-]hh:mm
> > +    # ISO860-style [+-]hh:mm
> Errr...?

Derp, my first attempt at using crecord. I fixed a typo in #2.. without
considering that it'd reappear.

-- 
Mathematics is the supreme nostalgia of our time.



More information about the Mercurial-devel mailing list