tests/test-mq-qnew.t
author Augie Fackler <augie@google.com>
Fri, 05 Jun 2015 14:34:58 -0400
changeset 25454 b5a8bc09b0db
parent 25453 d3a00fc3680f
child 26587 56b2bcea2529
permissions -rw-r--r--
mq: ban \r and \n in patch names (issue4711) This is at best crazy, and at worst will break things like the series file. Let's just stop the madness.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7296
695383442347 mq: put qnew tests into own file, fold in qnew-twice
Brendan Cully <brendan@kublai.com>
parents: 2990
diff changeset
     1
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
     2
  $ catpatch() {
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
     3
  >     cat $1 | sed -e "s/^\(# Parent \).*/\1/"
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
     4
  > }
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
     5
  $ echo "[extensions]" >> $HGRCPATH
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
     6
  $ echo "mq=" >> $HGRCPATH
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
     7
  $ runtest() {
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
     8
  >     hg init mq
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
     9
  >     cd mq
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    10
  > 
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    11
  >     echo a > a
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    12
  >     hg ci -Ama
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    13
  > 
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    14
  >     echo '% qnew should refuse bad patch names'
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    15
  >     hg qnew series
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    16
  >     hg qnew status
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    17
  >     hg qnew guards
14051
2b1226693c70 mq: add '.' and '..' to list of forbidden patch names
Idan Kamara <idankk86@gmail.com>
parents: 13197
diff changeset
    18
  >     hg qnew .
2b1226693c70 mq: add '.' and '..' to list of forbidden patch names
Idan Kamara <idankk86@gmail.com>
parents: 13197
diff changeset
    19
  >     hg qnew ..
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    20
  >     hg qnew .hgignore
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    21
  >     hg qnew .mqfoo
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    22
  >     hg qnew 'foo#bar'
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    23
  >     hg qnew 'foo:bar'
25454
b5a8bc09b0db mq: ban \r and \n in patch names (issue4711)
Augie Fackler <augie@google.com>
parents: 25453
diff changeset
    24
  >     hg qnew "`echo foo; echo bar`"
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    25
  > 
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    26
  >     hg qinit -c
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    27
  > 
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    28
  >     echo '% qnew with name containing slash'
12878
1634287b6ab1 qnew: give better feedback when doing 'hg qnew foo/' (issue2464)
Martin Geisler <mg@aragost.com>
parents: 12466
diff changeset
    29
  >     hg qnew foo/
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    30
  >     hg qnew foo/bar.patch
12879
da4a9ed369c8 qnew: distinguish between existing file and directory (issue2464)
Martin Geisler <mg@aragost.com>
parents: 12878
diff changeset
    31
  >     hg qnew foo
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    32
  >     hg qseries
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    33
  >     hg qpop
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    34
  >     hg qdelete foo/bar.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    35
  > 
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    36
  >     echo '% qnew with uncommitted changes'
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    37
  >     echo a > somefile
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    38
  >     hg add somefile
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    39
  >     hg qnew uncommitted.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    40
  >     hg st
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    41
  >     hg qseries
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    42
  > 
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    43
  >     echo '% qnew implies add'
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    44
  >     hg -R .hg/patches st
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    45
  > 
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    46
  >     echo '% qnew missing'
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    47
  >     hg qnew missing.patch missing
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    48
  > 
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    49
  >     echo '% qnew -m'
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    50
  >     hg qnew -m 'foo bar' mtest.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    51
  >     catpatch .hg/patches/mtest.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    52
  > 
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    53
  >     echo '% qnew twice'
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    54
  >     hg qnew first.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    55
  >     hg qnew first.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    56
  > 
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    57
  >     touch ../first.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    58
  >     hg qimport ../first.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    59
  > 
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    60
  >     echo '% qnew -f from a subdirectory'
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    61
  >     hg qpop -a
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    62
  >     mkdir d
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    63
  >     cd d
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    64
  >     echo b > b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    65
  >     hg ci -Am t
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    66
  >     echo b >> b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    67
  >     hg st
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    68
  >     hg qnew -g -f p
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    69
  >     catpatch ../.hg/patches/p
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    70
  > 
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    71
  >     echo '% qnew -u with no username configured'
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    72
  >     HGUSER= hg qnew -u blue red
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    73
  >     catpatch ../.hg/patches/red
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    74
  > 
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    75
  >     echo '% qnew -e -u with no username configured'
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    76
  >     HGUSER= hg qnew -e -u chartreuse fucsia
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    77
  >     catpatch ../.hg/patches/fucsia
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    78
  > 
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    79
  >     echo '% fail when trying to import a merge'
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    80
  >     hg init merge
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    81
  >     cd merge
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    82
  >     touch a
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    83
  >     hg ci -Am null
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    84
  >     echo a >> a
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    85
  >     hg ci -m a
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    86
  >     hg up -r 0
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    87
  >     echo b >> a
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    88
  >     hg ci -m b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    89
  >     hg merge -f 1
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    90
  >     hg resolve --mark a
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    91
  >     hg qnew -f merge
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    92
  > 
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    93
  >     cd ../../..
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    94
  >     rm -r mq
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    95
  > }
10397
8cb81d75730c mq: add parent node IDs to MQ patches on qrefresh/qnew
Steve Losh <steve@stevelosh.com>
parents: 10372
diff changeset
    96
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    97
plain headers
7296
695383442347 mq: put qnew tests into own file, fold in qnew-twice
Brendan Cully <brendan@kublai.com>
parents: 2990
diff changeset
    98
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
    99
  $ echo "[mq]" >> $HGRCPATH
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   100
  $ echo "plain=true" >> $HGRCPATH
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   101
  $ mkdir sandbox
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   102
  $ (cd sandbox ; runtest)
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   103
  adding a
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   104
  % qnew should refuse bad patch names
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   105
  abort: "series" cannot be used as the name of a patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   106
  abort: "status" cannot be used as the name of a patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   107
  abort: "guards" cannot be used as the name of a patch
14051
2b1226693c70 mq: add '.' and '..' to list of forbidden patch names
Idan Kamara <idankk86@gmail.com>
parents: 13197
diff changeset
   108
  abort: "." cannot be used as the name of a patch
2b1226693c70 mq: add '.' and '..' to list of forbidden patch names
Idan Kamara <idankk86@gmail.com>
parents: 13197
diff changeset
   109
  abort: ".." cannot be used as the name of a patch
14054
3c616f512a5b mq: be more explicit on invalid patch name message
Idan Kamara <idankk86@gmail.com>
parents: 14051
diff changeset
   110
  abort: patch name cannot begin with ".hg"
3c616f512a5b mq: be more explicit on invalid patch name message
Idan Kamara <idankk86@gmail.com>
parents: 14051
diff changeset
   111
  abort: patch name cannot begin with ".mq"
25453
d3a00fc3680f mq: use %r to format illegal characters instead of manually quoting
Augie Fackler <augie@google.com>
parents: 22521
diff changeset
   112
  abort: '#' cannot be used in the name of a patch
d3a00fc3680f mq: use %r to format illegal characters instead of manually quoting
Augie Fackler <augie@google.com>
parents: 22521
diff changeset
   113
  abort: ':' cannot be used in the name of a patch
25454
b5a8bc09b0db mq: ban \r and \n in patch names (issue4711)
Augie Fackler <augie@google.com>
parents: 25453
diff changeset
   114
  abort: '\n' cannot be used in the name of a patch
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   115
  % qnew with name containing slash
16540
4fe8eb4a6e2c tests: add missing accept of native pathname separator
Mads Kiilerich <mads@kiilerich.com>
parents: 15524
diff changeset
   116
  abort: path ends in directory separator: foo/ (glob)
12879
da4a9ed369c8 qnew: distinguish between existing file and directory (issue2464)
Martin Geisler <mg@aragost.com>
parents: 12878
diff changeset
   117
  abort: "foo" already exists as a directory
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   118
  foo/bar.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   119
  popping foo/bar.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   120
  patch queue now empty
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   121
  % qnew with uncommitted changes
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   122
  uncommitted.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   123
  % qnew implies add
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   124
  A .hgignore
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   125
  A series
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   126
  A uncommitted.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   127
  % qnew missing
15521
117f9190c1ba tests: hide 'No such file or directory' messages
Mads Kiilerich <mads@kiilerich.com>
parents: 14054
diff changeset
   128
  abort: missing: * (glob)
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   129
  % qnew -m
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   130
  foo bar
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   131
  
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   132
  % qnew twice
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   133
  abort: patch "first.patch" already exists
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   134
  abort: patch "first.patch" already exists
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   135
  % qnew -f from a subdirectory
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   136
  popping first.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   137
  popping mtest.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   138
  popping uncommitted.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   139
  patch queue now empty
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   140
  adding d/b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   141
  M d/b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   142
  diff --git a/d/b b/d/b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   143
  --- a/d/b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   144
  +++ b/d/b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   145
  @@ -1,1 +1,2 @@
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   146
   b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   147
  +b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   148
  % qnew -u with no username configured
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   149
  From: blue
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   150
  
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   151
  % qnew -e -u with no username configured
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   152
  From: chartreuse
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   153
  
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   154
  % fail when trying to import a merge
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   155
  adding a
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   156
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   157
  created new head
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   158
  merging a
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   159
  warning: conflicts during merge.
15501
2371f4aea665 merge: give a special message for internal:merge failure (issue3105)
Matt Mackall <mpm@selenic.com>
parents: 14054
diff changeset
   160
  merging a incomplete! (edit conflicts, then use 'hg resolve --mark')
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   161
  0 files updated, 0 files merged, 0 files removed, 1 files unresolved
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   162
  use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
21947
b081decd9062 resolve: add parenthesis around "no more unresolved files" message
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21930
diff changeset
   163
  (no more unresolved files)
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   164
  abort: cannot manage merge changesets
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   165
  $ rm -r sandbox
2714
85070b784896 Fix test-mq-qnew-twice exit code and output.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2711
diff changeset
   166
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   167
hg headers
11575
a5903e612f07 mq: evaluate --user before invoking editor with -e (issue2289)
Brendan Cully <brendan@kublai.com>
parents: 11513
diff changeset
   168
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   169
  $ echo "plain=false" >> $HGRCPATH
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   170
  $ mkdir sandbox
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   171
  $ (cd sandbox ; runtest)
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   172
  adding a
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   173
  % qnew should refuse bad patch names
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   174
  abort: "series" cannot be used as the name of a patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   175
  abort: "status" cannot be used as the name of a patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   176
  abort: "guards" cannot be used as the name of a patch
14051
2b1226693c70 mq: add '.' and '..' to list of forbidden patch names
Idan Kamara <idankk86@gmail.com>
parents: 13197
diff changeset
   177
  abort: "." cannot be used as the name of a patch
2b1226693c70 mq: add '.' and '..' to list of forbidden patch names
Idan Kamara <idankk86@gmail.com>
parents: 13197
diff changeset
   178
  abort: ".." cannot be used as the name of a patch
14054
3c616f512a5b mq: be more explicit on invalid patch name message
Idan Kamara <idankk86@gmail.com>
parents: 14051
diff changeset
   179
  abort: patch name cannot begin with ".hg"
3c616f512a5b mq: be more explicit on invalid patch name message
Idan Kamara <idankk86@gmail.com>
parents: 14051
diff changeset
   180
  abort: patch name cannot begin with ".mq"
25453
d3a00fc3680f mq: use %r to format illegal characters instead of manually quoting
Augie Fackler <augie@google.com>
parents: 22521
diff changeset
   181
  abort: '#' cannot be used in the name of a patch
d3a00fc3680f mq: use %r to format illegal characters instead of manually quoting
Augie Fackler <augie@google.com>
parents: 22521
diff changeset
   182
  abort: ':' cannot be used in the name of a patch
25454
b5a8bc09b0db mq: ban \r and \n in patch names (issue4711)
Augie Fackler <augie@google.com>
parents: 25453
diff changeset
   183
  abort: '\n' cannot be used in the name of a patch
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   184
  % qnew with name containing slash
16540
4fe8eb4a6e2c tests: add missing accept of native pathname separator
Mads Kiilerich <mads@kiilerich.com>
parents: 15524
diff changeset
   185
  abort: path ends in directory separator: foo/ (glob)
12879
da4a9ed369c8 qnew: distinguish between existing file and directory (issue2464)
Martin Geisler <mg@aragost.com>
parents: 12878
diff changeset
   186
  abort: "foo" already exists as a directory
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   187
  foo/bar.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   188
  popping foo/bar.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   189
  patch queue now empty
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   190
  % qnew with uncommitted changes
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   191
  uncommitted.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   192
  % qnew implies add
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   193
  A .hgignore
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   194
  A series
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   195
  A uncommitted.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   196
  % qnew missing
15521
117f9190c1ba tests: hide 'No such file or directory' messages
Mads Kiilerich <mads@kiilerich.com>
parents: 14054
diff changeset
   197
  abort: missing: * (glob)
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   198
  % qnew -m
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   199
  # HG changeset patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   200
  # Parent 
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   201
  foo bar
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   202
  
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   203
  % qnew twice
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   204
  abort: patch "first.patch" already exists
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   205
  abort: patch "first.patch" already exists
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   206
  % qnew -f from a subdirectory
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   207
  popping first.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   208
  popping mtest.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   209
  popping uncommitted.patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   210
  patch queue now empty
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   211
  adding d/b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   212
  M d/b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   213
  # HG changeset patch
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   214
  # Parent 
22519
c87f2a5a6e49 mq: correctly make an empty line after description in new patches
Mads Kiilerich <madski@unity3d.com>
parents: 21947
diff changeset
   215
  
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   216
  diff --git a/d/b b/d/b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   217
  --- a/d/b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   218
  +++ b/d/b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   219
  @@ -1,1 +1,2 @@
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   220
   b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   221
  +b
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   222
  % qnew -u with no username configured
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   223
  # HG changeset patch
22520
9d4ebb75de53 mq: write headers for new HG patches in the same order as export (BC)
Mads Kiilerich <madski@unity3d.com>
parents: 22519
diff changeset
   224
  # User blue
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   225
  # Parent 
22519
c87f2a5a6e49 mq: correctly make an empty line after description in new patches
Mads Kiilerich <madski@unity3d.com>
parents: 21947
diff changeset
   226
  
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   227
  % qnew -e -u with no username configured
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   228
  # HG changeset patch
22520
9d4ebb75de53 mq: write headers for new HG patches in the same order as export (BC)
Mads Kiilerich <madski@unity3d.com>
parents: 22519
diff changeset
   229
  # User chartreuse
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   230
  # Parent 
22519
c87f2a5a6e49 mq: correctly make an empty line after description in new patches
Mads Kiilerich <madski@unity3d.com>
parents: 21947
diff changeset
   231
  
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   232
  % fail when trying to import a merge
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   233
  adding a
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   234
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   235
  created new head
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   236
  merging a
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   237
  warning: conflicts during merge.
15501
2371f4aea665 merge: give a special message for internal:merge failure (issue3105)
Matt Mackall <mpm@selenic.com>
parents: 14054
diff changeset
   238
  merging a incomplete! (edit conflicts, then use 'hg resolve --mark')
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   239
  0 files updated, 0 files merged, 0 files removed, 1 files unresolved
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   240
  use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
21947
b081decd9062 resolve: add parenthesis around "no more unresolved files" message
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21930
diff changeset
   241
  (no more unresolved files)
12466
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   242
  abort: cannot manage merge changesets
3160698100c6 tests: unify test-mq-qnew
Matt Mackall <mpm@selenic.com>
parents: 11575
diff changeset
   243
  $ rm -r sandbox
20768
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   244
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   245
Test saving last-message.txt
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   246
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   247
  $ hg init repo
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   248
  $ cd repo
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   249
20859
e259d4c462b5 tests: use TESTTMP instead of TESTDIR
Sean Farley <sean.michael.farley@gmail.com>
parents: 20768
diff changeset
   250
  $ cat > $TESTTMP/commitfailure.py <<EOF
20768
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   251
  > from mercurial import util
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   252
  > def reposetup(ui, repo):
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   253
  >     class commitfailure(repo.__class__):
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   254
  >         def commit(self, *args, **kwargs):
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   255
  >             raise util.Abort('emulating unexpected abort')
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   256
  >     repo.__class__ = commitfailure
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   257
  > EOF
21234
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   258
  $ cat >> .hg/hgrc <<EOF
20768
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   259
  > [extensions]
21234
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   260
  > # this failure occurs before editor invocation
20859
e259d4c462b5 tests: use TESTTMP instead of TESTDIR
Sean Farley <sean.michael.farley@gmail.com>
parents: 20768
diff changeset
   261
  > commitfailure = $TESTTMP/commitfailure.py
20768
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   262
  > EOF
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   263
20859
e259d4c462b5 tests: use TESTTMP instead of TESTDIR
Sean Farley <sean.michael.farley@gmail.com>
parents: 20768
diff changeset
   264
  $ cat > $TESTTMP/editor.sh << EOF
20768
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   265
  > echo "==== before editing"
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   266
  > cat \$1
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   267
  > echo "===="
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   268
  > echo "test saving last-message.txt" >> \$1
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   269
  > EOF
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   270
21234
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   271
(test that editor is not invoked before transaction starting)
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   272
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   273
  $ rm -f .hg/last-message.txt
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   274
  $ HGEDITOR="sh $TESTTMP/editor.sh" hg qnew -e patch
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   275
  abort: emulating unexpected abort
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   276
  [255]
21930
a5168eb9b2bc tests: cat error messages are different on Solaris
Danek Duvall <danek.duvall@oracle.com>
parents: 21421
diff changeset
   277
  $ test -f .hg/last-message.txt
21234
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   278
  [1]
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   279
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   280
(test that editor is invoked and commit message is saved into
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   281
"last-message.txt")
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   282
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   283
  $ cat >> .hg/hgrc <<EOF
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   284
  > [extensions]
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   285
  > commitfailure = !
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   286
  > [hooks]
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   287
  > # this failure occurs after editor invocation
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   288
  > pretxncommit.unexpectedabort = false
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   289
  > EOF
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   290
20768
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   291
  $ rm -f .hg/last-message.txt
21421
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   292
  $ hg status
20859
e259d4c462b5 tests: use TESTTMP instead of TESTDIR
Sean Farley <sean.michael.farley@gmail.com>
parents: 20768
diff changeset
   293
  $ HGEDITOR="sh $TESTTMP/editor.sh" hg qnew -e patch
20768
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   294
  ==== before editing
21234
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   295
  
21421
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   296
  
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   297
  HG: Enter commit message.  Lines beginning with 'HG:' are removed.
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   298
  HG: Leave message empty to use default message.
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   299
  HG: --
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   300
  HG: user: test
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   301
  HG: branch 'default'
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   302
  HG: no files changed
20768
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   303
  ====
21234
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   304
  transaction abort!
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   305
  rollback completed
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   306
  note: commit message saved in .hg/last-message.txt
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   307
  abort: pretxncommit.unexpectedabort hook exited with status 1
20768
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   308
  [255]
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   309
  $ cat .hg/last-message.txt
21234
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   310
  
21421
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   311
  
20768
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   312
  test saving last-message.txt
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   313
21234
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   314
  $ cat >> .hg/hgrc <<EOF
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   315
  > [hooks]
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   316
  > pretxncommit.unexpectedabort =
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   317
  > EOF
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   318
21276
25b7c760235a tests: fix test failure on vfat
Matt Mackall <mpm@selenic.com>
parents: 21267
diff changeset
   319
#if unix-permissions
25b7c760235a tests: fix test failure on vfat
Matt Mackall <mpm@selenic.com>
parents: 21267
diff changeset
   320
21234
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   321
Test handling default message with the patch filename with tail whitespaces
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   322
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   323
  $ cat > $TESTTMP/editor.sh << EOF
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   324
  > echo "==== before editing"
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   325
  > cat \$1
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   326
  > echo "===="
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   327
  > echo "[mq]: patch        " > \$1
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   328
  > EOF
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   329
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   330
  $ rm -f .hg/last-message.txt
21421
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   331
  $ hg status
21234
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   332
  $ HGEDITOR="sh $TESTTMP/editor.sh" hg qnew -e "patch "
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   333
  ==== before editing
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   334
  
21421
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   335
  
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   336
  HG: Enter commit message.  Lines beginning with 'HG:' are removed.
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   337
  HG: Leave message empty to use default message.
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   338
  HG: --
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   339
  HG: user: test
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   340
  HG: branch 'default'
4941caa9f0f8 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 21276
diff changeset
   341
  HG: no files changed
21234
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   342
  ====
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   343
  $ cat ".hg/patches/patch "
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   344
  # HG changeset patch
22521
3f948469bac0 mq: write '# Parent ' lines with two spaces like export does (BC)
Mads Kiilerich <madski@unity3d.com>
parents: 22520
diff changeset
   345
  # Parent  0000000000000000000000000000000000000000
22519
c87f2a5a6e49 mq: correctly make an empty line after description in new patches
Mads Kiilerich <madski@unity3d.com>
parents: 21947
diff changeset
   346
  
21234
b9a16ed5acec qnew: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20859
diff changeset
   347
20768
57d0c8c3b947 qnew: save manually edited commit message into ".hg/last-message.txt"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16540
diff changeset
   348
  $ cd ..
21276
25b7c760235a tests: fix test failure on vfat
Matt Mackall <mpm@selenic.com>
parents: 21267
diff changeset
   349
25b7c760235a tests: fix test failure on vfat
Matt Mackall <mpm@selenic.com>
parents: 21267
diff changeset
   350
#endif