minirst: support containers
Text can be grouped into generic containers in reStructuredText:
.. container:: foo
This is text inside a "foo" container.
.. container:: bar
This is nested inside two containers.
The minirst parser now recognizes these containers. The containers are
either pruned completely from the output (included all nested blocks)
or they are simply un-indented. So if 'foo' and 'bar' containers are
kept, the above example will result in:
This is text inside a "foo" container.
This is nested inside two containers.
If only 'foo' containers are kept, we get:
This is text inside a "foo" container.
No output is made if only 'bar' containers are kept.
This feature will come in handy for implementing different levels of
help output (e.g., verbose and debug level help texts).
#!/bin/sh
# This runs with TZ="GMT"
hg init
echo "test-parse-date" > a
hg add a
hg ci -d "2006-02-01 13:00:30" -m "rev 0"
echo "hi!" >> a
hg ci -d "2006-02-01 13:00:30 -0500" -m "rev 1"
hg tag -d "2006-04-15 13:30" "Hi"
hg backout --merge -d "2006-04-15 13:30 +0200" -m "rev 3" 1
hg ci -d "1150000000 14400" -m "rev 4 (merge)"
echo "fail" >> a
hg ci -d "should fail" -m "fail"
hg ci -d "100000000000000000 1400" -m "fail"
hg ci -d "100000 1400000" -m "fail"
# Check with local timezone other than GMT and with DST
TZ="PST+8PDT"
export TZ
# PST=UTC-8 / PDT=UTC-7
hg debugrebuildstate
echo "a" > a
hg ci -d "2006-07-15 13:30" -m "summer@UTC-7"
hg debugrebuildstate
echo "b" > a
hg ci -d "2006-07-15 13:30 +0500" -m "summer@UTC+5"
hg debugrebuildstate
echo "c" > a
hg ci -d "2006-01-15 13:30" -m "winter@UTC-8"
hg debugrebuildstate
echo "d" > a
hg ci -d "2006-01-15 13:30 +0500" -m "winter@UTC+5"
hg log --template '{date|date}\n'
# Test issue1014 (fractional timezones)
hg debugdate "1000000000 -16200" # 0430
hg debugdate "1000000000 -15300" # 0415
hg debugdate "1000000000 -14400" # 0400
hg debugdate "1000000000 0" # GMT
hg debugdate "1000000000 14400" # -0400
hg debugdate "1000000000 15300" # -0415
hg debugdate "1000000000 16200" # -0430
hg debugdate "Sat Sep 08 21:16:40 2001 +0430"
hg debugdate "Sat Sep 08 21:16:40 2001 -0430"
# Test 12-hours times
hg debugdate "2006-02-01 1:00:30PM +0000"
hg debugdate "1:00:30PM" > /dev/null || echo 'failed'
#Test date formats with '>' or '<' accompanied by space characters
hg log -d '>' --template '{date|date}\n'
hg log -d '<' hg log -d '>' --template '{date|date}\n'
hg log -d ' >' --template '{date|date}\n'
hg log -d ' <' --template '{date|date}\n'
hg log -d '> ' --template '{date|date}\n'
hg log -d '< ' --template '{date|date}\n'
hg log -d ' > ' --template '{date|date}\n'
hg log -d ' < ' --template '{date|date}\n'
hg log -d '>02/01' --template '{date|date}\n'
hg log -d '<02/01' --template '{date|date}\n'
hg log -d ' >02/01' --template '{date|date}\n'
hg log -d ' <02/01' --template '{date|date}\n'
hg log -d '> 02/01' --template '{date|date}\n'
hg log -d '< 02/01' --template '{date|date}\n'
hg log -d ' > 02/01' --template '{date|date}\n'
hg log -d ' < 02/01' --template '{date|date}\n'
hg log -d '>02/01 ' --template '{date|date}\n'
hg log -d '<02/01 ' --template '{date|date}\n'
hg log -d ' >02/01 ' --template '{date|date}\n'
hg log -d ' <02/01 ' --template '{date|date}\n'
hg log -d '> 02/01 ' --template '{date|date}\n'
hg log -d '< 02/01 ' --template '{date|date}\n'
hg log -d ' > 02/01 ' --template '{date|date}\n'
hg log -d ' < 02/01 ' --template '{date|date}\n'