progress: handle days, weeks and years
using hg clone svn://anonsvn.kde.org/home/kde/trunk kde ... with progress
yields 3008/1210830 1314h56m, which is unusable.
Add code to switch to days at 30 hours, to weeks at 15 days, and to years
at 55 weeks. A day has 24 hours, a week has 7 days, and a year has 52 weeks.
Months are intentionally omitted because they do not have a fixed length. The
Use of 52 weeks is a known and understandable estimate for a year.
It might make sense to spell our year to alert people when progress is
impractical, but...
$ cat >findbranch.py <<EOF
> import re, sys
>
> head_re = re.compile('^#(?:(?:\\s+([A-Za-z][A-Za-z0-9_]*)(?:\\s.*)?)|(?:\\s*))$')
>
> for line in sys.stdin:
> hmatch = head_re.match(line)
> if not hmatch:
> sys.exit(1)
> if hmatch.group(1) == 'Branch':
> sys.exit(0)
> sys.exit(1)
> EOF
$ hg init a
$ cd a
$ echo "Rev 1" >rev
$ hg add rev
$ hg commit -m "No branch."
$ hg branch abranch
marked working directory as branch abranch
$ echo "Rev 2" >rev
$ hg commit -m "With branch."
$ if hg export 0 | python ../findbranch.py; then
> echo "Export of default branch revision has Branch header" 1>&2
> exit 1
> fi
$ if hg export 1 | python ../findbranch.py; then
> : # Do nothing
> else
> echo "Export of branch revision is missing Branch header" 1>&2
> exit 1
> fi
Make sure import still works with branch information in patches.
$ cd ..
$ hg init b
$ cd b
$ hg -R ../a export 0 | hg import -
applying patch from stdin
$ hg -R ../a export 1 | hg import -
applying patch from stdin
$ cd ..
$ rm -rf b
$ hg init b
$ cd b
$ hg -R ../a export 0 | hg import --exact -
applying patch from stdin
$ hg -R ../a export 1 | hg import --exact -
applying patch from stdin