##// END OF EJS Templates
histedit: make verification configurable...
histedit: make verification configurable Before we can add a 'base' action to histedit need to change verification so that action can specify which steps of verification should run for it. Also it's everything we need for the exec and stop actions implementation. I thought about baking verification into each histedit action (so each of them is responsible for verifying its constraints) but it felt wrong because: - every action would need to know its context (eg. the list of all other actions) - a lot of duplicated work will be added - each action will iterate through all others - the steps of the verification would need to be extracted and named anyway in order to be reused The verifyrules function grows too big now. I plan to refator it in one of the next series.

File last commit:

r26736:143b52fc default
r27082:4898e442 default
Show More
test-mq-qimport.t
292 lines | 5.9 KiB | text/troff | Tads3Lexer
/ tests / test-mq-qimport.t
Matt Mackall
tests: replace exit 80 with #require
r22046 #require killdaemons
Matt Mackall
tests: unify test-mq-qimport
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
Yuya Nishihara
tests: write hgrc of more than two lines by using shell heredoc...
r23172 > cat <<EOF >> $HGRCPATH
> [extensions]
> mq =
> [diff]
> git = 1
> EOF
Matt Mackall
tests: unify test-mq-qimport
r12464 $ hg init repo
$ cd repo
Thomas Arendsen Hein
mq: abort if no files or revisions are specified for qimport
r16987 qimport without file or revision
$ hg qimport
abort: no files or revisions specified
[255]
Matt Mackall
tests: unify test-mq-qimport
r12464 qimport non-existing-file
$ hg qimport non-existing-file
abort: unable to read file non-existing-file
[255]
Patrick Mezard
context: make changectx.mutable() benefit from .phase() logic...
r16359 qimport null revision
$ hg qimport -r null
abort: revision -1 is not mutable
(see "hg help phases" for details)
[255]
$ hg qseries
Matt Mackall
tests: unify test-mq-qimport
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
Mads Kiilerich
tests: remove the last traces of $HGTMP...
r12642 $ hg diff > url.diff
Matt Mackall
tests: unify test-mq-qimport
r12464 $ hg revert --no-backup foo
$ rm foo
Under unix: file:///foobar/blah
Under windows: file:///c:/foobar/blah
Mads Kiilerich
tests: remove the last traces of $HGTMP...
r12642 $ patchurl=`pwd | tr '\\\\' /`/url.diff
Matt Mackall
tests: unify test-mq-qimport
r12464 $ expr "$patchurl" : "\/" > /dev/null || patchurl="/$patchurl"
$ hg qimport file://"$patchurl"
adding url.diff to series file
Mads Kiilerich
tests: remove the last traces of $HGTMP...
r12642 $ rm url.diff
Matt Mackall
tests: unify test-mq-qimport
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
Patrick Mezard
mq: make qimport --push push all imported patches (issue3130)...
r16119 $ cat > appendfoo.diff <<EOF
> append foo
Mads Kiilerich
check-code: fix check for trailing whitespace on continued lines too...
r17347 >
Patrick Mezard
mq: make qimport --push push all imported patches (issue3130)...
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
Mads Kiilerich
check-code: fix check for trailing whitespace on continued lines too...
r17347 >
Patrick Mezard
mq: make qimport --push push all imported patches (issue3130)...
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
Matt Mackall
tests: unify test-mq-qimport
r12464 $ hg qfin -a
patch b.diff finalized without changeset message
Mads Kiilerich
mq: generate patch names from first line of description...
r26736 $ touch .hg/patches/append_foo
Matt Mackall
qimport: record imported revs incrementally (issue3874)...
r21965 $ hg qimport -r 'p1(.)::'
Mads Kiilerich
mq: generate patch names from first line of description...
r26736 abort: patch "append_foo" already exists
Matt Mackall
qimport: record imported revs incrementally (issue3874)...
r21965 [255]
$ hg qapplied
Mads Kiilerich
mq: generate patch names from first line of description...
r26736 append_bar
Matt Mackall
qimport: record imported revs incrementally (issue3874)...
r21965 $ hg qfin -a
Mads Kiilerich
mq: generate patch names from first line of description...
r26736 $ rm .hg/patches/append_foo
Patrick Mezard
mq: make qimport --push push all imported patches (issue3130)...
r16119 $ hg qimport -r 'p1(.)::' -P
Matt Mackall
tests: unify test-mq-qimport
r12464 $ hg qpop -a
Mads Kiilerich
mq: generate patch names from first line of description...
r26736 popping append_bar
popping append_foo
Matt Mackall
tests: unify test-mq-qimport
r12464 patch queue now empty
Mads Kiilerich
mq: generate patch names from first line of description...
r26736 $ hg qdel append_foo
$ hg qdel -k append_bar
Matt Mackall
tests: unify test-mq-qimport
r12464
qimport -e
Mads Kiilerich
mq: generate patch names from first line of description...
r26736 $ hg qimport -e append_bar
adding append_bar to series file
$ hg qdel -k append_bar
Matt Mackall
tests: unify test-mq-qimport
r12464
qimport -e --name newname oldexisitingpatch
Mads Kiilerich
mq: generate patch names from first line of description...
r26736 $ hg qimport -e --name this-name-is-better append_bar
renaming append_bar to this-name-is-better
Matt Mackall
tests: unify test-mq-qimport
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
Idan Kamara
mq: check patch name is valid before reading imported file
r14395
qimport with bad name, should abort before reading file
timeless@mozdev.org
spelling: nonexistent
r17492 $ hg qimport non-existent-file --name .hg
Idan Kamara
mq: check patch name is valid before reading imported file
r14395 abort: patch name cannot begin with ".hg"
[255]
Idan Kamara
mq: strip all leading slashes from url when importing...
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
Pierre-Yves David
qimport: when mq.secret=True set qimported revision as secret
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
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..
Patrick Mezard
tests: enable even more Windows server tests
r17565
Matt Mackall
tests: drop DAEMON_PIDS from killdaemons calls
r25474 $ killdaemons.py