test-mq-qimport.t
359 lines
| 7.5 KiB
| text/troff
|
Tads3Lexer
/ tests / test-mq-qimport.t
|
r22046 | #require killdaemons | ||
|
r12464 | |||
$ cat > writelines.py <<EOF | ||||
> import sys | ||||
> path = sys.argv[1] | ||||
> args = sys.argv[2:] | ||||
> assert (len(args) % 2) == 0 | ||||
> | ||||
> f = file(path, 'wb') | ||||
> for i in xrange(len(args)/2): | ||||
> count, s = args[2*i:2*i+2] | ||||
> count = int(count) | ||||
> s = s.decode('string_escape') | ||||
> f.write(s*count) | ||||
> f.close() | ||||
> | ||||
> EOF | ||||
|
r23172 | > cat <<EOF >> $HGRCPATH | ||
> [extensions] | ||||
> mq = | ||||
> [diff] | ||||
> git = 1 | ||||
> EOF | ||||
|
r12464 | $ hg init repo | ||
$ cd repo | ||||
|
r16987 | qimport without file or revision | ||
$ hg qimport | ||||
abort: no files or revisions specified | ||||
[255] | ||||
|
r12464 | qimport non-existing-file | ||
$ hg qimport non-existing-file | ||||
abort: unable to read file non-existing-file | ||||
[255] | ||||
|
r16359 | qimport null revision | ||
$ hg qimport -r null | ||||
abort: revision -1 is not mutable | ||||
|
r29968 | (see 'hg help phases' for details) | ||
|
r16359 | [255] | ||
$ hg qseries | ||||
|
r12464 | import email | ||
$ hg qimport --push -n email - <<EOF | ||||
> From: Username in email <test@example.net> | ||||
> Subject: [PATCH] Message in email | ||||
> Date: Fri, 02 Jan 1970 00:00:00 +0000 | ||||
> | ||||
> Text before patch. | ||||
> | ||||
> # HG changeset patch | ||||
> # User Username in patch <test@example.net> | ||||
> # Date 0 0 | ||||
> # Node ID 1a706973a7d84cb549823634a821d9bdf21c6220 | ||||
> # Parent 0000000000000000000000000000000000000000 | ||||
> First line of commit message. | ||||
> | ||||
> More text in commit message. | ||||
> --- confuse the diff detection | ||||
> | ||||
> diff --git a/x b/x | ||||
> new file mode 100644 | ||||
> --- /dev/null | ||||
> +++ b/x | ||||
> @@ -0,0 +1,1 @@ | ||||
> +new file | ||||
> Text after patch. | ||||
> | ||||
> EOF | ||||
adding email to series file | ||||
applying email | ||||
now at: email | ||||
hg tip -v | ||||
$ hg tip -v | ||||
changeset: 0:1a706973a7d8 | ||||
tag: email | ||||
tag: qbase | ||||
tag: qtip | ||||
tag: tip | ||||
user: Username in patch <test@example.net> | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
files: x | ||||
description: | ||||
First line of commit message. | ||||
More text in commit message. | ||||
$ hg qpop | ||||
popping email | ||||
patch queue now empty | ||||
$ hg qdelete email | ||||
import URL | ||||
$ echo foo >> foo | ||||
$ hg add foo | ||||
|
r12642 | $ hg diff > url.diff | ||
|
r12464 | $ hg revert --no-backup foo | ||
$ rm foo | ||||
Under unix: file:///foobar/blah | ||||
Under windows: file:///c:/foobar/blah | ||||
|
r12642 | $ patchurl=`pwd | tr '\\\\' /`/url.diff | ||
|
r12464 | $ expr "$patchurl" : "\/" > /dev/null || patchurl="/$patchurl" | ||
$ hg qimport file://"$patchurl" | ||||
adding url.diff to series file | ||||
|
r12642 | $ rm url.diff | ||
|
r12464 | $ hg qun | ||
url.diff | ||||
import patch that already exists | ||||
$ echo foo2 >> foo | ||||
$ hg add foo | ||||
$ hg diff > ../url.diff | ||||
$ hg revert --no-backup foo | ||||
$ rm foo | ||||
$ hg qimport ../url.diff | ||||
abort: patch "url.diff" already exists | ||||
[255] | ||||
$ hg qpush | ||||
applying url.diff | ||||
now at: url.diff | ||||
$ cat foo | ||||
foo | ||||
$ hg qpop | ||||
popping url.diff | ||||
patch queue now empty | ||||
qimport -f | ||||
$ hg qimport -f ../url.diff | ||||
adding url.diff to series file | ||||
$ hg qpush | ||||
applying url.diff | ||||
now at: url.diff | ||||
$ cat foo | ||||
foo2 | ||||
$ hg qpop | ||||
popping url.diff | ||||
patch queue now empty | ||||
build diff with CRLF | ||||
$ python ../writelines.py b 5 'a\n' 5 'a\r\n' | ||||
$ hg ci -Am addb | ||||
adding b | ||||
$ python ../writelines.py b 2 'a\n' 10 'b\n' 2 'a\r\n' | ||||
$ hg diff > b.diff | ||||
$ hg up -C | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
qimport CRLF diff | ||||
$ hg qimport b.diff | ||||
adding b.diff to series file | ||||
$ hg qpush | ||||
applying b.diff | ||||
now at: b.diff | ||||
try to import --push | ||||
|
r16119 | $ cat > appendfoo.diff <<EOF | ||
> append foo | ||||
|
r17347 | > | ||
|
r16119 | > diff -r 07f494440405 -r 261500830e46 baz | ||
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 | ||||
> +++ b/baz Thu Jan 01 00:00:00 1970 +0000 | ||||
> @@ -0,0 +1,1 @@ | ||||
> +foo | ||||
> EOF | ||||
$ cat > appendbar.diff <<EOF | ||||
> append bar | ||||
|
r17347 | > | ||
|
r16119 | > diff -r 07f494440405 -r 261500830e46 baz | ||
> --- a/baz Thu Jan 01 00:00:00 1970 +0000 | ||||
> +++ b/baz Thu Jan 01 00:00:00 1970 +0000 | ||||
> @@ -1,1 +1,2 @@ | ||||
> foo | ||||
> +bar | ||||
> EOF | ||||
$ hg qimport --push appendfoo.diff appendbar.diff | ||||
adding appendfoo.diff to series file | ||||
adding appendbar.diff to series file | ||||
applying appendfoo.diff | ||||
applying appendbar.diff | ||||
now at: appendbar.diff | ||||
|
r12464 | $ hg qfin -a | ||
patch b.diff finalized without changeset message | ||||
|
r26736 | $ touch .hg/patches/append_foo | ||
|
r21965 | $ hg qimport -r 'p1(.)::' | ||
$ hg qapplied | ||||
|
r27919 | append_foo__1 | ||
|
r26736 | append_bar | ||
|
r21965 | $ hg qfin -a | ||
|
r26736 | $ rm .hg/patches/append_foo | ||
|
r16119 | $ hg qimport -r 'p1(.)::' -P | ||
|
r12464 | $ hg qpop -a | ||
|
r26736 | popping append_bar | ||
popping append_foo | ||||
|
r12464 | patch queue now empty | ||
|
r26736 | $ hg qdel append_foo | ||
$ hg qdel -k append_bar | ||||
|
r12464 | |||
qimport -e | ||||
|
r26736 | $ hg qimport -e append_bar | ||
adding append_bar to series file | ||||
$ hg qdel -k append_bar | ||||
|
r12464 | |||
qimport -e --name newname oldexisitingpatch | ||||
|
r26736 | $ hg qimport -e --name this-name-is-better append_bar | ||
renaming append_bar to this-name-is-better | ||||
|
r12464 | adding this-name-is-better to series file | ||
$ hg qser | ||||
this-name-is-better | ||||
url.diff | ||||
qimport -e --name without --force | ||||
$ cp .hg/patches/this-name-is-better .hg/patches/3.diff | ||||
$ hg qimport -e --name this-name-is-better 3.diff | ||||
abort: patch "this-name-is-better" already exists | ||||
[255] | ||||
$ hg qser | ||||
this-name-is-better | ||||
url.diff | ||||
qimport -e --name with --force | ||||
$ hg qimport --force -e --name this-name-is-better 3.diff | ||||
renaming 3.diff to this-name-is-better | ||||
adding this-name-is-better to series file | ||||
$ hg qser | ||||
this-name-is-better | ||||
url.diff | ||||
|
r14395 | |||
|
r31556 | import patch of bad filename | ||
$ touch '../ bad.diff' | ||||
$ hg qimport '../ bad.diff' | ||||
abort: patch name cannot begin or end with whitespace | ||||
[255] | ||||
$ touch '.hg/patches/ bad.diff' | ||||
$ hg qimport -e ' bad.diff' | ||||
abort: patch name cannot begin or end with whitespace | ||||
[255] | ||||
|
r14395 | qimport with bad name, should abort before reading file | ||
|
r17492 | $ hg qimport non-existent-file --name .hg | ||
|
r14395 | abort: patch name cannot begin with ".hg" | ||
[255] | ||||
|
r31556 | $ hg qimport non-existent-file --name ' foo' | ||
abort: patch name cannot begin or end with whitespace | ||||
[255] | ||||
$ hg qimport non-existent-file --name 'foo ' | ||||
abort: patch name cannot begin or end with whitespace | ||||
[255] | ||||
|
r14396 | |||
qimport http:// patch with leading slashes in url | ||||
set up hgweb | ||||
$ cd .. | ||||
$ hg init served | ||||
$ cd served | ||||
$ echo a > a | ||||
$ hg ci -Am patch | ||||
adding a | ||||
$ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log | ||||
$ cat hg.pid >> $DAEMON_PIDS | ||||
$ cd ../repo | ||||
$ hg qimport http://localhost:$HGPORT/raw-rev/0/// | ||||
adding 0 to series file | ||||
|
r16027 | |||
check qimport phase: | ||||
$ hg -q qpush | ||||
now at: 0 | ||||
$ hg phase qparent | ||||
1: draft | ||||
$ hg qimport -r qparent | ||||
$ hg phase qbase | ||||
1: draft | ||||
$ hg qfinish qbase | ||||
$ echo '[mq]' >> $HGRCPATH | ||||
$ echo 'secret=true' >> $HGRCPATH | ||||
$ hg qimport -r qparent | ||||
$ hg phase qbase | ||||
1: secret | ||||
|
r16913 | |||
$ cd .. | ||||
|
r17565 | |||
|
r25474 | $ killdaemons.py | ||
|
r27513 | |||
check patch name generation for non-alpha-numeric summary line | ||||
$ cd repo | ||||
$ hg qpop -a -q | ||||
patch queue now empty | ||||
$ hg qseries -v | ||||
0 U imported_patch_b_diff | ||||
1 U 0 | ||||
2 U this-name-is-better | ||||
3 U url.diff | ||||
$ echo bb >> b | ||||
$ hg commit -m '==++--==' | ||||
$ hg qimport -r tip | ||||
$ hg qseries -v | ||||
0 A 1.diff | ||||
1 U imported_patch_b_diff | ||||
2 U 0 | ||||
3 U this-name-is-better | ||||
4 U url.diff | ||||
|
r27919 | |||
check reserved patch names | ||||
$ hg qpop -qa | ||||
patch queue now empty | ||||
$ echo >> b | ||||
$ hg commit -m 'status' | ||||
$ echo >> b | ||||
$ hg commit -m '.' | ||||
$ echo >> b | ||||
$ hg commit -m 'taken' | ||||
$ mkdir .hg/patches/taken | ||||
$ touch .hg/patches/taken__1 | ||||
$ hg qimport -r -3:: | ||||
$ hg qap | ||||
1.diff__1 | ||||
2.diff | ||||
taken__2 | ||||
|
r28388 | check very long patch name | ||
$ hg qpop -qa | ||||
patch queue now empty | ||||
$ echo >> b | ||||
$ hg commit -m 'abcdefghi pqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi pqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi pqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi pqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi pqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi pqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' | ||||
$ hg qimport -r . | ||||
$ hg qap | ||||
abcdefghi_pqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghi_pqrstuvwxyzabcdefg | ||||