+tmp=.tmp-series$$
+trap 'rm -f $tmp-*' 0 1 2 3 15
+
+series=$tmp-series
+commsg=$tmp-commsg
+filelist=$tmp-files
+
+# Backward compatible argument parsing hack.
+#
+# Historically, we supported:
+# 1. "rev1" is equivalent to "rev1..HEAD"
+# 2. "rev1..rev2"
+# 3. "rev1" "rev2 is equivalent to "rev1..rev2"
+#
+# We want to take a sequence of "rev1..rev2" in general.
+# Also, "rev1.." should mean "rev1..HEAD"; git-diff users are
+# familiar with that syntax.
+
+case "$#,$1$2" in
+1,?*..?*)
+ # single "rev1..rev2"
+ ;;
+1,?*..)
+ # single "rev1.." should mean "rev1..HEAD"
+ set x "$1"HEAD
+ shift
+ ;;
+1,*)
+ # single rev1
+ set x "$1..HEAD"
+ shift
+ ;;
+2,?*..?*)
+ # not traditional "rev1" "rev2"
+ ;;
+2,*)
+ set x "$1..$2"
+ shift
+ ;;