2018-03-29 18:06:30 +03:00
|
|
|
#testcases withpytz withoutpytz
|
|
|
|
#if withpytz
|
|
|
|
$ python -c "import pytz" || exit 80
|
|
|
|
#endif
|
|
|
|
$ cat >> $HGRCPATH <<EOF
|
|
|
|
> [extensions]
|
|
|
|
> smartlog=
|
|
|
|
> EOF
|
|
|
|
$ cat > $TESTTMP/fakedate.py <<EOF
|
|
|
|
> import datetime
|
|
|
|
> import time
|
|
|
|
> from mercurial import extensions
|
|
|
|
> def extsetup(ui):
|
|
|
|
> class fakedatetime(datetime.datetime):
|
|
|
|
> @staticmethod
|
|
|
|
> def now(tz=None):
|
|
|
|
> return datetime.datetime.fromtimestamp(826207201, tz) # 1996-03-07 14:00:01 UTC
|
|
|
|
> datetime.datetime = fakedatetime
|
|
|
|
> def faketime():
|
|
|
|
> return 826207201
|
|
|
|
> time.time = faketime
|
|
|
|
> EOF
|
|
|
|
$ TZ=UTC
|
|
|
|
$ export TZ
|
|
|
|
|
|
|
|
Create a repo with some commits at interesting dates.
|
|
|
|
$ hg init repo
|
|
|
|
$ cd repo
|
2018-05-23 18:57:39 +03:00
|
|
|
$ for d in 1970-01-01T00:00 1996-02-29T15:00 1996-03-01T19:20 1996-03-06T08:00 1996-03-07T12:02 1996-03-07T13:56 1996-03-07T14:00 1996-03-07T23:59
|
2018-03-29 18:06:30 +03:00
|
|
|
> do
|
|
|
|
> echo "$d" > stamp
|
|
|
|
> hg commit -Aqm "$d" -d "$d"
|
|
|
|
> done
|
|
|
|
|
|
|
|
Test smartlog with smartdate.
|
|
|
|
$ hg smartlog -r 'all()' -T '{rev}: {smartdate(date, 5400, age(date), simpledate(date))} "{desc}"' --config extensions.fakedate=$TESTTMP/fakedate.py
|
|
|
|
@ 7: 1996-03-07 23:59 "1996-03-07T23:59"
|
|
|
|
|
|
|
|
|
o 6: 1 second ago "1996-03-07T14:00"
|
|
|
|
|
|
|
|
|
o 5: 4 minutes ago "1996-03-07T13:56"
|
|
|
|
|
|
|
|
|
o 4: Today at 12:02 "1996-03-07T12:02"
|
|
|
|
|
|
|
|
|
o 3: Yesterday at 08:00 "1996-03-06T08:00"
|
|
|
|
|
|
|
|
|
o 2: Friday at 19:20 "1996-03-01T19:20"
|
|
|
|
|
|
2018-05-23 18:57:39 +03:00
|
|
|
o 1: Feb 29 at 15:00 "1996-02-29T15:00"
|
2018-03-29 18:06:30 +03:00
|
|
|
|
|
|
|
|
o 0: 1970-01-01 00:00 "1970-01-01T00:00"
|
|
|
|
|
|
|
|
$ hg smartlog -r 'all()' -T '{rev}: {smartdate(date, 18000, age(date), simpledate(date))} "{desc}"' --config extensions.fakedate=$TESTTMP/fakedate.py
|
|
|
|
@ 7: 1996-03-07 23:59 "1996-03-07T23:59"
|
|
|
|
|
|
|
|
|
o 6: 1 second ago "1996-03-07T14:00"
|
|
|
|
|
|
|
|
|
o 5: 4 minutes ago "1996-03-07T13:56"
|
|
|
|
|
|
|
|
|
o 4: 118 minutes ago "1996-03-07T12:02"
|
|
|
|
|
|
|
|
|
o 3: Yesterday at 08:00 "1996-03-06T08:00"
|
|
|
|
|
|
|
|
|
o 2: Friday at 19:20 "1996-03-01T19:20"
|
|
|
|
|
|
2018-05-23 18:57:39 +03:00
|
|
|
o 1: Feb 29 at 15:00 "1996-02-29T15:00"
|
2018-03-29 18:06:30 +03:00
|
|
|
|
|
|
|
|
o 0: 1970-01-01 00:00 "1970-01-01T00:00"
|
|
|
|
|
|
|
|
$ TZ=America/Los_Angeles hg smartlog -r 'all()' -T '{rev}: {smartdate(date, 5400, age(date), simpledate(date))} "{desc}"' --config extensions.fakedate=$TESTTMP/fakedate.py
|
|
|
|
@ 7: 1996-03-07 15:59 "1996-03-07T23:59"
|
|
|
|
|
|
|
|
|
o 6: 1 second ago "1996-03-07T14:00"
|
|
|
|
|
|
|
|
|
o 5: 4 minutes ago "1996-03-07T13:56"
|
|
|
|
|
|
|
|
|
o 4: Today at 04:02 "1996-03-07T12:02"
|
|
|
|
|
|
|
|
|
o 3: Yesterday at 00:00 "1996-03-06T08:00"
|
|
|
|
|
|
|
|
|
o 2: Friday at 11:20 "1996-03-01T19:20"
|
|
|
|
|
|
2018-05-23 18:57:39 +03:00
|
|
|
o 1: Feb 29 at 07:00 "1996-02-29T15:00"
|
2018-03-29 18:06:30 +03:00
|
|
|
|
|
|
|
|
o 0: 1969-12-31 16:00 "1970-01-01T00:00"
|
|
|
|
|
|
|
|
#if withpytz
|
|
|
|
$ hg smartlog -r 'all()' -T '{rev}: {smartdate(date, 5400, age(date), simpledate(date, "Australia/Sydney"))} "{desc}"' --config extensions.fakedate=$TESTTMP/fakedate.py
|
|
|
|
@ 7: 1996-03-08 10:59 "1996-03-07T23:59"
|
|
|
|
|
|
|
|
|
o 6: 1 second ago "1996-03-07T14:00"
|
|
|
|
|
|
|
|
|
o 5: 4 minutes ago "1996-03-07T13:56"
|
|
|
|
|
|
|
|
|
o 4: Yesterday at 23:02 "1996-03-07T12:02"
|
|
|
|
|
|
|
|
|
o 3: Wednesday at 19:00 "1996-03-06T08:00"
|
|
|
|
|
|
|
|
|
o 2: Saturday at 06:20 "1996-03-01T19:20"
|
|
|
|
|
|
2018-05-23 18:57:39 +03:00
|
|
|
o 1: Mar 01 at 02:00 "1996-02-29T15:00"
|
2018-03-29 18:06:30 +03:00
|
|
|
|
|
|
|
|
o 0: 1970-01-01 10:00 "1970-01-01T00:00"
|
|
|
|
|
|
|
|
#endif
|