annotate tests/test-censor.t @ 36755:ff4bc0ab6740 stable

wireproto: check permissions when executing "batch" command (BC) (SEC) For as long as the "batch" command has existed (introduced by bd88561afb4b and first released as part of Mercurial 1.9), that command (like most wire commands introduced after 2008) lacked an entry in the hgweb permissions table. And since we don't verify permissions if an entry is missing from the permissions table, this meant that executing a command via "batch" would bypass all permissions checks. The security implications are significant: a Mercurial HTTP server would allow writes via "batch" wire protocol commands as long as the HTTP request were processed by Mercurial and the process running the Mercurial HTTP server had write access to the repository. The Mercurial defaults of servers being read-only and the various web.* config options to define access control were bypassed. In addition, "batch" could be used to exfiltrate data from servers that were configured to not allow read access. Both forms of permissions bypass could be mitigated to some extent by using HTTP authentication. This would prevent HTTP requests from hitting Mercurial's server logic. However, any authenticated request would still be able to bypass permissions checks via "batch" commands. The easiest exploit was to send "pushkey" commands via "batch" and modify the state of bookmarks, phases, and obsolescence markers. However, I suspect a well-crafted HTTP request could trick the server into running the "unbundle" wire protocol command, effectively performing a full `hg push` to create new changesets on the remote. This commit plugs this gaping security hole by having the "batch" command perform permissions checking on each sub-command that is being batched. We do this by threading a permissions checking callable all the way to the protocol handler. The threading is a bit hacky from a code perspective. But it preserves API compatibility, which is the proper thing to do on the stable branch. One of the subtle things we do is assume that a command with an undefined permission is a "push" command. This is the safest thing to do from a security perspective: we don't want to take chances that a command could perform a write even though the server is configured to not allow writes. As the test changes demonstrate, it is no longer possible to bypass permissions via the "batch" wire protocol command. .. bc:: The "batch" wire protocol command now enforces permissions of each invoked sub-command. Wire protocol commands must define their operation type or the "batch" command will assume they can write data and will prevent their execution on HTTP servers unless the HTTP request method is POST, the server is configured to allow pushes, and the (possibly authenticated) HTTP user is authorized to perform a push.
author Gregory Szorc <gregory.szorc@gmail.com>
date Tue, 20 Feb 2018 18:55:58 -0800
parents 4441705b7111
children 8c37c3220ebc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
24347
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
1 $ cat >> $HGRCPATH <<EOF
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
2 > [extensions]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
3 > censor=
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
4 > EOF
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
5 $ cp $HGRCPATH $HGRCPATH.orig
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
6
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
7 Create repo with unimpeachable content
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
8
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
9 $ hg init r
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
10 $ cd r
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
11 $ echo 'Initially untainted file' > target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
12 $ echo 'Normal file here' > bystander
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
13 $ hg add target bystander
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
14 $ hg ci -m init
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
15
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
16 Clone repo so we can test pull later
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
17
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
18 $ cd ..
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
19 $ hg clone r rpull
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
20 updating to branch default
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
21 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
22 $ cd r
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
23
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
24 Introduce content which will ultimately require censorship. Name the first
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
25 censored node C1, second C2, and so on
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
26
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
27 $ echo 'Tainted file' > target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
28 $ echo 'Passwords: hunter2' >> target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
29 $ hg ci -m taint target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
30 $ C1=`hg id --debug -i`
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
31
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
32 $ echo 'hunter3' >> target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
33 $ echo 'Normal file v2' > bystander
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
34 $ hg ci -m moretaint target bystander
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
35 $ C2=`hg id --debug -i`
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
36
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
37 Add a new sanitized versions to correct our mistake. Name the first head H1,
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
38 the second head H2, and so on
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
39
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
40 $ echo 'Tainted file is now sanitized' > target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
41 $ hg ci -m sanitized target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
42 $ H1=`hg id --debug -i`
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
43
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
44 $ hg update -r $C2
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
45 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
46 $ echo 'Tainted file now super sanitized' > target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
47 $ hg ci -m 'super sanitized' target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
48 created new head
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
49 $ H2=`hg id --debug -i`
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
50
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
51 Verify target contents before censorship at each revision
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
52
24348
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
53 $ hg cat -r $H1 target
24347
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
54 Tainted file is now sanitized
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
55 $ hg cat -r $H2 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
56 Tainted file now super sanitized
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
57 $ hg cat -r $C2 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
58 Tainted file
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
59 Passwords: hunter2
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
60 hunter3
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
61 $ hg cat -r $C1 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
62 Tainted file
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
63 Passwords: hunter2
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
64 $ hg cat -r 0 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
65 Initially untainted file
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
66
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
67 Try to censor revision with too large of a tombstone message
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
68
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
69 $ hg censor -r $C1 -t 'blah blah blah blah blah blah blah blah bla' target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
70 abort: censor tombstone must be no longer than censored data
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
71 [255]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
72
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
73 Censor revision with 2 offenses
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
74
25806
5e18f6e39006 censor: make various path forms available like other Mercurial commands
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 24361
diff changeset
75 (this also tests file pattern matching: path relative to cwd case)
5e18f6e39006 censor: make various path forms available like other Mercurial commands
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 24361
diff changeset
76
5e18f6e39006 censor: make various path forms available like other Mercurial commands
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 24361
diff changeset
77 $ mkdir -p foo/bar/baz
5e18f6e39006 censor: make various path forms available like other Mercurial commands
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 24361
diff changeset
78 $ hg --cwd foo/bar/baz censor -r $C2 -t "remove password" ../../../target
24348
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
79 $ hg cat -r $H1 target
24347
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
80 Tainted file is now sanitized
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
81 $ hg cat -r $H2 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
82 Tainted file now super sanitized
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
83 $ hg cat -r $C2 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
84 abort: censored node: 1e0247a9a4b7
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
85 (set censor.policy to ignore errors)
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
86 [255]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
87 $ hg cat -r $C1 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
88 Tainted file
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
89 Passwords: hunter2
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
90 $ hg cat -r 0 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
91 Initially untainted file
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
92
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
93 Censor revision with 1 offense
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
94
25806
5e18f6e39006 censor: make various path forms available like other Mercurial commands
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 24361
diff changeset
95 (this also tests file pattern matching: with 'path:' scheme)
5e18f6e39006 censor: make various path forms available like other Mercurial commands
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 24361
diff changeset
96
5e18f6e39006 censor: make various path forms available like other Mercurial commands
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 24361
diff changeset
97 $ hg --cwd foo/bar/baz censor -r $C1 path:target
24348
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
98 $ hg cat -r $H1 target
24347
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
99 Tainted file is now sanitized
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
100 $ hg cat -r $H2 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
101 Tainted file now super sanitized
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
102 $ hg cat -r $C2 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
103 abort: censored node: 1e0247a9a4b7
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
104 (set censor.policy to ignore errors)
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
105 [255]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
106 $ hg cat -r $C1 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
107 abort: censored node: 613bc869fceb
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
108 (set censor.policy to ignore errors)
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
109 [255]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
110 $ hg cat -r 0 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
111 Initially untainted file
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
112
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
113 Can only checkout target at uncensored revisions, -X is workaround for --all
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
114
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
115 $ hg revert -r $C2 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
116 abort: censored node: 1e0247a9a4b7
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
117 (set censor.policy to ignore errors)
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
118 [255]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
119 $ hg revert -r $C1 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
120 abort: censored node: 613bc869fceb
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
121 (set censor.policy to ignore errors)
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
122 [255]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
123 $ hg revert -r $C1 --all
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
124 reverting bystander
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
125 reverting target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
126 abort: censored node: 613bc869fceb
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
127 (set censor.policy to ignore errors)
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
128 [255]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
129 $ hg revert -r $C1 --all -X target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
130 $ cat target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
131 Tainted file now super sanitized
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
132 $ hg revert -r 0 --all
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
133 reverting target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
134 $ cat target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
135 Initially untainted file
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
136 $ hg revert -r $H2 --all
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
137 reverting bystander
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
138 reverting target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
139 $ cat target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
140 Tainted file now super sanitized
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
141
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
142 Uncensored file can be viewed at any revision
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
143
24348
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
144 $ hg cat -r $H1 bystander
24347
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
145 Normal file v2
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
146 $ hg cat -r $C2 bystander
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
147 Normal file v2
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
148 $ hg cat -r $C1 bystander
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
149 Normal file here
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
150 $ hg cat -r 0 bystander
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
151 Normal file here
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
152
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
153 Can update to children of censored revision
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
154
24348
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
155 $ hg update -r $H1
24347
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
156 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
157 $ cat target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
158 Tainted file is now sanitized
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
159 $ hg update -r $H2
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
160 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
161 $ cat target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
162 Tainted file now super sanitized
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
163
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
164 Set censor policy to abort in trusted $HGRC so hg verify fails
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
165
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
166 $ cp $HGRCPATH.orig $HGRCPATH
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
167 $ cat >> $HGRCPATH <<EOF
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
168 > [censor]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
169 > policy = abort
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
170 > EOF
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
171
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
172 Repo fails verification due to censorship
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
173
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
174 $ hg verify
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
175 checking changesets
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
176 checking manifests
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
177 crosschecking files in changesets and manifests
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
178 checking files
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
179 target@1: censored file data
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
180 target@2: censored file data
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
181 2 files, 5 changesets, 7 total revisions
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
182 2 integrity errors encountered!
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
183 (first damaged changeset appears to be 1)
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
184 [1]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
185
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
186 Cannot update to revision with censored data
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
187
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
188 $ hg update -r $C2
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
189 abort: censored node: 1e0247a9a4b7
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
190 (set censor.policy to ignore errors)
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
191 [255]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
192 $ hg update -r $C1
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
193 abort: censored node: 613bc869fceb
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
194 (set censor.policy to ignore errors)
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
195 [255]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
196 $ hg update -r 0
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
197 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
198 $ hg update -r $H2
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
199 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
200
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
201 Set censor policy to ignore in trusted $HGRC so hg verify passes
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
202
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
203 $ cp $HGRCPATH.orig $HGRCPATH
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
204 $ cat >> $HGRCPATH <<EOF
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
205 > [censor]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
206 > policy = ignore
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
207 > EOF
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
208
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
209 Repo passes verification with warnings with explicit config
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
210
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
211 $ hg verify
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
212 checking changesets
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
213 checking manifests
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
214 crosschecking files in changesets and manifests
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
215 checking files
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
216 2 files, 5 changesets, 7 total revisions
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
217
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
218 May update to revision with censored data with explicit config
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
219
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
220 $ hg update -r $C2
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
221 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
222 $ cat target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
223 $ hg update -r $C1
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
224 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
225 $ cat target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
226 $ hg update -r 0
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
227 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
228 $ cat target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
229 Initially untainted file
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
230 $ hg update -r $H2
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
231 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
232 $ cat target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
233 Tainted file now super sanitized
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
234
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
235 Can merge in revision with censored data. Test requires one branch of history
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
236 with the file censored, but we can't censor at a head, so advance H1.
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
237
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
238 $ hg update -r $H1
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
239 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
240 $ C3=$H1
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
241 $ echo 'advanced head H1' > target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
242 $ hg ci -m 'advance head H1' target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
243 $ H1=`hg id --debug -i`
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
244 $ hg censor -r $C3 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
245 $ hg update -r $H2
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
246 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
247 $ hg merge -r $C3
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
248 merging target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
249 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
250 (branch merge, don't forget to commit)
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
251
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
252 Revisions present in repository heads may not be censored
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
253
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
254 $ hg update -C -r $H2
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
255 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
256 $ hg censor -r $H2 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
257 abort: cannot censor file in heads (78a8fc215e79)
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
258 (clean/delete and commit first)
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
259 [255]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
260 $ echo 'twiddling thumbs' > bystander
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
261 $ hg ci -m 'bystander commit'
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
262 $ H2=`hg id --debug -i`
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
263 $ hg censor -r "$H2^" target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
264 abort: cannot censor file in heads (efbe78065929)
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
265 (clean/delete and commit first)
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
266 [255]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
267
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
268 Cannot censor working directory
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
269
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
270 $ echo 'seriously no passwords' > target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
271 $ hg ci -m 'extend second head arbitrarily' target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
272 $ H2=`hg id --debug -i`
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
273 $ hg update -r "$H2^"
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
274 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
275 $ hg censor -r . target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
276 abort: cannot censor working directory
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
277 (clean/delete/update first)
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
278 [255]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
279 $ hg update -r $H2
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
280 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
281
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
282 Can re-add file after being deleted + censored
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
283
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
284 $ C4=$H2
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
285 $ hg rm target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
286 $ hg ci -m 'delete target so it may be censored'
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
287 $ H2=`hg id --debug -i`
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
288 $ hg censor -r $C4 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
289 $ hg cat -r $C4 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
290 $ hg cat -r "$H2^^" target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
291 Tainted file now super sanitized
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
292 $ echo 'fresh start' > target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
293 $ hg add target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
294 $ hg ci -m reincarnated target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
295 $ H2=`hg id --debug -i`
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
296 $ hg cat -r $H2 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
297 fresh start
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
298 $ hg cat -r "$H2^" target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
299 target: no such file in rev 452ec1762369
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
300 [1]
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
301 $ hg cat -r $C4 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
302 $ hg cat -r "$H2^^^" target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
303 Tainted file now super sanitized
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
304
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
305 Can censor after revlog has expanded to no longer permit inline storage
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
306
32940
75be14993fda cleanup: use $PYTHON to run python in many more tests
Augie Fackler <augie@google.com>
parents: 25806
diff changeset
307 $ for x in `$PYTHON $TESTDIR/seq.py 0 50000`
24347
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
308 > do
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
309 > echo "Password: hunter$x" >> target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
310 > done
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
311 $ hg ci -m 'add 100k passwords'
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
312 $ H2=`hg id --debug -i`
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
313 $ C5=$H2
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
314 $ hg revert -r "$H2^" target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
315 $ hg ci -m 'cleaned 100k passwords'
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
316 $ H2=`hg id --debug -i`
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
317 $ hg censor -r $C5 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
318 $ hg cat -r $C5 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
319 $ hg cat -r $H2 target
1bcfecbbf569 censor: add censor command to hgext with basic client-side tests
Mike Edgar <adgar@google.com>
parents:
diff changeset
320 fresh start
24348
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
321
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
322 Repo with censored nodes can be cloned and cloned nodes are censored
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
323
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
324 $ cd ..
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
325 $ hg clone r rclone
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
326 updating to branch default
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
327 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
328 $ cd rclone
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
329 $ hg cat -r $H1 target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
330 advanced head H1
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
331 $ hg cat -r $H2~5 target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
332 Tainted file now super sanitized
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
333 $ hg cat -r $C2 target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
334 $ hg cat -r $C1 target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
335 $ hg cat -r 0 target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
336 Initially untainted file
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
337 $ hg verify
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
338 checking changesets
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
339 checking manifests
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
340 crosschecking files in changesets and manifests
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
341 checking files
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
342 2 files, 12 changesets, 13 total revisions
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
343
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
344 Repo cloned before tainted content introduced can pull censored nodes
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
345
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
346 $ cd ../rpull
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
347 $ hg cat -r tip target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
348 Initially untainted file
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
349 $ hg verify
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
350 checking changesets
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
351 checking manifests
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
352 crosschecking files in changesets and manifests
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
353 checking files
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
354 2 files, 1 changesets, 2 total revisions
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
355 $ hg pull -r $H1 -r $H2
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
356 pulling from $TESTTMP/r
24348
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
357 searching for changes
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
358 adding changesets
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
359 adding manifests
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
360 adding file changes
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
361 added 11 changesets with 11 changes to 2 files (+1 heads)
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 32940
diff changeset
362 new changesets 186fb27560c3:683e4645fded
24348
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
363 (run 'hg heads' to see heads, 'hg merge' to merge)
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
364 $ hg update 4
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
365 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
366 $ cat target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
367 Tainted file now super sanitized
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
368 $ hg cat -r $H1 target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
369 advanced head H1
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
370 $ hg cat -r $H2~5 target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
371 Tainted file now super sanitized
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
372 $ hg cat -r $C2 target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
373 $ hg cat -r $C1 target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
374 $ hg cat -r 0 target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
375 Initially untainted file
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
376 $ hg verify
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
377 checking changesets
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
378 checking manifests
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
379 crosschecking files in changesets and manifests
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
380 checking files
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
381 2 files, 12 changesets, 13 total revisions
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
382
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
383 Censored nodes can be pushed if they censor previously unexchanged nodes
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
384
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
385 $ echo 'Passwords: hunter2hunter2' > target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
386 $ hg ci -m 're-add password from clone' target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
387 created new head
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
388 $ H3=`hg id --debug -i`
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
389 $ REV=$H3
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
390 $ echo 'Re-sanitized; nothing to see here' > target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
391 $ hg ci -m 're-sanitized' target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
392 $ H2=`hg id --debug -i`
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
393 $ CLEANREV=$H2
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
394 $ hg cat -r $REV target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
395 Passwords: hunter2hunter2
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
396 $ hg censor -r $REV target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
397 $ hg cat -r $REV target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
398 $ hg cat -r $CLEANREV target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
399 Re-sanitized; nothing to see here
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
400 $ hg push -f -r $H2
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
401 pushing to $TESTTMP/r
24348
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
402 searching for changes
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
403 adding changesets
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
404 adding manifests
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
405 adding file changes
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
406 added 2 changesets with 2 changes to 1 files (+1 heads)
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
407
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
408 $ cd ../r
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
409 $ hg cat -r $REV target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
410 $ hg cat -r $CLEANREV target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
411 Re-sanitized; nothing to see here
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
412 $ hg update $CLEANREV
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
413 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
414 $ cat target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
415 Re-sanitized; nothing to see here
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
416
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
417 Censored nodes can be bundled up and unbundled in another repo
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
418
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
419 $ hg bundle --base 0 ../pwbundle
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
420 13 changesets found
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
421 $ cd ../rclone
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
422 $ hg unbundle ../pwbundle
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
423 adding changesets
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
424 adding manifests
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
425 adding file changes
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
426 added 2 changesets with 2 changes to 2 files (+1 heads)
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 32940
diff changeset
427 new changesets 075be80ac777:dcbaf17bf3a1
24348
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
428 (run 'hg heads .' to see heads, 'hg merge' to merge)
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
429 $ hg cat -r $REV target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
430 $ hg cat -r $CLEANREV target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
431 Re-sanitized; nothing to see here
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
432 $ hg update $CLEANREV
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
433 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
434 $ cat target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
435 Re-sanitized; nothing to see here
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
436 $ hg verify
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
437 checking changesets
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
438 checking manifests
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
439 crosschecking files in changesets and manifests
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
440 checking files
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
441 2 files, 14 changesets, 15 total revisions
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
442
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
443 Censored nodes can be imported on top of censored nodes, consecutively
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
444
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
445 $ hg init ../rimport
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
446 $ hg bundle --base 1 ../rimport/splitbundle
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
447 12 changesets found
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
448 $ cd ../rimport
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
449 $ hg pull -r $H1 -r $H2 ../r
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
450 pulling from ../r
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
451 adding changesets
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
452 adding manifests
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
453 adding file changes
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
454 added 8 changesets with 10 changes to 2 files (+1 heads)
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 32940
diff changeset
455 new changesets e97f55b2665a:dcbaf17bf3a1
24348
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
456 (run 'hg heads' to see heads, 'hg merge' to merge)
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
457 $ hg unbundle splitbundle
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
458 adding changesets
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
459 adding manifests
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
460 adding file changes
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
461 added 6 changesets with 5 changes to 2 files (+1 heads)
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 32940
diff changeset
462 new changesets efbe78065929:683e4645fded
24348
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
463 (run 'hg heads .' to see heads, 'hg merge' to merge)
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
464 $ hg update $H2
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
465 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
466 $ cat target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
467 Re-sanitized; nothing to see here
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
468 $ hg verify
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
469 checking changesets
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
470 checking manifests
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
471 crosschecking files in changesets and manifests
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
472 checking files
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
473 2 files, 14 changesets, 15 total revisions
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
474 $ cd ../r
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
475
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
476 Can import bundle where first revision of a file is censored
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
477
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
478 $ hg init ../rinit
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
479 $ hg censor -r 0 target
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
480 $ hg bundle -r 0 --base null ../rinit/initbundle
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
481 1 changesets found
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
482 $ cd ../rinit
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
483 $ hg unbundle initbundle
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
484 adding changesets
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
485 adding manifests
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
486 adding file changes
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
487 added 1 changesets with 2 changes to 2 files
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 32940
diff changeset
488 new changesets e97f55b2665a
24348
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
489 (run 'hg update' to get a working copy)
b7f936f47f2b censor: add exchange tests, via local push/pull and bundle/unbundle
Mike Edgar <adgar@google.com>
parents: 24347
diff changeset
490 $ hg cat -r 0 target