stream-clone: avoid opening a revlog in case we do not need it
Opening an revlog has a cost, especially if it is inline as we have to scan the
file and construct an index.
To prevent the associated slowdown, we just do a minimal scan to check that an
inline file is still inline, and simply stream the file without creating a
revlog when we can.
This provides a big boost compared to the previous changeset, even if the full
generation is still penalized by the initial gathering of information.
All benchmarks are run on linux with Python 3.10.7.
# benchmark.name = hg.exchange.stream.generate
# benchmark.variants.version = v2
### Compared to the previous changesets
We get a large win all across the board!
# mercurial-2018-08-01-zstd-sparse-revlog
before: 0.250694 seconds
after: 0.105986 seconds (-57.72%)
# pypy-2018-08-01-zstd-sparse-revlog
before: 3.885657 seconds
after: 1.709748 seconds (-56.00%)
# netbeans-2018-08-01-zstd-sparse-revlog
before: 16.679371 seconds
after: 7.687469 seconds (-53.91%)
# mozilla-central-2018-08-01-zstd-sparse-revlog
before: 38.575482 seconds
after: 17.520316 seconds (-54.58%)
# mozilla-try-2019-02-18-zstd-sparse-revlog
before: 81.160994 seconds
after: 37.073753 seconds (-54.32%)
### Compared to 6.4.3
We are still significantly slower than 6.4.3, the extra time is usually twice
slower than the extra time we observe on the locked section, which is a quite
interesting information.
Except for mercurial-central that is much faster. That discrepancy is not really
explained yet.
# mercurial-2018-08-01-zstd-sparse-revlog
6.4.3: 0.072560 seconds
after: 0.105986 seconds (+46.07%) (- 0.03 seconds)
# pypy-2018-08-01-zstd-sparse-revlog
6.4.3: 1.211193 seconds
after: 1.709748 seconds (+41.16%) (-0.45 seconds)
# netbeans-2018-08-01-zstd-sparse-revlog
6.4.3: 4.932843 seconds
after: 7.687469 seconds (+55.84%) (-2.75 seconds)
# mozilla-central-2018-08-01-zstd-sparse-revlog
6.4.3: 34.012226 seconds
after: 17.520316 seconds (-48.49%) (-16.49 seconds)
# mozilla-try-2019-02-18-zstd-sparse-revlog
6.4.3: 23.850555 seconds
after: 37.073753 seconds (+55.44%) (+13.22 seconds)
$ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
$ echo "[diff]" >> $HGRCPATH
$ echo "nodates=true" >> $HGRCPATH
$ catlog() {
> cat .hg/patches/$1.patch | sed -e "s/^diff \-r [0-9a-f]* /diff -r ... /" \
> -e "s/^\(# Parent \).*/\1/"
> hg log --template "{rev}: {node|short} {desc} - {author}\n"
> }
$ runtest() {
> echo ==== init
> hg init a
> cd a
> hg qinit
>
>
> echo ==== qnew -U
> hg qnew -U 1.patch
> catlog 1
>
> echo ==== qref
> echo "1" >1
> hg add
> hg qref
> catlog 1
>
> echo ==== qref -u
> hg qref -u mary
> catlog 1
>
> echo ==== qnew
> hg qnew 2.patch
> echo "2" >2
> hg add
> hg qref
> catlog 2
>
> echo ==== qref -u
> hg qref -u jane
> catlog 2
>
>
> echo ==== qnew -U -m
> hg qnew -U -m "Three" 3.patch
> catlog 3
>
> echo ==== qref
> echo "3" >3
> hg add
> hg qref
> catlog 3
>
> echo ==== qref -m
> hg qref -m "Drei"
> catlog 3
>
> echo ==== qref -u
> hg qref -u mary
> catlog 3
>
> echo ==== qref -u -m
> hg qref -u maria -m "Three (again)"
> catlog 3
>
> echo ==== qnew -m
> hg qnew -m "Four" 4.patch
> echo "4" >4of t
> hg add
> hg qref
> catlog 4
>
> echo ==== qref -u
> hg qref -u jane
> catlog 4
>
>
> echo ==== qnew with HG header
> hg qnew --config 'mq.plain=true' 5.patch
> hg qpop
> echo "# HG changeset patch" >>.hg/patches/5.patch
> echo "# User johndoe" >>.hg/patches/5.patch
> hg qpush 2>&1 | grep 'now at'
> catlog 5
>
> echo ==== hg qref
> echo "5" >5
> hg add
> hg qref
> catlog 5
>
> echo ==== hg qref -U
> hg qref -U
> catlog 5
>
> echo ==== hg qref -u
> hg qref -u johndeere
> catlog 5
>
>
> echo ==== qnew with plain header
> hg qnew --config 'mq.plain=true' -U 6.patch
> hg qpop
> hg qpush 2>&1 | grep 'now at'
> catlog 6
>
> echo ==== hg qref
> echo "6" >6
> hg add
> hg qref
> catlog 6
>
> echo ==== hg qref -U
> hg qref -U
> catlog 6
>
> echo ==== hg qref -u
> hg qref -u johndeere
> catlog 6
>
>
> echo ==== "qpop -a / qpush -a"
> hg qpop -a
> hg qpush -a
> hg log --template "{rev}: {node|short} {desc} - {author}\n"
> }
======= plain headers
$ echo "[mq]" >> $HGRCPATH
$ echo "plain=true" >> $HGRCPATH
$ mkdir sandbox
$ (cd sandbox ; runtest)
==== init
==== qnew -U
From: test
0: a054644889e5 [mq]: 1.patch - test
==== qref
adding 1
From: test
diff -r ... 1
--- /dev/null
+++ b/1
@@ -0,0 +1,1 @@
+1
0: 2905f1e46ee0 [mq]: 1.patch - test
==== qref -u
From: mary
diff -r ... 1
--- /dev/null
+++ b/1
@@ -0,0 +1,1 @@
+1
0: 3682f830e656 [mq]: 1.patch - mary
==== qnew
adding 2
diff -r ... 2
--- /dev/null
+++ b/2
@@ -0,0 +1,1 @@
+2
1: 527f98a12a7a [mq]: 2.patch - test
0: 3682f830e656 [mq]: 1.patch - mary
==== qref -u
From: jane
diff -r ... 2
--- /dev/null
+++ b/2
@@ -0,0 +1,1 @@
+2
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qnew -U -m
From: test
Three
2: 0ffa16a9088e Three - test
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qref
adding 3
From: test
Three
diff -r ... 3
--- /dev/null
+++ b/3
@@ -0,0 +1,1 @@
+3
2: 83f1290c6086 Three - test
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qref -m
From: test
Drei
diff -r ... 3
--- /dev/null
+++ b/3
@@ -0,0 +1,1 @@
+3
2: b0d856328d4d Drei - test
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qref -u
From: mary
Drei
diff -r ... 3
--- /dev/null
+++ b/3
@@ -0,0 +1,1 @@
+3
2: bb9d4b28e6a6 Drei - mary
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qref -u -m
From: maria
Three (again)
diff -r ... 3
--- /dev/null
+++ b/3
@@ -0,0 +1,1 @@
+3
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qnew -m
adding 4of
Four
diff -r ... 4of
--- /dev/null
+++ b/4of
@@ -0,0 +1,1 @@
+4 t
3: b9f922d0da40 Four - test
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qref -u
From: jane
Four
diff -r ... 4of
--- /dev/null
+++ b/4of
@@ -0,0 +1,1 @@
+4 t
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qnew with HG header
popping 5.patch
now at: 4.patch
now at: 5.patch
# HG changeset patch
# User johndoe
4: 72bc4a0467ef imported patch 5.patch - johndoe
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref
adding 5
# HG changeset patch
# User johndoe
# Parent
diff -r ... 5
--- /dev/null
+++ b/5
@@ -0,0 +1,1 @@
+5
4: ff5c06112e5a [mq]: 5.patch - johndoe
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref -U
# HG changeset patch
# User test
# Parent
diff -r ... 5
--- /dev/null
+++ b/5
@@ -0,0 +1,1 @@
+5
4: c947416c22b1 [mq]: 5.patch - test
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref -u
# HG changeset patch
# User johndeere
# Parent
diff -r ... 5
--- /dev/null
+++ b/5
@@ -0,0 +1,1 @@
+5
4: 1d898e201a22 [mq]: 5.patch - johndeere
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qnew with plain header
popping 6.patch
now at: 5.patch
now at: 6.patch
From: test
5: 7825a18ec839 imported patch 6.patch - test
4: 1d898e201a22 [mq]: 5.patch - johndeere
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref
adding 6
From: test
diff -r ... 6
--- /dev/null
+++ b/6
@@ -0,0 +1,1 @@
+6
5: 09d19592680d [mq]: 6.patch - test
4: 1d898e201a22 [mq]: 5.patch - johndeere
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref -U
From: test
diff -r ... 6
--- /dev/null
+++ b/6
@@ -0,0 +1,1 @@
+6
5: 09d19592680d [mq]: 6.patch - test
4: 1d898e201a22 [mq]: 5.patch - johndeere
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref -u
From: johndeere
diff -r ... 6
--- /dev/null
+++ b/6
@@ -0,0 +1,1 @@
+6
5: 32641ee07196 [mq]: 6.patch - johndeere
4: 1d898e201a22 [mq]: 5.patch - johndeere
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qpop -a / qpush -a
popping 6.patch
popping 5.patch
popping 4.patch
popping 3.patch
popping 2.patch
popping 1.patch
patch queue now empty
applying 1.patch
applying 2.patch
applying 3.patch
applying 4.patch
applying 5.patch
applying 6.patch
now at: 6.patch
5: 1fb083c80457 imported patch 6.patch - johndeere
4: 7e96e969691d imported patch 5.patch - johndeere
3: c7147533d3cd Four - jane
2: b383d04401ea Three (again) - maria
1: fac2da4efc3c imported patch 2.patch - jane
0: b6e237e8771b imported patch 1.patch - mary
$ rm -r sandbox
======= hg headers
$ echo "plain=false" >> $HGRCPATH
$ mkdir sandbox
$ (cd sandbox ; runtest)
==== init
==== qnew -U
# HG changeset patch
# User test
# Parent
0: a054644889e5 [mq]: 1.patch - test
==== qref
adding 1
# HG changeset patch
# User test
# Parent
diff -r ... 1
--- /dev/null
+++ b/1
@@ -0,0 +1,1 @@
+1
0: 2905f1e46ee0 [mq]: 1.patch - test
==== qref -u
# HG changeset patch
# User mary
# Parent
diff -r ... 1
--- /dev/null
+++ b/1
@@ -0,0 +1,1 @@
+1
0: 3682f830e656 [mq]: 1.patch - mary
==== qnew
adding 2
# HG changeset patch
# Parent
diff -r ... 2
--- /dev/null
+++ b/2
@@ -0,0 +1,1 @@
+2
1: 527f98a12a7a [mq]: 2.patch - test
0: 3682f830e656 [mq]: 1.patch - mary
==== qref -u
# HG changeset patch
# User jane
# Parent
diff -r ... 2
--- /dev/null
+++ b/2
@@ -0,0 +1,1 @@
+2
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qnew -U -m
# HG changeset patch
# User test
# Parent
Three
2: 0ffa16a9088e Three - test
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qref
adding 3
# HG changeset patch
# User test
# Parent
Three
diff -r ... 3
--- /dev/null
+++ b/3
@@ -0,0 +1,1 @@
+3
2: 83f1290c6086 Three - test
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qref -m
# HG changeset patch
# User test
# Parent
Drei
diff -r ... 3
--- /dev/null
+++ b/3
@@ -0,0 +1,1 @@
+3
2: b0d856328d4d Drei - test
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qref -u
# HG changeset patch
# User mary
# Parent
Drei
diff -r ... 3
--- /dev/null
+++ b/3
@@ -0,0 +1,1 @@
+3
2: bb9d4b28e6a6 Drei - mary
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qref -u -m
# HG changeset patch
# User maria
# Parent
Three (again)
diff -r ... 3
--- /dev/null
+++ b/3
@@ -0,0 +1,1 @@
+3
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qnew -m
adding 4of
# HG changeset patch
# Parent
Four
diff -r ... 4of
--- /dev/null
+++ b/4of
@@ -0,0 +1,1 @@
+4 t
3: b9f922d0da40 Four - test
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qref -u
# HG changeset patch
# User jane
# Parent
Four
diff -r ... 4of
--- /dev/null
+++ b/4of
@@ -0,0 +1,1 @@
+4 t
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qnew with HG header
popping 5.patch
now at: 4.patch
now at: 5.patch
# HG changeset patch
# User johndoe
4: 72bc4a0467ef imported patch 5.patch - johndoe
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref
adding 5
# HG changeset patch
# User johndoe
# Parent
diff -r ... 5
--- /dev/null
+++ b/5
@@ -0,0 +1,1 @@
+5
4: ff5c06112e5a [mq]: 5.patch - johndoe
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref -U
# HG changeset patch
# User test
# Parent
diff -r ... 5
--- /dev/null
+++ b/5
@@ -0,0 +1,1 @@
+5
4: c947416c22b1 [mq]: 5.patch - test
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref -u
# HG changeset patch
# User johndeere
# Parent
diff -r ... 5
--- /dev/null
+++ b/5
@@ -0,0 +1,1 @@
+5
4: 1d898e201a22 [mq]: 5.patch - johndeere
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qnew with plain header
popping 6.patch
now at: 5.patch
now at: 6.patch
From: test
5: 7825a18ec839 imported patch 6.patch - test
4: 1d898e201a22 [mq]: 5.patch - johndeere
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref
adding 6
From: test
diff -r ... 6
--- /dev/null
+++ b/6
@@ -0,0 +1,1 @@
+6
5: 09d19592680d [mq]: 6.patch - test
4: 1d898e201a22 [mq]: 5.patch - johndeere
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref -U
From: test
diff -r ... 6
--- /dev/null
+++ b/6
@@ -0,0 +1,1 @@
+6
5: 09d19592680d [mq]: 6.patch - test
4: 1d898e201a22 [mq]: 5.patch - johndeere
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref -u
From: johndeere
diff -r ... 6
--- /dev/null
+++ b/6
@@ -0,0 +1,1 @@
+6
5: 32641ee07196 [mq]: 6.patch - johndeere
4: 1d898e201a22 [mq]: 5.patch - johndeere
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qpop -a / qpush -a
popping 6.patch
popping 5.patch
popping 4.patch
popping 3.patch
popping 2.patch
popping 1.patch
patch queue now empty
applying 1.patch
applying 2.patch
applying 3.patch
applying 4.patch
applying 5.patch
applying 6.patch
now at: 6.patch
5: 1fb083c80457 imported patch 6.patch - johndeere
4: 7e96e969691d imported patch 5.patch - johndeere
3: c7147533d3cd Four - jane
2: b383d04401ea Three (again) - maria
1: fac2da4efc3c imported patch 2.patch - jane
0: b6e237e8771b imported patch 1.patch - mary
$ rm -r sandbox
$ runtest
==== init
==== qnew -U
# HG changeset patch
# User test
# Parent
0: a054644889e5 [mq]: 1.patch - test
==== qref
adding 1
# HG changeset patch
# User test
# Parent
diff -r ... 1
--- /dev/null
+++ b/1
@@ -0,0 +1,1 @@
+1
0: 2905f1e46ee0 [mq]: 1.patch - test
==== qref -u
# HG changeset patch
# User mary
# Parent
diff -r ... 1
--- /dev/null
+++ b/1
@@ -0,0 +1,1 @@
+1
0: 3682f830e656 [mq]: 1.patch - mary
==== qnew
adding 2
# HG changeset patch
# Parent
diff -r ... 2
--- /dev/null
+++ b/2
@@ -0,0 +1,1 @@
+2
1: 527f98a12a7a [mq]: 2.patch - test
0: 3682f830e656 [mq]: 1.patch - mary
==== qref -u
# HG changeset patch
# User jane
# Parent
diff -r ... 2
--- /dev/null
+++ b/2
@@ -0,0 +1,1 @@
+2
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qnew -U -m
# HG changeset patch
# User test
# Parent
Three
2: 0ffa16a9088e Three - test
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qref
adding 3
# HG changeset patch
# User test
# Parent
Three
diff -r ... 3
--- /dev/null
+++ b/3
@@ -0,0 +1,1 @@
+3
2: 83f1290c6086 Three - test
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qref -m
# HG changeset patch
# User test
# Parent
Drei
diff -r ... 3
--- /dev/null
+++ b/3
@@ -0,0 +1,1 @@
+3
2: b0d856328d4d Drei - test
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qref -u
# HG changeset patch
# User mary
# Parent
Drei
diff -r ... 3
--- /dev/null
+++ b/3
@@ -0,0 +1,1 @@
+3
2: bb9d4b28e6a6 Drei - mary
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qref -u -m
# HG changeset patch
# User maria
# Parent
Three (again)
diff -r ... 3
--- /dev/null
+++ b/3
@@ -0,0 +1,1 @@
+3
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qnew -m
adding 4of
# HG changeset patch
# Parent
Four
diff -r ... 4of
--- /dev/null
+++ b/4of
@@ -0,0 +1,1 @@
+4 t
3: b9f922d0da40 Four - test
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qref -u
# HG changeset patch
# User jane
# Parent
Four
diff -r ... 4of
--- /dev/null
+++ b/4of
@@ -0,0 +1,1 @@
+4 t
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qnew with HG header
popping 5.patch
now at: 4.patch
now at: 5.patch
# HG changeset patch
# User johndoe
4: 72bc4a0467ef imported patch 5.patch - johndoe
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref
adding 5
# HG changeset patch
# User johndoe
# Parent
diff -r ... 5
--- /dev/null
+++ b/5
@@ -0,0 +1,1 @@
+5
4: ff5c06112e5a [mq]: 5.patch - johndoe
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref -U
# HG changeset patch
# User test
# Parent
diff -r ... 5
--- /dev/null
+++ b/5
@@ -0,0 +1,1 @@
+5
4: c947416c22b1 [mq]: 5.patch - test
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref -u
# HG changeset patch
# User johndeere
# Parent
diff -r ... 5
--- /dev/null
+++ b/5
@@ -0,0 +1,1 @@
+5
4: 1d898e201a22 [mq]: 5.patch - johndeere
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qnew with plain header
popping 6.patch
now at: 5.patch
now at: 6.patch
From: test
5: 7825a18ec839 imported patch 6.patch - test
4: 1d898e201a22 [mq]: 5.patch - johndeere
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref
adding 6
From: test
diff -r ... 6
--- /dev/null
+++ b/6
@@ -0,0 +1,1 @@
+6
5: 09d19592680d [mq]: 6.patch - test
4: 1d898e201a22 [mq]: 5.patch - johndeere
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref -U
From: test
diff -r ... 6
--- /dev/null
+++ b/6
@@ -0,0 +1,1 @@
+6
5: 09d19592680d [mq]: 6.patch - test
4: 1d898e201a22 [mq]: 5.patch - johndeere
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== hg qref -u
From: johndeere
diff -r ... 6
--- /dev/null
+++ b/6
@@ -0,0 +1,1 @@
+6
5: 32641ee07196 [mq]: 6.patch - johndeere
4: 1d898e201a22 [mq]: 5.patch - johndeere
3: 0dfb3111e7ee Four - jane
2: a6686ee84fc3 Three (again) - maria
1: a425cde5f493 [mq]: 2.patch - jane
0: 3682f830e656 [mq]: 1.patch - mary
==== qpop -a / qpush -a
popping 6.patch
popping 5.patch
popping 4.patch
popping 3.patch
popping 2.patch
popping 1.patch
patch queue now empty
applying 1.patch
applying 2.patch
applying 3.patch
applying 4.patch
applying 5.patch
applying 6.patch
now at: 6.patch
5: 1fb083c80457 imported patch 6.patch - johndeere
4: 7e96e969691d imported patch 5.patch - johndeere
3: c7147533d3cd Four - jane
2: b383d04401ea Three (again) - maria
1: fac2da4efc3c imported patch 2.patch - jane
0: b6e237e8771b imported patch 1.patch - mary
$ cd ..