[patch ]A patch for a bug on date formats with '>' or '<' accompanied by space characters

Justin Peng justin.peng.sw at gmail.com
Tue Mar 31 10:32:27 CDT 2009


Hi, all.  I have written  a patch for the bug on date formats with '>'
or '<' accompanied by space characters.

In the current version, hg log -d '>',  hg log -d '<', hg log -d '>_',
hg log -d '<_', hg log -d '_>' and hg log -d '_>' get different
results, and what's worse, hg log -d '>_' and hg log -d '<_'  even
raise an exception. I have corrected it, and provided some test
scripts for it.

Please check it, thanks!

Regards
Justin

Besides the attachment, the content of the patch file is below:

# Correct a bug on date formats with '>' or '<' accompanied by space characters.
#
# HG changeset patch
# User Justin Peng <justin.peng.sw at gmail.com>
# Date 1238412818 -28800
# Node ID 5fcb6949683cc45afd4cf805376b28f735abaaff
# Parent b2c18c7956221df0f961ac697a01effa1233978f
Correct a bug on date formats with '>' or '<' accompanied by space characters.

diff -r b2c18c795622 -r 5fcb6949683c mercurial/util.py
--- a/mercurial/util.py Fri Mar 20 18:55:20 2009 -0500
+++ b/mercurial/util.py Mon Mar 30 19:33:38 2009 +0800
@@ -1838,6 +1838,7 @@
  d["d"] = "28"
  return parsedate(date, extendeddateformats, d)[0]

+ date = date.strip()
  if date[0] == "<":
  when = upper(date[1:])
  return lambda x: x <= when
diff -r b2c18c795622 -r 5fcb6949683c tests/test-dates
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-dates Mon Mar 30 19:33:38 2009 +0800
@@ -0,0 +1,84 @@
+#!/bin/sh
+
+hg init a
+
+cd a
+
+echo 1 > 1
+
+hg add 1
+
+hg ci -m1 -d '1 1'
+
+echo 2 > 2
+
+hg add 2
+
+hg ci -m2 -d '1 2'
+
+echo 3 > 3
+
+hg add 3
+
+hg ci -m3 -d '1 3'
+
+echo 4 > 4
+
+hg add 4
+
+hg ci -m4 -d '1 4'
+
+
+hg log -d '>'
+
+hg log -d '<'
+
+hg log -d ' >'
+
+hg log -d ' <'
+
+hg log -d '> '
+
+hg log -d '< '
+
+hg log -d ' > '
+
+hg log -d ' < '
+
+
+hg log -d '>01/03'
+
+hg log -d '<01/03'
+
+hg log -d ' >01/03'
+
+hg log -d ' <01/03'
+
+hg log -d '> 01/03'
+
+hg log -d '< 01/03'
+
+hg log -d ' > 01/03'
+
+hg log -d ' < 01/03'
+
+
+hg log -d '>01/03 '
+
+hg log -d '<01/03 '
+
+hg log -d ' >01/03 '
+
+hg log -d ' <01/03 '
+
+hg log -d '> 01/03 '
+
+hg log -d '< 01/03 '
+
+hg log -d ' > 01/03 '
+
+hg log -d ' < 01/03 '
+
+cd ..
+
+rm a -r
\ No newline at end of file
diff -r b2c18c795622 -r 5fcb6949683c tests/test-dates.out
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-dates.out Mon Mar 30 19:33:38 2009 +0800
@@ -0,0 +1,252 @@
+changeset: 3:ad6905bd80b4
+tag: tip
+user: test
+date: Wed Dec 31 23:59:57 1969 -0000
+summary: 4
+
+changeset: 2:a5f99ae66080
+user: test
+date: Wed Dec 31 23:59:58 1969 -0000
+summary: 3
+
+changeset: 1:a138ba17ebea
+user: test
+date: Wed Dec 31 23:59:59 1969 -0000
+summary: 2
+
+changeset: 0:507976411fb3
+user: test
+date: Thu Jan 01 00:00:00 1970 -0000
+summary: 1
+
+changeset: 3:ad6905bd80b4
+tag: tip
+user: test
+date: Wed Dec 31 23:59:57 1969 -0000
+summary: 4
+
+changeset: 2:a5f99ae66080
+user: test
+date: Wed Dec 31 23:59:58 1969 -0000
+summary: 3
+
+changeset: 1:a138ba17ebea
+user: test
+date: Wed Dec 31 23:59:59 1969 -0000
+summary: 2
+
+changeset: 0:507976411fb3
+user: test
+date: Thu Jan 01 00:00:00 1970 -0000
+summary: 1
+
+changeset: 3:ad6905bd80b4
+tag: tip
+user: test
+date: Wed Dec 31 23:59:57 1969 -0000
+summary: 4
+
+changeset: 2:a5f99ae66080
+user: test
+date: Wed Dec 31 23:59:58 1969 -0000
+summary: 3
+
+changeset: 1:a138ba17ebea
+user: test
+date: Wed Dec 31 23:59:59 1969 -0000
+summary: 2
+
+changeset: 0:507976411fb3
+user: test
+date: Thu Jan 01 00:00:00 1970 -0000
+summary: 1
+
+changeset: 3:ad6905bd80b4
+tag: tip
+user: test
+date: Wed Dec 31 23:59:57 1969 -0000
+summary: 4
+
+changeset: 2:a5f99ae66080
+user: test
+date: Wed Dec 31 23:59:58 1969 -0000
+summary: 3
+
+changeset: 1:a138ba17ebea
+user: test
+date: Wed Dec 31 23:59:59 1969 -0000
+summary: 2
+
+changeset: 0:507976411fb3
+user: test
+date: Thu Jan 01 00:00:00 1970 -0000
+summary: 1
+
+changeset: 3:ad6905bd80b4
+tag: tip
+user: test
+date: Wed Dec 31 23:59:57 1969 -0000
+summary: 4
+
+changeset: 2:a5f99ae66080
+user: test
+date: Wed Dec 31 23:59:58 1969 -0000
+summary: 3
+
+changeset: 1:a138ba17ebea
+user: test
+date: Wed Dec 31 23:59:59 1969 -0000
+summary: 2
+
+changeset: 0:507976411fb3
+user: test
+date: Thu Jan 01 00:00:00 1970 -0000
+summary: 1
+
+changeset: 3:ad6905bd80b4
+tag: tip
+user: test
+date: Wed Dec 31 23:59:57 1969 -0000
+summary: 4
+
+changeset: 2:a5f99ae66080
+user: test
+date: Wed Dec 31 23:59:58 1969 -0000
+summary: 3
+
+changeset: 1:a138ba17ebea
+user: test
+date: Wed Dec 31 23:59:59 1969 -0000
+summary: 2
+
+changeset: 0:507976411fb3
+user: test
+date: Thu Jan 01 00:00:00 1970 -0000
+summary: 1
+
+changeset: 3:ad6905bd80b4
+tag: tip
+user: test
+date: Wed Dec 31 23:59:57 1969 -0000
+summary: 4
+
+changeset: 2:a5f99ae66080
+user: test
+date: Wed Dec 31 23:59:58 1969 -0000
+summary: 3
+
+changeset: 1:a138ba17ebea
+user: test
+date: Wed Dec 31 23:59:59 1969 -0000
+summary: 2
+
+changeset: 0:507976411fb3
+user: test
+date: Thu Jan 01 00:00:00 1970 -0000
+summary: 1
+
+changeset: 3:ad6905bd80b4
+tag: tip
+user: test
+date: Wed Dec 31 23:59:57 1969 -0000
+summary: 4
+
+changeset: 2:a5f99ae66080
+user: test
+date: Wed Dec 31 23:59:58 1969 -0000
+summary: 3
+
+changeset: 1:a138ba17ebea
+user: test
+date: Wed Dec 31 23:59:59 1969 -0000
+summary: 2
+
+changeset: 0:507976411fb3
+user: test
+date: Thu Jan 01 00:00:00 1970 -0000
+summary: 1
+
+changeset: 3:ad6905bd80b4
+tag: tip
+user: test
+date: Wed Dec 31 23:59:57 1969 -0000
+summary: 4
+
+changeset: 2:a5f99ae66080
+user: test
+date: Wed Dec 31 23:59:58 1969 -0000
+summary: 3
+
+changeset: 1:a138ba17ebea
+user: test
+date: Wed Dec 31 23:59:59 1969 -0000
+summary: 2
+
+changeset: 0:507976411fb3
+user: test
+date: Thu Jan 01 00:00:00 1970 -0000
+summary: 1
+
+changeset: 3:ad6905bd80b4
+tag: tip
+user: test
+date: Wed Dec 31 23:59:57 1969 -0000
+summary: 4
+
+changeset: 2:a5f99ae66080
+user: test
+date: Wed Dec 31 23:59:58 1969 -0000
+summary: 3
+
+changeset: 1:a138ba17ebea
+user: test
+date: Wed Dec 31 23:59:59 1969 -0000
+summary: 2
+
+changeset: 0:507976411fb3
+user: test
+date: Thu Jan 01 00:00:00 1970 -0000
+summary: 1
+
+changeset: 3:ad6905bd80b4
+tag: tip
+user: test
+date: Wed Dec 31 23:59:57 1969 -0000
+summary: 4
+
+changeset: 2:a5f99ae66080
+user: test
+date: Wed Dec 31 23:59:58 1969 -0000
+summary: 3
+
+changeset: 1:a138ba17ebea
+user: test
+date: Wed Dec 31 23:59:59 1969 -0000
+summary: 2
+
+changeset: 0:507976411fb3
+user: test
+date: Thu Jan 01 00:00:00 1970 -0000
+summary: 1
+
+changeset: 3:ad6905bd80b4
+tag: tip
+user: test
+date: Wed Dec 31 23:59:57 1969 -0000
+summary: 4
+
+changeset: 2:a5f99ae66080
+user: test
+date: Wed Dec 31 23:59:58 1969 -0000
+summary: 3
+
+changeset: 1:a138ba17ebea
+user: test
+date: Wed Dec 31 23:59:59 1969 -0000
+summary: 2
+
+changeset: 0:507976411fb3
+user: test
+date: Thu Jan 01 00:00:00 1970 -0000
+summary: 1
+
-------------- next part --------------
A non-text attachment was scrubbed...
Name: date-formats-with-space.diff
Type: application/octet-stream
Size: 7438 bytes
Desc: not available
Url : http://selenic.com/pipermail/mercurial-devel/attachments/20090331/08a10642/attachment.obj 


More information about the Mercurial-devel mailing list