annotate tests/test-notify-changegroup.t @ 37048:fc5e261915b9

wireproto: require POST for all HTTPv2 requests Wire protocol version 1 transfers argument data via request headers by default. This has historically caused problems because servers institute limits on the length of individual HTTP headers as well as the total size of all request headers. Mercurial servers can advertise the maximum length of an individual header. But there's no guarantee any intermediate HTTP agents will accept headers up to that length. In the existing wire protocol, server operators typically also key off the HTTP request method to implement authentication. For example, GET requests translate to read-only requests and can be allowed. But read-write commands must use POST and require authentication. This has typically worked because the only wire protocol commands that use POST modify the repo (e.g. the "unbundle" command). There is an experimental feature to enable clients to transmit argument data via POST request bodies. This is technically a better and more robust solution. But we can't enable it by default because of servers assuming POST means write access. In version 2 of the wire protocol, the permissions of a request are encoded in the URL. And with it being a new protocol in a new URL space, we're not constrained by backwards compatibility requirements. This commit adopts the technically superior mechanism of using HTTP request bodies to send argument data by requiring POST for all commands. Strictly speaking, it may be possible to send request bodies on GET requests. But my experience is that not all HTTP stacks support this. POST pretty much always works. Using POST for read-only operations does sacrifice some RESTful design purity. But this API cares about practicality, not about being in Roy T. Fielding's REST ivory tower. There's a chance we may relax this restriction in the future. But for now, I want to see how far we can get with a POST only API. Differential Revision: https://phab.mercurial-scm.org/D2837
author Gregory Szorc <gregory.szorc@gmail.com>
date Tue, 13 Mar 2018 11:57:43 -0700
parents 4441705b7111
children 89630d0b3e23
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7043
b714aac1f7b3 tests: add test for notify extension as changegroup hook
Dennis Schoen <ds@1d10t.de>
parents:
diff changeset
1
12474
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
2 $ cat <<EOF >> $HGRCPATH
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
3 > [extensions]
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
4 > notify=
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
5 >
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
6 > [hooks]
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
7 > changegroup.notify = python:hgext.notify.hook
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
8 >
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
9 > [notify]
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
10 > sources = push
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
11 > diffstat = False
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
12 > maxsubject = 10
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
13 >
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
14 > [usersubs]
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
15 > foo@bar = *
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
16 >
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
17 > [reposubs]
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
18 > * = baz
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
19 > EOF
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
20 $ hg init a
7043
b714aac1f7b3 tests: add test for notify extension as changegroup hook
Dennis Schoen <ds@1d10t.de>
parents:
diff changeset
21
12474
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
22 clone
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
23
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
24 $ hg --traceback clone a b
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
25 updating to branch default
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
26 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
27 $ echo a > b/a
7043
b714aac1f7b3 tests: add test for notify extension as changegroup hook
Dennis Schoen <ds@1d10t.de>
parents:
diff changeset
28
12474
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
29 commit
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
30
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
31 $ hg --traceback --cwd b commit -Ama
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
32 adding a
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
33 $ echo a >> b/a
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
34
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
35 commit
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
36
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
37 $ hg --traceback --cwd b commit -Amb
7043
b714aac1f7b3 tests: add test for notify extension as changegroup hook
Dennis Schoen <ds@1d10t.de>
parents:
diff changeset
38
12474
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
39 push
7043
b714aac1f7b3 tests: add test for notify extension as changegroup hook
Dennis Schoen <ds@1d10t.de>
parents:
diff changeset
40
12474
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
41 $ hg --traceback --cwd b push ../a 2>&1 |
33721
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 22947
diff changeset
42 > $PYTHON -c 'from __future__ import print_function ; import sys,re; print(re.sub("\n\t", " ", sys.stdin.read()), end="")'
12474
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
43 pushing to ../a
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
44 searching for changes
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
45 adding changesets
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
46 adding manifests
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
47 adding file changes
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
48 added 2 changesets with 2 changes to 1 files
34310
2d0c306a88c2 mail: encode long unicode lines in emails properly (issue5687)
Igor Ippolitov <iippolitov@gmail.com>
parents: 33721
diff changeset
49 MIME-Version: 1.0
12474
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
50 Content-Type: text/plain; charset="us-ascii"
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
51 Content-Transfer-Encoding: 7bit
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
52 Date: * (glob)
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
53 Subject: * (glob)
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
54 From: test
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
55 X-Hg-Notification: changeset cb9a9f314b8b
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
56 Message-Id: <*> (glob)
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
57 To: baz, foo@bar
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
58
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
59 changeset cb9a9f314b8b in $TESTTMP/a
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12474
diff changeset
60 details: $TESTTMP/a?cmd=changeset;node=cb9a9f314b8b
12474
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
61 summary: a
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
62
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
63 changeset ba677d0156c1 in $TESTTMP/a
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12474
diff changeset
64 details: $TESTTMP/a?cmd=changeset;node=ba677d0156c1
12474
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
65 summary: b
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
66
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
67 diffs (6 lines):
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
68
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
69 diff -r 000000000000 -r ba677d0156c1 a
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
70 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
71 +++ b/a Thu Jan 01 00:00:00 1970 +0000
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
72 @@ -0,0 +1,2 @@
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
73 +a
f213af8211cc tests: unify test-notify-changegroup
Matt Mackall <mpm@selenic.com>
parents: 11671
diff changeset
74 +a
14868
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
75 $ hg --cwd a rollback
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
76 repository tip rolled back to revision -1 (undo push)
7043
b714aac1f7b3 tests: add test for notify extension as changegroup hook
Dennis Schoen <ds@1d10t.de>
parents:
diff changeset
77
14868
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
78 unbundle with unrelated source
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
79
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
80 $ hg --cwd b bundle ../test.hg ../a
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
81 searching for changes
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
82 2 changesets found
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
83 $ hg --cwd a unbundle ../test.hg
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
84 adding changesets
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
85 adding manifests
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
86 adding file changes
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
87 added 2 changesets with 2 changes to 1 files
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 34310
diff changeset
88 new changesets cb9a9f314b8b:ba677d0156c1
14868
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
89 (run 'hg update' to get a working copy)
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
90 $ hg --cwd a rollback
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
91 repository tip rolled back to revision -1 (undo unbundle)
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
92
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
93 unbundle with correct source
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
94
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
95 $ hg --config notify.sources=unbundle --cwd a unbundle ../test.hg 2>&1 |
33721
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 22947
diff changeset
96 > $PYTHON -c 'from __future__ import print_function ; import sys,re; print(re.sub("\n\t", " ", sys.stdin.read()), end="")'
14868
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
97 adding changesets
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
98 adding manifests
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
99 adding file changes
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
100 added 2 changesets with 2 changes to 1 files
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 34310
diff changeset
101 new changesets cb9a9f314b8b:ba677d0156c1
34310
2d0c306a88c2 mail: encode long unicode lines in emails properly (issue5687)
Igor Ippolitov <iippolitov@gmail.com>
parents: 33721
diff changeset
102 MIME-Version: 1.0
14868
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
103 Content-Type: text/plain; charset="us-ascii"
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
104 Content-Transfer-Encoding: 7bit
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
105 Date: * (glob)
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
106 Subject: * (glob)
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
107 From: test
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
108 X-Hg-Notification: changeset cb9a9f314b8b
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
109 Message-Id: <*> (glob)
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
110 To: baz, foo@bar
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
111
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
112 changeset cb9a9f314b8b in $TESTTMP/a
14868
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
113 details: $TESTTMP/a?cmd=changeset;node=cb9a9f314b8b
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
114 summary: a
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
115
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
116 changeset ba677d0156c1 in $TESTTMP/a
14868
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
117 details: $TESTTMP/a?cmd=changeset;node=ba677d0156c1
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
118 summary: b
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
119
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
120 diffs (6 lines):
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
121
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
122 diff -r 000000000000 -r ba677d0156c1 a
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
123 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
124 +++ b/a Thu Jan 01 00:00:00 1970 +0000
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
125 @@ -0,0 +1,2 @@
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
126 +a
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
127 +a
cdd6ecfd3bcd test-notify-changegroup: test notifications on unbundle
Patrick Mezard <pmezard@gmail.com>
parents: 12640
diff changeset
128 (run 'hg update' to get a working copy)
15654
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
129
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
130 Check that using the first committer as the author of a changeset works:
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
131 Check that the config option works.
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
132 Check that the first committer is indeed used for "From:".
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
133 Check that the merge user is NOT used for "From:"
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
134
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
135 Create new file
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
136
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
137 $ echo a > b/b
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
138 $ echo b >> b/b
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
139 $ echo c >> b/b
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
140 $ hg --traceback --cwd b commit -Amnewfile -u committer_1
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
141 adding b
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
142
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
143 commit as one user
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
144
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
145 $ echo x > b/b
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
146 $ echo b >> b/b
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
147 $ echo c >> b/b
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
148 $ hg --traceback --cwd b commit -Amx -u committer_2
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
149
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
150 commit as other user, change file so we can do an (automatic) merge
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
151
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
152 $ hg --cwd b up 2
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
153 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
154 $ echo a > b/b
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
155 $ echo b >> b/b
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
156 $ echo y >> b/b
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
157 $ hg --traceback --cwd b commit -Amy -u committer_3
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
158 created new head
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
159
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
160 merge as a different user
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
161
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
162 $ hg --cwd b merge --config notify.fromauthor=True
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
163 merging b
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
164 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
165 (branch merge, don't forget to commit)
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
166
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
167 $ hg --traceback --cwd b commit -Am "merged"
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
168
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
169 push
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
170
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
171 $ hg --traceback --cwd b --config notify.fromauthor=True push ../a 2>&1 |
33721
24849d53697d tests: clean up many print statements to be print functions instead
Augie Fackler <augie@google.com>
parents: 22947
diff changeset
172 > $PYTHON -c 'from __future__ import print_function ; import sys,re; print(re.sub("\n\t", " ", sys.stdin.read()), end="")'
15654
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
173 pushing to ../a
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
174 searching for changes
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
175 adding changesets
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
176 adding manifests
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
177 adding file changes
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
178 added 4 changesets with 4 changes to 1 files
34310
2d0c306a88c2 mail: encode long unicode lines in emails properly (issue5687)
Igor Ippolitov <iippolitov@gmail.com>
parents: 33721
diff changeset
179 MIME-Version: 1.0
15654
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
180 Content-Type: text/plain; charset="us-ascii"
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
181 Content-Transfer-Encoding: 7bit
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
182 Date: * (glob)
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
183 Subject: * (glob)
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
184 From: committer_1
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
185 X-Hg-Notification: changeset 84e487dddc58
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
186 Message-Id: <*> (glob)
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
187 To: baz, foo@bar
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
188
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
189 changeset 84e487dddc58 in $TESTTMP/a
15654
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
190 details: $TESTTMP/a?cmd=changeset;node=84e487dddc58
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
191 summary: newfile
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
192
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
193 changeset b29c7a2b6b0c in $TESTTMP/a
15654
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
194 details: $TESTTMP/a?cmd=changeset;node=b29c7a2b6b0c
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
195 summary: x
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
196
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
197 changeset 0957c7d64886 in $TESTTMP/a
15654
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
198 details: $TESTTMP/a?cmd=changeset;node=0957c7d64886
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
199 summary: y
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
200
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
201 changeset 485b4e6b0249 in $TESTTMP/a
15654
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
202 details: $TESTTMP/a?cmd=changeset;node=485b4e6b0249
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
203 summary: merged
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
204
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
205 diffs (7 lines):
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
206
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
207 diff -r ba677d0156c1 -r 485b4e6b0249 b
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
208 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
209 +++ b/b Thu Jan 01 00:00:00 1970 +0000
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
210 @@ -0,0 +1,3 @@
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
211 +x
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
212 +b
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
213 +y
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
214 $ hg --cwd a rollback
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
215 repository tip rolled back to revision 1 (undo push)
2a7fa7c641d8 notify: change behavior of "changegroup" hook
Nikolaus Schueler <nikolaus.schueler@lantiq.com>
parents: 15447
diff changeset
216