[PATCH 3 of 7] templater: introduce a wrapper for date tuple (BC)

Augie Fackler raf at durin42.com
Tue Jun 12 17:49:47 EDT 2018


On Tue, Jun 12, 2018 at 11:49:05PM +0900, Yuya Nishihara wrote:
> # HG changeset patch
> # User Yuya Nishihara <yuya at tcha.org>
> # Date 1521881642 -32400
> #      Sat Mar 24 17:54:02 2018 +0900
> # Node ID 61e21a5a89d421909c45718ffc50f72cf83ee4b5
> # Parent  5eb83a63ffff10845fb61fef9eda799731b90061
> templater: introduce a wrapper for date tuple (BC)

This appears to break python-hglib:

https://buildbot.mercurial-scm.org/builders/python-hglib/builds/1379/steps/default%20%282.6.9%29/logs/stdio

Any thoughts on how we should proceed?

>
> Strictly speaking, this is BC, but I believe the original string format
> (str(float(unixtime)) + str(int(tzoffset))) was just plain wrong.
>
> diff --git a/mercurial/formatter.py b/mercurial/formatter.py
> --- a/mercurial/formatter.py
> +++ b/mercurial/formatter.py
> @@ -367,7 +367,7 @@ class _templateconverter(object):
>      @staticmethod
>      def formatdate(date, fmt):
>          '''return date tuple'''
> -        return date
> +        return templateutil.date(date)
>      @staticmethod
>      def formatdict(data, key, value, fmt, sep):
>          '''build object that can be evaluated as either plain string or dict'''
> diff --git a/mercurial/templatefuncs.py b/mercurial/templatefuncs.py
> --- a/mercurial/templatefuncs.py
> +++ b/mercurial/templatefuncs.py
> @@ -391,7 +391,7 @@ def localdate(context, mapping, args):
>                  raise error.ParseError(_("localdate expects a timezone"))
>      else:
>          tzoffset = dateutil.makedate()[1]
> -    return (date[0], tzoffset)
> +    return templateutil.date((date[0], tzoffset))
>
>  @templatefunc('max(iterable)')
>  def max_(context, mapping, args, **kwargs):
> @@ -461,6 +461,7 @@ def obsfatedate(context, mapping, args):
>      markers = evalfuncarg(context, mapping, args[0])
>
>      try:
> +        # TODO: maybe this has to be a wrapped list of date wrappers?
>          data = obsutil.markersdates(markers)
>          return templateutil.hybridlist(data, name='date', fmt='%d %d')
>      except (TypeError, KeyError):
> diff --git a/mercurial/templatekw.py b/mercurial/templatekw.py
> --- a/mercurial/templatekw.py
> +++ b/mercurial/templatekw.py
> @@ -240,7 +240,7 @@ def showactivebookmark(context, mapping)
>  def showdate(context, mapping):
>      """Date information. The date when the changeset was committed."""
>      ctx = context.resource(mapping, 'ctx')
> -    return ctx.date()
> +    return templateutil.date(ctx.date())
>
>  @templatekeyword('desc', requires={'ctx'})
>  def showdescription(context, mapping):
> diff --git a/mercurial/templater.py b/mercurial/templater.py
> --- a/mercurial/templater.py
> +++ b/mercurial/templater.py
> @@ -35,8 +35,8 @@ True, False, int, float
>  wrappedbytes, wrappedvalue
>      a wrapper for the above printable types.
>
> -date tuple
> -    a (unixtime, offset) tuple, which produces no meaningful output by itself.
> +date
> +    represents a (unixtime, offset) tuple.
>
>  hybrid
>      represents a list/dict of printable values, which can also be converted
> diff --git a/mercurial/templateutil.py b/mercurial/templateutil.py
> --- a/mercurial/templateutil.py
> +++ b/mercurial/templateutil.py
> @@ -172,10 +172,37 @@ class wrappedvalue(wrapped):
>      def tovalue(self, context, mapping):
>          return self._value
>
> -# stub for representing a date type; may be a real date type that can
> -# provide a readable string value
> -class date(object):
> -    pass
> +class date(wrapped):
> +    """Wrapper for date tuple"""
> +
> +    def __init__(self, value):
> +        # value may be (float, int), but public interface shouldn't support
> +        # floating-point timestamp
> +        self._unixtime, self._tzoffset = map(int, value)
> +
> +    def contains(self, context, mapping, item):
> +        raise error.ParseError(_('date is not iterable'))
> +
> +    def getmember(self, context, mapping, key):
> +        raise error.ParseError(_('date is not a dictionary'))
> +
> +    def getmin(self, context, mapping):
> +        raise error.ParseError(_('date is not iterable'))
> +
> +    def getmax(self, context, mapping):
> +        raise error.ParseError(_('date is not iterable'))
> +
> +    def itermaps(self, context):
> +        raise error.ParseError(_("date is not iterable"))
> +
> +    def join(self, context, mapping, sep):
> +        raise error.ParseError(_("date is not iterable"))
> +
> +    def show(self, context, mapping):
> +        return '%d %d' % (self._unixtime, self._tzoffset)
> +
> +    def tovalue(self, context, mapping):
> +        return (self._unixtime, self._tzoffset)
>
>  class hybrid(wrapped):
>      """Wrapper for list or dict to support legacy template
> @@ -643,6 +670,9 @@ def evaldate(context, mapping, arg, err=
>      return unwrapdate(context, mapping, thing, err)
>
>  def unwrapdate(context, mapping, thing, err=None):
> +    if isinstance(thing, date):
> +        return thing.tovalue(context, mapping)
> +    # TODO: update hgweb to not return bare tuple; then just stringify 'thing'
>      thing = unwrapvalue(context, mapping, thing)
>      try:
>          return dateutil.parsedate(thing)
> diff --git a/tests/test-amend.t b/tests/test-amend.t
> --- a/tests/test-amend.t
> +++ b/tests/test-amend.t
> @@ -107,7 +107,7 @@ Matcher and metadata options
>    $ hg amend -d '2000 1000' -u 'Foo <foo at example.com>' -A C D
>    saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/c7ba14d9075b-b3e76daa-amend.hg (obsstore-off !)
>    $ hg log -r . -T '{node|short} {desc} {files} {author} {date}\n'
> -  14f6c4bcc865 NEWMESSAGE B D Foo <foo at example.com> 2000.01000
> +  14f6c4bcc865 NEWMESSAGE B D Foo <foo at example.com> 2000 1000
>
>  Amend with editor
>
> diff --git a/tests/test-command-template.t b/tests/test-command-template.t
> --- a/tests/test-command-template.t
> +++ b/tests/test-command-template.t
> @@ -1548,33 +1548,33 @@ Keys work:
>    branches--debug:
>    branches--debug:
>    branches--debug:
> -  date: 1577872860.00
> -  date: 1000000.00
> -  date: 1500001.00
> -  date: 1500000.00
> -  date: 1400000.00
> -  date: 1300000.00
> -  date: 1200000.00
> -  date: 1100000.00
> -  date: 1000000.00
> -  date--verbose: 1577872860.00
> -  date--verbose: 1000000.00
> -  date--verbose: 1500001.00
> -  date--verbose: 1500000.00
> -  date--verbose: 1400000.00
> -  date--verbose: 1300000.00
> -  date--verbose: 1200000.00
> -  date--verbose: 1100000.00
> -  date--verbose: 1000000.00
> -  date--debug: 1577872860.00
> -  date--debug: 1000000.00
> -  date--debug: 1500001.00
> -  date--debug: 1500000.00
> -  date--debug: 1400000.00
> -  date--debug: 1300000.00
> -  date--debug: 1200000.00
> -  date--debug: 1100000.00
> -  date--debug: 1000000.00
> +  date: 1577872860 0
> +  date: 1000000 0
> +  date: 1500001 0
> +  date: 1500000 0
> +  date: 1400000 0
> +  date: 1300000 0
> +  date: 1200000 0
> +  date: 1100000 0
> +  date: 1000000 0
> +  date--verbose: 1577872860 0
> +  date--verbose: 1000000 0
> +  date--verbose: 1500001 0
> +  date--verbose: 1500000 0
> +  date--verbose: 1400000 0
> +  date--verbose: 1300000 0
> +  date--verbose: 1200000 0
> +  date--verbose: 1100000 0
> +  date--verbose: 1000000 0
> +  date--debug: 1577872860 0
> +  date--debug: 1000000 0
> +  date--debug: 1500001 0
> +  date--debug: 1500000 0
> +  date--debug: 1400000 0
> +  date--debug: 1300000 0
> +  date--debug: 1200000 0
> +  date--debug: 1100000 0
> +  date--debug: 1000000 0
>    desc: third
>    desc: second
>    desc: merge
> @@ -2291,7 +2291,7 @@ Upper/lower filters:
>    $ hg log -r0 --template '{author|lower}\n'
>    user name <user at hostname>
>    $ hg log -r0 --template '{date|upper}\n'
> -  1000000.00
> +  1000000 0
>
>  Add a commit that does all possible modifications at once
>
> @@ -2806,9 +2806,9 @@ Error on syntax:
>  Behind the scenes, this would throw TypeError without intype=bytes
>
>    $ hg log -l 3 --template '{date|obfuscate}\n'
> -  0.00
> -  0.00
> -  1577872860.00
> +  0 0
> +  0 0
> +  1577872860 0
>
>  Behind the scenes, this will throw a ValueError
>
> @@ -2820,9 +2820,9 @@ Behind the scenes, this will throw a Val
>  Behind the scenes, this would throw AttributeError without intype=bytes
>
>    $ hg log -l 3 --template 'line: {date|escape}\n'
> -  line: 0.00
> -  line: 0.00
> -  line: 1577872860.00
> +  line: 0 0
> +  line: 0 0
> +  line: 1577872860 0
>
>    $ hg log -l 3 --template 'line: {extras|localdate}\n'
>    hg: parse error: localdate expects a date information
> @@ -3293,6 +3293,15 @@ Test min/max of non-iterable:
>    (max first argument should be an iterable)
>    [255]
>
> +  $ hg log -R latesttag -l1 -T '{min(date)}'
> +  hg: parse error: date is not iterable
> +  (min first argument should be an iterable)
> +  [255]
> +  $ hg log -R latesttag -l1 -T '{max(date)}'
> +  hg: parse error: date is not iterable
> +  (max first argument should be an iterable)
> +  [255]
> +
>  Test min/max of empty sequence:
>
>    $ hg debugtemplate '{min("")}'
> @@ -3902,12 +3911,14 @@ Test get function:
>    (get() expects a dict as first argument)
>    [255]
>
> -Test json filter applied to hybrid object:
> +Test json filter applied to wrapped object:
>
>    $ hg log -r0 -T '{files|json}\n'
>    ["a"]
>    $ hg log -r0 -T '{extras|json}\n'
>    {"branch": "default"}
> +  $ hg log -r0 -T '{date|json}\n'
> +  [0, 0]
>
>  Test json filter applied to map result:
>
> @@ -4608,8 +4619,8 @@ Test indent and not adding to empty line
>  Test with non-strings like dates
>
>    $ hg log -T "{indent(date, '   ')}\n" -r 2:3 -R a
> -     1200000.00
> -     1300000.00
> +     1200000 0
> +     1300000 0
>
>  Test broken string escapes:
>
> diff --git a/tests/test-debugbuilddag.t b/tests/test-debugbuilddag.t
> --- a/tests/test-debugbuilddag.t
> +++ b/tests/test-debugbuilddag.t
> @@ -42,29 +42,29 @@ tip
>    000000000000
>  glog
>    $ hg log -G --template '{rev}: {desc} [{branches}] @ {date}\n'
> -  o  11: r11 [] @ 11.00
> +  o  11: r11 [] @ 11 0
>    |
> -  o  10: r10 [] @ 10.00
> +  o  10: r10 [] @ 10 0
>    |
> -  o    9: r9 [] @ 9.00
> +  o    9: r9 [] @ 9 0
>    |\
> -  | o  8: r8 [temp] @ 8.00
> +  | o  8: r8 [temp] @ 8 0
>    | |
> -  | o  7: r7 [temp] @ 7.00
> +  | o  7: r7 [temp] @ 7 0
>    | |
> -  | o  6: r6 [temp] @ 6.00
> +  | o  6: r6 [temp] @ 6 0
>    | |
> -  | o  5: r5 [temp] @ 5.00
> +  | o  5: r5 [temp] @ 5 0
>    | |
> -  o |  4: r4 [] @ 4.00
> +  o |  4: r4 [] @ 4 0
>    | |
> -  o |  3: r3 [] @ 3.00
> +  o |  3: r3 [] @ 3 0
>    | |
> -  o |  2: r2 [] @ 2.00
> +  o |  2: r2 [] @ 2 0
>    |/
> -  o  1: r1 [] @ 1.00
> +  o  1: r1 [] @ 1 0
>    |
> -  o  0: r0 [] @ 0.00
> +  o  0: r0 [] @ 0 0
>
>
>  overwritten files, starting on a non-default branch
> @@ -88,29 +88,29 @@ tip
>    000000000000
>  glog
>    $ hg log -G --template '{rev}: {desc} [{branches}] @ {date}\n'
> -  o  11: r11 [] @ 11.00
> +  o  11: r11 [] @ 11 0
>    |
> -  o  10: r10 [] @ 10.00
> +  o  10: r10 [] @ 10 0
>    |
> -  o    9: r9 [] @ 9.00
> +  o    9: r9 [] @ 9 0
>    |\
> -  | o  8: r8 [temp] @ 8.00
> +  | o  8: r8 [temp] @ 8 0
>    | |
> -  | o  7: r7 [temp] @ 7.00
> +  | o  7: r7 [temp] @ 7 0
>    | |
> -  | o  6: r6 [temp] @ 6.00
> +  | o  6: r6 [temp] @ 6 0
>    | |
> -  | o  5: r5 [temp] @ 5.00
> +  | o  5: r5 [temp] @ 5 0
>    | |
> -  o |  4: r4 [] @ 4.00
> +  o |  4: r4 [] @ 4 0
>    | |
> -  o |  3: r3 [] @ 3.00
> +  o |  3: r3 [] @ 3 0
>    | |
> -  o |  2: r2 [] @ 2.00
> +  o |  2: r2 [] @ 2 0
>    |/
> -  o  1: r1 [] @ 1.00
> +  o  1: r1 [] @ 1 0
>    |
> -  o  0: r0 [start] @ 0.00
> +  o  0: r0 [start] @ 0 0
>
>  glog of
>    $ hg log -G --template '{rev}: {desc} [{branches}]\n' of
> @@ -164,29 +164,29 @@ tip
>    000000000000
>  glog
>    $ hg log -G --template '{rev}: {desc} [{branches}] @ {date}\n'
> -  o  11: r11 [] @ 11.00
> +  o  11: r11 [] @ 11 0
>    |
> -  o  10: r10 [] @ 10.00
> +  o  10: r10 [] @ 10 0
>    |
> -  o    9: r9 [] @ 9.00
> +  o    9: r9 [] @ 9 0
>    |\
> -  | o  8: r8 [temp] @ 8.00
> +  | o  8: r8 [temp] @ 8 0
>    | |
> -  | o  7: r7 [temp] @ 7.00
> +  | o  7: r7 [temp] @ 7 0
>    | |
> -  | o  6: r6 [temp] @ 6.00
> +  | o  6: r6 [temp] @ 6 0
>    | |
> -  | o  5: r5 [temp] @ 5.00
> +  | o  5: r5 [temp] @ 5 0
>    | |
> -  o |  4: r4 [] @ 4.00
> +  o |  4: r4 [] @ 4 0
>    | |
> -  o |  3: r3 [] @ 3.00
> +  o |  3: r3 [] @ 3 0
>    | |
> -  o |  2: r2 [] @ 2.00
> +  o |  2: r2 [] @ 2 0
>    |/
> -  o  1: r1 [] @ 1.00
> +  o  1: r1 [] @ 1 0
>    |
> -  o  0: r0 [] @ 0.00
> +  o  0: r0 [] @ 0 0
>
>  glog mf
>    $ hg log -G --template '{rev}: {desc} [{branches}]\n' mf
> diff --git a/tests/test-mq-header-date.t b/tests/test-mq-header-date.t
> --- a/tests/test-mq-header-date.t
> +++ b/tests/test-mq-header-date.t
> @@ -202,7 +202,7 @@
>    ==== qnew -d
>    Date: 3 0
>
> -  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
> +  0: 758bd2596a39 [mq]: 1.patch - test - 3 0
>    ==== qref
>    adding 1
>    Date: 3 0
> @@ -212,7 +212,7 @@
>    +++ b/1
>    @@ -0,0 +1,1 @@
>    +1
> -  0: 8c640e9949a8 [mq]: 1.patch - test - 3.00
> +  0: 8c640e9949a8 [mq]: 1.patch - test - 3 0
>    ==== qref -d
>    Date: 4 0
>
> @@ -221,7 +221,7 @@
>    +++ b/1
>    @@ -0,0 +1,1 @@
>    +1
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== qnew
>    adding 2
>    diff -r ... 2
> @@ -248,8 +248,8 @@
>
>    Three
>
> -  1: 2a9ef0bdefba Three - test - 6.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  1: 2a9ef0bdefba Three - test - 6 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== qref
>    adding 3
>    Date: 6 0
> @@ -261,8 +261,8 @@
>    +++ b/3
>    @@ -0,0 +1,1 @@
>    +3
> -  1: 7f19ad9eea7b Three - test - 6.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  1: 7f19ad9eea7b Three - test - 6 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== qref -m
>    Date: 6 0
>
> @@ -273,8 +273,8 @@
>    +++ b/3
>    @@ -0,0 +1,1 @@
>    +3
> -  1: 7ff7377793e3 Drei - test - 6.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  1: 7ff7377793e3 Drei - test - 6 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== qref -d
>    Date: 7 0
>
> @@ -285,8 +285,8 @@
>    +++ b/3
>    @@ -0,0 +1,1 @@
>    +3
> -  1: d89d3144f518 Drei - test - 7.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  1: d89d3144f518 Drei - test - 7 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== qref -d -m
>    Date: 8 0
>
> @@ -297,8 +297,8 @@
>    +++ b/3
>    @@ -0,0 +1,1 @@
>    +3
> -  1: b1b6b0fe0e6d Three (again) - test - 8.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  1: b1b6b0fe0e6d Three (again) - test - 8 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== qnew -m
>    adding 4
>    Four
> @@ -331,9 +331,9 @@
>    now at: 3.patch
>    # HG changeset patch
>    # Date 10 0
> -  2: d16a272220d2 imported patch 5.patch - test - 10.00
> -  1: b1b6b0fe0e6d Three (again) - test - 8.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  2: d16a272220d2 imported patch 5.patch - test - 10 0
> +  1: b1b6b0fe0e6d Three (again) - test - 8 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== hg qref
>    adding 5
>    # HG changeset patch
> @@ -345,9 +345,9 @@
>    +++ b/5
>    @@ -0,0 +1,1 @@
>    +5
> -  2: 5dbf69c07df9 [mq]: 5.patch - test - 10.00
> -  1: b1b6b0fe0e6d Three (again) - test - 8.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  2: 5dbf69c07df9 [mq]: 5.patch - test - 10 0
> +  1: b1b6b0fe0e6d Three (again) - test - 8 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== hg qref -d
>    # HG changeset patch
>    # Date 11 0
> @@ -358,9 +358,9 @@
>    +++ b/5
>    @@ -0,0 +1,1 @@
>    +5
> -  2: 049de6af0c1d [mq]: 5.patch - test - 11.00
> -  1: b1b6b0fe0e6d Three (again) - test - 8.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  2: 049de6af0c1d [mq]: 5.patch - test - 11 0
> +  1: b1b6b0fe0e6d Three (again) - test - 8 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== qnew with plain header
>    popping 6.patch
>    now at: 5.patch
> @@ -380,10 +380,10 @@
>    +++ b/6
>    @@ -0,0 +1,1 @@
>    +6
> -  3: 038c46b02a56 [mq]: 6.patch - test - 12.00
> -  2: 049de6af0c1d [mq]: 5.patch - test - 11.00
> -  1: b1b6b0fe0e6d Three (again) - test - 8.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  3: 038c46b02a56 [mq]: 6.patch - test - 12 0
> +  2: 049de6af0c1d [mq]: 5.patch - test - 11 0
> +  1: b1b6b0fe0e6d Three (again) - test - 8 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== hg qref -d
>    Date: 13 0
>
> @@ -392,10 +392,10 @@
>    +++ b/6
>    @@ -0,0 +1,1 @@
>    +6
> -  3: 2785642ea4b4 [mq]: 6.patch - test - 13.00
> -  2: 049de6af0c1d [mq]: 5.patch - test - 11.00
> -  1: b1b6b0fe0e6d Three (again) - test - 8.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  3: 2785642ea4b4 [mq]: 6.patch - test - 13 0
> +  2: 049de6af0c1d [mq]: 5.patch - test - 11 0
> +  1: b1b6b0fe0e6d Three (again) - test - 8 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    popping 6.patch
>    now at: 5.patch
>    ==== qnew -u
> @@ -448,10 +448,10 @@
>    +++ b/7
>    @@ -0,0 +1,1 @@
>    +7
> -  3: 4f9d07369cc4 [mq]: 7.patch - john - 13.00
> -  2: 049de6af0c1d [mq]: 5.patch - test - 11.00
> -  1: b1b6b0fe0e6d Three (again) - test - 8.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  3: 4f9d07369cc4 [mq]: 7.patch - john - 13 0
> +  2: 049de6af0c1d [mq]: 5.patch - test - 11 0
> +  1: b1b6b0fe0e6d Three (again) - test - 8 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== qnew
>    adding 8
>    diff -r ... 8
> @@ -523,10 +523,10 @@
>    applying 5.patch
>    applying 7.patch
>    now at: 7.patch
> -  3: d26a5b7ffce1 imported patch 7.patch - john - 13.00
> -  2: dda6cf77060a imported patch 5.patch - test - 11.00
> -  1: 25e32d66c8c7 Three (again) - test - 8.00
> -  0: e5011c0211fe imported patch 1.patch - test - 4.00
> +  3: d26a5b7ffce1 imported patch 7.patch - john - 13 0
> +  2: dda6cf77060a imported patch 5.patch - test - 11 0
> +  1: 25e32d66c8c7 Three (again) - test - 8 0
> +  0: e5011c0211fe imported patch 1.patch - test - 4 0
>    $ rm -r sandbox
>
>  ======= hg headers
> @@ -540,7 +540,7 @@
>    # Date 3 0
>    # Parent
>
> -  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
> +  0: 758bd2596a39 [mq]: 1.patch - test - 3 0
>    ==== qref
>    adding 1
>    # HG changeset patch
> @@ -552,7 +552,7 @@
>    +++ b/1
>    @@ -0,0 +1,1 @@
>    +1
> -  0: 8c640e9949a8 [mq]: 1.patch - test - 3.00
> +  0: 8c640e9949a8 [mq]: 1.patch - test - 3 0
>    ==== qref -d
>    # HG changeset patch
>    # Date 4 0
> @@ -563,7 +563,7 @@
>    +++ b/1
>    @@ -0,0 +1,1 @@
>    +1
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== qnew
>    adding 2
>    # HG changeset patch
> @@ -596,8 +596,8 @@
>    # Parent
>    Three
>
> -  1: 2a9ef0bdefba Three - test - 6.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  1: 2a9ef0bdefba Three - test - 6 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== qref
>    adding 3
>    # HG changeset patch
> @@ -610,8 +610,8 @@
>    +++ b/3
>    @@ -0,0 +1,1 @@
>    +3
> -  1: 7f19ad9eea7b Three - test - 6.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  1: 7f19ad9eea7b Three - test - 6 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== qref -m
>    # HG changeset patch
>    # Date 6 0
> @@ -623,8 +623,8 @@
>    +++ b/3
>    @@ -0,0 +1,1 @@
>    +3
> -  1: 7ff7377793e3 Drei - test - 6.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  1: 7ff7377793e3 Drei - test - 6 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== qref -d
>    # HG changeset patch
>    # Date 7 0
> @@ -636,8 +636,8 @@
>    +++ b/3
>    @@ -0,0 +1,1 @@
>    +3
> -  1: d89d3144f518 Drei - test - 7.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  1: d89d3144f518 Drei - test - 7 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== qref -d -m
>    # HG changeset patch
>    # Date 8 0
> @@ -649,8 +649,8 @@
>    +++ b/3
>    @@ -0,0 +1,1 @@
>    +3
> -  1: b1b6b0fe0e6d Three (again) - test - 8.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  1: b1b6b0fe0e6d Three (again) - test - 8 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== qnew -m
>    adding 4
>    # HG changeset patch
> @@ -686,9 +686,9 @@
>    now at: 3.patch
>    # HG changeset patch
>    # Date 10 0
> -  2: d16a272220d2 imported patch 5.patch - test - 10.00
> -  1: b1b6b0fe0e6d Three (again) - test - 8.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  2: d16a272220d2 imported patch 5.patch - test - 10 0
> +  1: b1b6b0fe0e6d Three (again) - test - 8 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== hg qref
>    adding 5
>    # HG changeset patch
> @@ -700,9 +700,9 @@
>    +++ b/5
>    @@ -0,0 +1,1 @@
>    +5
> -  2: 5dbf69c07df9 [mq]: 5.patch - test - 10.00
> -  1: b1b6b0fe0e6d Three (again) - test - 8.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  2: 5dbf69c07df9 [mq]: 5.patch - test - 10 0
> +  1: b1b6b0fe0e6d Three (again) - test - 8 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== hg qref -d
>    # HG changeset patch
>    # Date 11 0
> @@ -713,9 +713,9 @@
>    +++ b/5
>    @@ -0,0 +1,1 @@
>    +5
> -  2: 049de6af0c1d [mq]: 5.patch - test - 11.00
> -  1: b1b6b0fe0e6d Three (again) - test - 8.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  2: 049de6af0c1d [mq]: 5.patch - test - 11 0
> +  1: b1b6b0fe0e6d Three (again) - test - 8 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== qnew with plain header
>    popping 6.patch
>    now at: 5.patch
> @@ -735,10 +735,10 @@
>    +++ b/6
>    @@ -0,0 +1,1 @@
>    +6
> -  3: 038c46b02a56 [mq]: 6.patch - test - 12.00
> -  2: 049de6af0c1d [mq]: 5.patch - test - 11.00
> -  1: b1b6b0fe0e6d Three (again) - test - 8.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  3: 038c46b02a56 [mq]: 6.patch - test - 12 0
> +  2: 049de6af0c1d [mq]: 5.patch - test - 11 0
> +  1: b1b6b0fe0e6d Three (again) - test - 8 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== hg qref -d
>    Date: 13 0
>
> @@ -747,10 +747,10 @@
>    +++ b/6
>    @@ -0,0 +1,1 @@
>    +6
> -  3: 2785642ea4b4 [mq]: 6.patch - test - 13.00
> -  2: 049de6af0c1d [mq]: 5.patch - test - 11.00
> -  1: b1b6b0fe0e6d Three (again) - test - 8.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  3: 2785642ea4b4 [mq]: 6.patch - test - 13 0
> +  2: 049de6af0c1d [mq]: 5.patch - test - 11 0
> +  1: b1b6b0fe0e6d Three (again) - test - 8 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    popping 6.patch
>    now at: 5.patch
>    ==== qnew -u
> @@ -811,10 +811,10 @@
>    +++ b/7
>    @@ -0,0 +1,1 @@
>    +7
> -  3: 4f9d07369cc4 [mq]: 7.patch - john - 13.00
> -  2: 049de6af0c1d [mq]: 5.patch - test - 11.00
> -  1: b1b6b0fe0e6d Three (again) - test - 8.00
> -  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
> +  3: 4f9d07369cc4 [mq]: 7.patch - john - 13 0
> +  2: 049de6af0c1d [mq]: 5.patch - test - 11 0
> +  1: b1b6b0fe0e6d Three (again) - test - 8 0
> +  0: 4a67dfeea974 [mq]: 1.patch - test - 4 0
>    ==== qnew
>    adding 8
>    # HG changeset patch
> @@ -894,8 +894,8 @@
>    applying 5.patch
>    applying 7.patch
>    now at: 7.patch
> -  3: d26a5b7ffce1 imported patch 7.patch - john - 13.00
> -  2: dda6cf77060a imported patch 5.patch - test - 11.00
> -  1: 25e32d66c8c7 Three (again) - test - 8.00
> -  0: e5011c0211fe imported patch 1.patch - test - 4.00
> +  3: d26a5b7ffce1 imported patch 7.patch - john - 13 0
> +  2: dda6cf77060a imported patch 5.patch - test - 11 0
> +  1: 25e32d66c8c7 Three (again) - test - 8 0
> +  0: e5011c0211fe imported patch 1.patch - test - 4 0
>    $ rm -r sandbox
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list