Mercurial > hg > mercurial-crew-with-dirclash
annotate tests/fish-merge @ 1981:736b6c96bbbc
make incoming work via ssh (issue139); move chunk code into separate module.
Incoming ssh needs to detect the end of the changegroup, otherwise it would
block trying to read from the ssh pipe. This is done by parsing the
changegroup chunks.
bundlerepo.getchunk() already is identical to
localrepo.addchangegroup.getchunk(), which is followed by getgroup which
looks much like what you can re-use in bundlerepository.__init__() and in
write_bundle(). bundlerevlog.__init__.genchunk() looks very similar, too,
as do some while loops in localrepo.py.
Applied patch from Benoit Boissinot to move duplicate/related code
to mercurial/changegroup.py and use this to fix incoming ssh.
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Tue, 21 Mar 2006 11:47:21 +0100 |
parents | 0902ffece4b4 |
children |
rev | line source |
---|---|
544
3d4d5f2aba9a
Remove bashisms and use /bin/sh instead of /bin/bash.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
28
diff
changeset
|
1 #!/bin/sh |
3d4d5f2aba9a
Remove bashisms and use /bin/sh instead of /bin/bash.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
28
diff
changeset
|
2 |
28 | 3 set -e |
4 set -x | |
5 | |
6 # skip commit logs | |
797
95c258ee5264
Remove "export FOO=bar" bashism.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
547
diff
changeset
|
7 HGMERGE=tkmerge; export HGMERGE |
95c258ee5264
Remove "export FOO=bar" bashism.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
547
diff
changeset
|
8 EDITOR=true; export EDITOR |
28 | 9 |
10 rm -rf m m1 m2 | |
11 mkdir m | |
12 cd m | |
13 | |
14 echo "m this that" | |
15 echo "this" > a | |
16 echo "that" > b | |
17 hg init | |
18 hg addremove | |
19 hg commit | |
20 echo "a:" `hg dump a` "b:" `hg dump b` | |
21 echo | |
22 | |
23 cd .. | |
24 echo "m2 this that " | |
25 mkdir m2 | |
26 cd m2 | |
27 hg branch ../m | |
28 hg checkout | |
29 echo "a:" `hg dump a` "b:" `hg dump b` | |
30 echo | |
31 | |
32 cd ../m | |
33 echo "m this1 that " | |
34 echo "this1" > a | |
35 hg commit | |
36 echo "a:" `hg dump a` "b:" `hg dump b` | |
37 echo | |
38 | |
39 cd .. | |
40 echo "m1 this1 that " | |
41 mkdir m1 | |
42 cd m1 | |
43 hg branch ../m | |
44 hg checkout | |
45 echo "a:" `hg dump a` "b:" `hg dump b` | |
46 echo | |
47 | |
48 cd ../m1 | |
49 echo "m1 this1 that1" | |
50 echo "that1" > b | |
51 hg commit | |
52 echo "a:" `hg dump a` "b:" `hg dump b` | |
53 echo | |
54 | |
55 cd ../m2 | |
56 echo "m2 this that2" | |
57 echo "that2" > b | |
58 hg commit | |
59 echo "a:" `hg dump a` "b:" `hg dump b` | |
60 echo | |
61 | |
62 cd ../m1 | |
63 echo "m1:m2 this1 that1 that2" | |
64 hg merge ../m2 # b should conflict, a should be fine | |
65 echo "a:" `hg dump a` "b:" `hg dump b` | |
66 echo | |
67 | |
68 cd ../m2 | |
69 echo "m2 this2 that2" | |
70 echo "this2" > a | |
71 hg commit | |
72 echo "a:" `hg dump a` "b:" `hg dump b` | |
73 echo | |
74 | |
75 cd ../m2 | |
76 echo "m2:m this12 that2" | |
77 hg merge ../m # a should conflict, b should be fine | |
78 echo "a:" `hg dump a` "b:" `hg dump b` | |
79 echo | |
80 | |
81 # now here's the interesting bit | |
82 # if we choose ancestor by file, no conflicts | |
83 # otherwise we've got two equally close ancestors, each with a conflict | |
84 # if we go back to the root, we'll have both conflicts again | |
85 echo "m2:m1 this12 that12" | |
86 hg merge ../m1 # should be clean | |
87 echo "a:" `hg dump a` "b:" `hg dump b` | |
88 echo |