Mercurial > hg
annotate tests/test-mq-safety.t @ 37147:a2566597acb5
lfs: add basic routing for the server side wire protocol processing
The recent hgweb refactoring yielded a clean point to wrap a function that could
handle this, so I moved the routing for this out of the core. While not an hg
wire protocol, this seems logically close enough. For now, these handlers do
nothing other than check permissions.
The protocol requires support for PUT requests, so that has been added to the
core, and funnels into the same handler as GET and POST. The permission
checking code was assuming that anything not checking 'pull' or None ops should
be using POST. But that breaks the upload check if it checks 'push'. So I
invented a new 'upload' permission, and used it to avoid the mandate to POST. A
function wrap point could be added, but security code should probably stay
grouped together. Given that anything not 'pull' or None was requiring POST,
the comment on hgweb.common.permhooks is probably wrong- there is no 'read'.
The rationale for the URIs is that the spec for the Batch API[1] defines the URL
as the LFS server url + '/objects/batch'. The default git URLs are:
Git remote: https://git-server.com/foo/bar
LFS server: https://git-server.com/foo/bar.git/info/lfs
Batch API: https://git-server.com/foo/bar.git/info/lfs/objects/batch
'.git/' seems like it's not something a user would normally track. If we adhere
to how git defines the URLs, then the hg-git extension should be able to talk to
a git based server without any additional work.
The URI for the transfer requests starts with '.hg/' to ensure that there are no
conflicts with tracked files. Since these are handed out by the Batch API, we
can change this at any point in the future. (Specifically, it might be a good
idea to use something under the proposed /api/ namespace.) In any case, no
files are stored at these locations in the repository directory.
I started a new module for this because it seems like a good idea to keep all of
the security sensitive server side code together. There's also an issue with
`hg verify` in that it will want to download *all* blobs in order to run.
Sadly, there's no way in the protocol to ask the server to verify the content of
a blob it may have. (The verify action is for storing files on a 3rd party
server, and then informing the LFS server when that completes.) So we may end
up implementing a custom transfer adapter that simply indicates if the blobs are
valid, and fall back to basic transfers for non-hg servers. In other words,
this code is likely to get bigger before this is made non-experimental.
[1] https://github.com/git-lfs/git-lfs/blob/master/docs/api/batch.md
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sat, 17 Mar 2018 01:23:01 -0400 |
parents | 4441705b7111 |
children |
rev | line source |
---|---|
11898
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
1 $ echo '[extensions]' >> $HGRCPATH |
16048
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
2 $ echo 'hgext.mq =' >> $HGRCPATH |
5980
dcda0c90125c
mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
3 |
11898
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
4 $ hg init repo |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
5 $ cd repo |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
6 |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
7 $ echo foo > foo |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
8 $ hg ci -qAm 'add a file' |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
9 |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
10 $ hg qinit |
5980
dcda0c90125c
mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
11 |
11898
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
12 $ hg qnew foo |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
13 $ echo foo >> foo |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
14 $ hg qrefresh -m 'append foo' |
5980
dcda0c90125c
mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
15 |
11898
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
16 $ hg qnew bar |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
17 $ echo bar >> foo |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
18 $ hg qrefresh -m 'append bar' |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
19 |
16048
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
20 Try to operate on public mq changeset |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
21 |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
22 $ hg qpop |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
23 popping bar |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
24 now at: foo |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
25 $ hg phase --public qbase |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
26 $ echo babar >> foo |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
27 $ hg qref |
26780 | 28 abort: cannot qrefresh public revision |
29968
0342bf292f73
mq: use single quotes in use warning
timeless <timeless@mozdev.org>
parents:
26780
diff
changeset
|
29 (see 'hg help phases' for details) |
16048
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
30 [255] |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
31 $ hg revert -a |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
32 reverting foo |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
33 $ hg qpop |
25411
d298805fb639
phases: rewrite "immutable changeset" to "public changeset"
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
20117
diff
changeset
|
34 abort: popping would remove a public revision |
29968
0342bf292f73
mq: use single quotes in use warning
timeless <timeless@mozdev.org>
parents:
26780
diff
changeset
|
35 (see 'hg help phases' for details) |
16048
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
36 [255] |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
37 $ hg qfold bar |
26780 | 38 abort: cannot qrefresh public revision |
29968
0342bf292f73
mq: use single quotes in use warning
timeless <timeless@mozdev.org>
parents:
26780
diff
changeset
|
39 (see 'hg help phases' for details) |
16048
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
40 [255] |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
41 $ hg revert -a |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
42 reverting foo |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
43 |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
44 restore state for remaining test |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
45 |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
46 $ hg qpush |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
47 applying bar |
140b6282ac79
mq: prevent rewriting operation on public changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
16023
diff
changeset
|
48 now at: bar |
5980
dcda0c90125c
mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
49 |
11898
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
50 try to commit on top of a patch |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
51 |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
52 $ echo quux >> foo |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
53 $ hg ci -m 'append quux' |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
54 abort: cannot commit over an applied mq patch |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12108
diff
changeset
|
55 [255] |
5980
dcda0c90125c
mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
56 |
11898
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
57 |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
58 cheat a bit... |
5980
dcda0c90125c
mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
59 |
11898
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
60 $ mv .hg/patches .hg/patches2 |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
61 $ hg ci -m 'append quux' |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
62 $ mv .hg/patches2 .hg/patches |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
63 |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
64 |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
65 qpop/qrefresh on the wrong revision |
5980
dcda0c90125c
mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
66 |
11898
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
67 $ hg qpop |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
68 abort: popping would remove a revision not managed by this patch queue |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12108
diff
changeset
|
69 [255] |
12108
a57e0762c5ec
tests: mq-safety: use regular expression instead of sed
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11898
diff
changeset
|
70 $ hg qpop -n patches |
35393
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
34661
diff
changeset
|
71 using patch queue: $TESTTMP/repo/.hg/patches |
11898
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
72 abort: popping would remove a revision not managed by this patch queue |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12108
diff
changeset
|
73 [255] |
11898
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
74 $ hg qrefresh |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
75 abort: working directory revision is not qtip |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12108
diff
changeset
|
76 [255] |
5980
dcda0c90125c
mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
77 |
11898
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
78 $ hg up -C qtip |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
79 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
80 $ hg qpop |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
81 abort: popping would remove a revision not managed by this patch queue |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12108
diff
changeset
|
82 [255] |
11898
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
83 $ hg qrefresh |
26780 | 84 abort: cannot qrefresh a revision with children |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12108
diff
changeset
|
85 [255] |
11898
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
86 $ hg tip --template '{rev} {desc}\n' |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
87 3 append quux |
5980
dcda0c90125c
mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
88 |
dcda0c90125c
mq: pop/refresh: avoid losing revisions not managed by mq
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
89 |
11898
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
90 qpush warning branchheads |
10362
2e3ec7ef5349
mq: don't warn on qpush against a branch head
Dirkjan Ochtman <djc.ochtman@kentyde.com>
parents:
10119
diff
changeset
|
91 |
11898
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
92 $ cd .. |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
93 $ hg init branchy |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
94 $ cd branchy |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
95 $ echo q > q |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
96 $ hg add q |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
97 $ hg qnew -f qp |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
98 $ hg qpop |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
99 popping qp |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
100 patch queue now empty |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
101 $ echo a > a |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
102 $ hg ci -Ama |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
103 adding a |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
104 $ hg up null |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
105 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
106 $ hg branch b |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
107 marked working directory as branch b |
15615 | 108 (branches are permanent and global, did you want a bookmark?) |
11898
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
109 $ echo c > c |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
110 $ hg ci -Amc |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
111 adding c |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
112 $ hg merge default |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
113 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
114 (branch merge, don't forget to commit) |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
115 $ hg ci -mmerge |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
116 $ hg up default |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
117 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
118 $ hg log |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
119 changeset: 2:65309210bf4e |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
120 branch: b |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
121 tag: tip |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
122 parent: 1:707adb4c8ae1 |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
123 parent: 0:cb9a9f314b8b |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
124 user: test |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
125 date: Thu Jan 01 00:00:00 1970 +0000 |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
126 summary: merge |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
127 |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
128 changeset: 1:707adb4c8ae1 |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
129 branch: b |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
130 parent: -1:000000000000 |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
131 user: test |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
132 date: Thu Jan 01 00:00:00 1970 +0000 |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
133 summary: c |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
134 |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
135 changeset: 0:cb9a9f314b8b |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
136 user: test |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
137 date: Thu Jan 01 00:00:00 1970 +0000 |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
138 summary: a |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
139 |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
140 $ hg qpush |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
141 applying qp |
7dc8b9e25f19
tests: unify test-mq-safety
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
10362
diff
changeset
|
142 now at: qp |
12380 | 143 |
144 Testing applied patches, push and --force | |
12378
ab237534d800
mq: always require --force when pushing patches (issue2363)
Patrick Mezard <pmezard@gmail.com>
parents:
10362
diff
changeset
|
145 |
12380 | 146 $ cd .. |
147 $ hg init forcepush | |
148 $ cd forcepush | |
149 $ echo a > a | |
150 $ hg ci -Am adda | |
151 adding a | |
152 $ echo a >> a | |
153 $ hg ci -m changea | |
154 $ hg up 0 | |
155 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
156 $ hg branch branch | |
157 marked working directory as branch branch | |
15615 | 158 (branches are permanent and global, did you want a bookmark?) |
12380 | 159 $ echo b > b |
160 $ hg ci -Am addb | |
161 adding b | |
162 $ hg up 0 | |
163 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
164 $ hg --cwd .. clone -r 0 forcepush forcepush2 | |
165 adding changesets | |
166 adding manifests | |
167 adding file changes | |
168 added 1 changesets with 1 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:
29968
diff
changeset
|
169 new changesets 07f494440405 |
12380 | 170 updating to branch default |
171 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
172 $ echo a >> a | |
173 $ hg qnew patch | |
174 | |
175 Pushing applied patch with --rev without --force | |
176 | |
15952
ec8a9e06cf05
mq-safety: don't apply safety on non-outgoing changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
15951
diff
changeset
|
177 $ hg push -r . ../forcepush2 |
12380 | 178 pushing to ../forcepush2 |
179 abort: source has mq patches applied | |
180 [255] | |
181 | |
182 Pushing applied patch with branchhash, without --force | |
183 | |
184 $ hg push ../forcepush2#default | |
185 pushing to ../forcepush2 | |
186 abort: source has mq patches applied | |
187 [255] | |
188 | |
189 Pushing revs excluding applied patch | |
190 | |
17199
c6e38fdff23c
tests: convert a push test to use revsets
Matt Harbison <matt_harbison@yahoo.com>
parents:
16913
diff
changeset
|
191 $ hg push --new-branch -r 'branch(branch)' -r 2 ../forcepush2 |
12380 | 192 pushing to ../forcepush2 |
193 searching for changes | |
194 adding changesets | |
195 adding manifests | |
196 adding file changes | |
197 added 1 changesets with 1 changes to 1 files | |
198 | |
199 Pushing applied patch with --force | |
200 | |
15952
ec8a9e06cf05
mq-safety: don't apply safety on non-outgoing changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
15951
diff
changeset
|
201 $ hg phase --force --secret 'mq()' |
12380 | 202 $ hg push --force -r default ../forcepush2 |
203 pushing to ../forcepush2 | |
204 searching for changes | |
15993
0b05e0bfdc1c
scmutil: unify some 'no changes found' messages
Matt Mackall <mpm@selenic.com>
parents:
15952
diff
changeset
|
205 no changes found (ignored 1 secret changesets) |
16023
90f8b8dd0326
push: return 1 if no changes found (issue3228)
Matt Mackall <mpm@selenic.com>
parents:
16017
diff
changeset
|
206 [1] |
15952
ec8a9e06cf05
mq-safety: don't apply safety on non-outgoing changeset
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
15951
diff
changeset
|
207 $ hg phase --draft 'mq()' |
15926
f94513971767
mq: have mq create secret changeset only
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
15623
diff
changeset
|
208 $ hg push --force -r default ../forcepush2 |
f94513971767
mq: have mq create secret changeset only
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
15623
diff
changeset
|
209 pushing to ../forcepush2 |
f94513971767
mq: have mq create secret changeset only
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
15623
diff
changeset
|
210 searching for changes |
12380 | 211 adding changesets |
212 adding manifests | |
213 adding file changes | |
214 added 1 changesets with 1 changes to 1 files (+1 heads) | |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16048
diff
changeset
|
215 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16048
diff
changeset
|
216 $ cd .. |