##// END OF EJS Templates
merge with stable
Matt Mackall -
r27278:42aa0e57 merge default
parent child Browse files
Show More
@@ -116,3 +116,4 b' 9a466b9f9792e3ad7ae3fc6c43c3ff2e136b718d'
116 b66e3ca0b90c3095ea28dfd39aa24247bebf5c20 0 iQIVAwUAViarTyBXgaxoKi1yAQLZgRAAh7c7ebn7kUWI5M/b/T6qHGjFrU5azkjamzy9IG+KIa2hZgSMxyEM7JJUFqKP4TiWa3sW03bjKGSM/SjjDSSyheX+JIVSPNyKrBwneYhPq45Ius8eiHziClkt0CSsl2d9xDRpI0JmHbN0Pf8nh7rnbL+231GDAOT6dP+2S8K1HGa/0BgEcL9gpYs4/2GyjL+hBSUjyrabzvwe48DCN5W0tEJbGFw5YEADxdfbVbNEuXL81tR4PFGiJxPW0QKRLDB74MWmiWC0gi2ZC/IhbNBZ2sLb6694d4Bx4PVwtiARh63HNXVMEaBrFu1S9NcMQyHvAOc6Zw4izF/PCeTcdEnPk8J1t5PTz09Lp0EAKxe7CWIViy350ke5eiaxO3ySrNMX6d83BOHLDqEFMSWm+ad+KEMT4CJrK4X/n/XMgEFAaU5nWlIRqrLRIeU2Ifc625T0Xh4BgTqXPpytQxhgV5b+Fi6duNk4cy+QnHT4ymxI6BPD9HvSQwc+O7h37qjvJVZmpQX6AP8O75Yza8ZbcYKRIIxZzOkwNpzE5A/vpvP5bCRn7AGcT3ORWmAYr/etr3vxUvt2fQz6U/R4S915V+AeWBdcp+uExu6VZ42M0vhhh0lyzx1VRJGVdV+LoxFKkaC42d0yT+O1QEhSB7WL1D3/a/iWubv6ieB/cvNMhFaK9DA=
116 b66e3ca0b90c3095ea28dfd39aa24247bebf5c20 0 iQIVAwUAViarTyBXgaxoKi1yAQLZgRAAh7c7ebn7kUWI5M/b/T6qHGjFrU5azkjamzy9IG+KIa2hZgSMxyEM7JJUFqKP4TiWa3sW03bjKGSM/SjjDSSyheX+JIVSPNyKrBwneYhPq45Ius8eiHziClkt0CSsl2d9xDRpI0JmHbN0Pf8nh7rnbL+231GDAOT6dP+2S8K1HGa/0BgEcL9gpYs4/2GyjL+hBSUjyrabzvwe48DCN5W0tEJbGFw5YEADxdfbVbNEuXL81tR4PFGiJxPW0QKRLDB74MWmiWC0gi2ZC/IhbNBZ2sLb6694d4Bx4PVwtiARh63HNXVMEaBrFu1S9NcMQyHvAOc6Zw4izF/PCeTcdEnPk8J1t5PTz09Lp0EAKxe7CWIViy350ke5eiaxO3ySrNMX6d83BOHLDqEFMSWm+ad+KEMT4CJrK4X/n/XMgEFAaU5nWlIRqrLRIeU2Ifc625T0Xh4BgTqXPpytQxhgV5b+Fi6duNk4cy+QnHT4ymxI6BPD9HvSQwc+O7h37qjvJVZmpQX6AP8O75Yza8ZbcYKRIIxZzOkwNpzE5A/vpvP5bCRn7AGcT3ORWmAYr/etr3vxUvt2fQz6U/R4S915V+AeWBdcp+uExu6VZ42M0vhhh0lyzx1VRJGVdV+LoxFKkaC42d0yT+O1QEhSB7WL1D3/a/iWubv6ieB/cvNMhFaK9DA=
117 47dd34f2e7272be9e3b2a5a83cd0d20be44293f4 0 iQIVAwUAVjZiKiBXgaxoKi1yAQKBWQ/+JcE37vprSOA5e0ezs/avC7leR6hTlXy9O5bpFnvMpbVMTUp+KfBE4HxTT0KKXKh9lGtNaQ+lAmHuy1OQE1hBKPIaCUd8/1gunGsXgRM3TJ9LwjFd4qFpOMxvOouc6kW5kmea7V9W2fg6aFNjjc/4/0J3HMOIjmf2fFz87xqR1xX8iezJ57A4pUPNViJlOWXRzfa56cI6VUe5qOMD0NRXcY+JyI5qW25Y/aL5D9loeKflpzd53Ue+Pu3qlhddJd3PVkaAiVDH+DYyRb8sKgwuiEsyaBO18IBgC8eDmTohEJt6707A+WNhwBJwp9aOUhHC7caaKRYhEKuDRQ3op++VqwuxbFRXx22XYR9bEzQIlpsv9GY2k8SShU5MZqUKIhk8vppFI6RaID5bmALnLLmjmXfSPYSJDzDuCP5UTQgI3PKPOATorVrqMdKzfb7FiwtcTvtHAXpOgLaY9P9XIePbnei6Rx9TfoHYDvzFWRqzSjl21xR+ZUrJtG2fx7XLbMjEAZJcnjP++GRvNbHBOi57aX0l2LO1peQqZVMULoIivaoLFP3i16RuXXQ/bvKyHmKjJzGrLc0QCa0yfrvV2m30RRMaYlOv7ToJfdfZLXvSAP0zbAuDaXdjGnq7gpfIlNE3xM+kQ75Akcf4V4fK1p061EGBQvQz6Ov3PkPiWL/bxrQ=
117 47dd34f2e7272be9e3b2a5a83cd0d20be44293f4 0 iQIVAwUAVjZiKiBXgaxoKi1yAQKBWQ/+JcE37vprSOA5e0ezs/avC7leR6hTlXy9O5bpFnvMpbVMTUp+KfBE4HxTT0KKXKh9lGtNaQ+lAmHuy1OQE1hBKPIaCUd8/1gunGsXgRM3TJ9LwjFd4qFpOMxvOouc6kW5kmea7V9W2fg6aFNjjc/4/0J3HMOIjmf2fFz87xqR1xX8iezJ57A4pUPNViJlOWXRzfa56cI6VUe5qOMD0NRXcY+JyI5qW25Y/aL5D9loeKflpzd53Ue+Pu3qlhddJd3PVkaAiVDH+DYyRb8sKgwuiEsyaBO18IBgC8eDmTohEJt6707A+WNhwBJwp9aOUhHC7caaKRYhEKuDRQ3op++VqwuxbFRXx22XYR9bEzQIlpsv9GY2k8SShU5MZqUKIhk8vppFI6RaID5bmALnLLmjmXfSPYSJDzDuCP5UTQgI3PKPOATorVrqMdKzfb7FiwtcTvtHAXpOgLaY9P9XIePbnei6Rx9TfoHYDvzFWRqzSjl21xR+ZUrJtG2fx7XLbMjEAZJcnjP++GRvNbHBOi57aX0l2LO1peQqZVMULoIivaoLFP3i16RuXXQ/bvKyHmKjJzGrLc0QCa0yfrvV2m30RRMaYlOv7ToJfdfZLXvSAP0zbAuDaXdjGnq7gpfIlNE3xM+kQ75Akcf4V4fK1p061EGBQvQz6Ov3PkPiWL/bxrQ=
118 1aa5083cbebbe7575c88f3402ab377539b484897 0 iQIVAwUAVkEdCCBXgaxoKi1yAQKdWg//crTr5gsnHQppuD1p+PPn3/7SMsWJ7bgbuaXgERDLC0zWMfhM2oMmu/4jqXnpangdBVvb0SojejgzxoBo9FfRQiIoKt0vxmmn+S8CrEwb99rpP4M7lgyMAInKPMXQdYxkoDNwL70Afmog6eBtlxjYnu8nmUE/swu6JoVns+tF8UOvIKFYbuCcGujo2pUOQC0xBGiHeHSGRDJOlWmY2d7D/PkQtQE/u/d4QZt7enTHMiV44XVJ8+0U0f1ZQE7V+hNWf+IjwcZtL95dnQzUKs6tXMIln/OwO+eJ3d61BfLvmABvCwUC9IepPssNSFBUfGqBAP5wXOzFIPSYn00IWpmZtCnpUNL99X1IV3RP+p99gnEDTScQFPYt5B0q5I1nFdRh1p48BSF/kjPA7V++UfBwMXrrYLKhUR9BjmrRzYnyXJKwbH6iCNj5hsXUkVrBdBi/FnMczgsVILfFcIXUfnJD3E/dG+1lmuObg6dEynxiGChTuaR4KkLa5ZRkUcUl6fWlSRsqSNbGEEbdwcI+nTCZqJUlLSghumhs0Z89Hs1nltBd1ALX2VLJEHrKMrFQ8NfEBeCB6ENqMJi5qPlq354MCdGOZ9RvisX/HlxE4Q61BW0+EwnyXSch6LFSOS3axOocUazMoK1XiOTJSv/5bAsnwb0ztDWeUj9fZEJL+SWtgB8=
118 1aa5083cbebbe7575c88f3402ab377539b484897 0 iQIVAwUAVkEdCCBXgaxoKi1yAQKdWg//crTr5gsnHQppuD1p+PPn3/7SMsWJ7bgbuaXgERDLC0zWMfhM2oMmu/4jqXnpangdBVvb0SojejgzxoBo9FfRQiIoKt0vxmmn+S8CrEwb99rpP4M7lgyMAInKPMXQdYxkoDNwL70Afmog6eBtlxjYnu8nmUE/swu6JoVns+tF8UOvIKFYbuCcGujo2pUOQC0xBGiHeHSGRDJOlWmY2d7D/PkQtQE/u/d4QZt7enTHMiV44XVJ8+0U0f1ZQE7V+hNWf+IjwcZtL95dnQzUKs6tXMIln/OwO+eJ3d61BfLvmABvCwUC9IepPssNSFBUfGqBAP5wXOzFIPSYn00IWpmZtCnpUNL99X1IV3RP+p99gnEDTScQFPYt5B0q5I1nFdRh1p48BSF/kjPA7V++UfBwMXrrYLKhUR9BjmrRzYnyXJKwbH6iCNj5hsXUkVrBdBi/FnMczgsVILfFcIXUfnJD3E/dG+1lmuObg6dEynxiGChTuaR4KkLa5ZRkUcUl6fWlSRsqSNbGEEbdwcI+nTCZqJUlLSghumhs0Z89Hs1nltBd1ALX2VLJEHrKMrFQ8NfEBeCB6ENqMJi5qPlq354MCdGOZ9RvisX/HlxE4Q61BW0+EwnyXSch6LFSOS3axOocUazMoK1XiOTJSv/5bAsnwb0ztDWeUj9fZEJL+SWtgB8=
119 2d437a0f3355834a9485bbbeb30a52a052c98f19 0 iQIVAwUAVl5U9CBXgaxoKi1yAQLocg//a4YFz9UVSIEzVEJMUPJnN2dBvEXRpwpb5CdKPd428+18K6VWZd5Mc6xNNRV5AV/hCYylgqDplIvyOvwCj7uN8nEOrLUQQ0Pp37M5ZIX8ZVCK/wgchJ2ltabUG1NrZ7/JA84U79VGLAECMnD0Z9WvZDESpVXmdXfxrk1eCc3omRB0ofNghEx+xpYworfZsu8aap1GHQuBsjPv4VyUWGpMq/KA01PdxRTELmrJnfSyr0nPKwxlI5KsbA1GOe+Mk3tp5HJ42DZqLtKSGPirf6E+6lRJeB0H7EpotN4wD3yZDsw6AgRb2C/ay/3T3Oz7CN+45mwuujV9Cxx5zs1EeOgZcqgA/hXMcwlQyvQDMrWpO8ytSBm6MhOuFOTB3HnUxfsnfSocLJsbNwGWKceAzACcXSqapveVAz/7h+InFgl/8Qce28UJdnX5wro5gP6UWt+xrvc7vfmVGgI3oxbiOUrfglhkjmrxBjEiDQy4BWH7HWMZUVxnqPQRcxIE10+dv0KtM/PBkbUtnbGJ88opFBGkFweje5vQcZy/duuPEIufRkPr8EV47QjOxlvldEjlLq3+QUdJZEgCIFw1X0y7Pix4dsPFjwOmAyo4El1ePrdFzG3dXSVA3eHvMDRnYnNlue9wHvKhYbBle5xTOZBgGuMzhDVe+54JLql5JYr4WrI1pvA=
@@ -129,3 +129,4 b' 9a466b9f9792e3ad7ae3fc6c43c3ff2e136b718d'
129 b66e3ca0b90c3095ea28dfd39aa24247bebf5c20 3.6-rc
129 b66e3ca0b90c3095ea28dfd39aa24247bebf5c20 3.6-rc
130 47dd34f2e7272be9e3b2a5a83cd0d20be44293f4 3.6
130 47dd34f2e7272be9e3b2a5a83cd0d20be44293f4 3.6
131 1aa5083cbebbe7575c88f3402ab377539b484897 3.6.1
131 1aa5083cbebbe7575c88f3402ab377539b484897 3.6.1
132 2d437a0f3355834a9485bbbeb30a52a052c98f19 3.6.2
@@ -14,8 +14,8 b' function checkdocker() {'
14 fi
14 fi
15
15
16 $DOCKER -h 2> /dev/null | grep -q Jansens && { echo "Error: $DOCKER is the Docking System Tray - install docker.io instead"; exit 1; }
16 $DOCKER -h 2> /dev/null | grep -q Jansens && { echo "Error: $DOCKER is the Docking System Tray - install docker.io instead"; exit 1; }
17 $DOCKER version | grep -q "^Client version:" || { echo "Error: unexpected output from \"$DOCKER version\""; exit 1; }
17 $DOCKER version | grep -Eq "^Client( version)?:" || { echo "Error: unexpected output from \"$DOCKER version\""; exit 1; }
18 $DOCKER version | grep -q "^Server version:" || { echo "Error: could not get docker server version - check it is running and your permissions"; exit 1; }
18 $DOCKER version | grep -Eq "^Server( version)?:" || { echo "Error: could not get docker server version - check it is running and your permissions"; exit 1; }
19 }
19 }
20
20
21 # Construct a container and leave its name in $CONTAINER for future use.
21 # Construct a container and leave its name in $CONTAINER for future use.
@@ -35,8 +35,8 b' function initcontainer() {'
35 # running docker. This is *very likely* to fail at some point.
35 # running docker. This is *very likely* to fail at some point.
36 echo RUN useradd $DBUILDUSER -u 1000
36 echo RUN useradd $DBUILDUSER -u 1000
37 else
37 else
38 echo RUN groupadd $DBUILDUSER -g `id -g` --non-unique
38 echo RUN groupadd $DBUILDUSER -g `id -g` -o
39 echo RUN useradd $DBUILDUSER -u `id -u` -g $DBUILDUSER --non-unique
39 echo RUN useradd $DBUILDUSER -u `id -u` -g $DBUILDUSER -o
40 fi
40 fi
41 ) | $DOCKER build --tag $CONTAINER -
41 ) | $DOCKER build --tag $CONTAINER -
42 }
42 }
@@ -120,10 +120,11 b' def _exthook(ui, repo, name, cmd, args, '
120 env = {}
120 env = {}
121
121
122 # make in-memory changes visible to external process
122 # make in-memory changes visible to external process
123 tr = repo.currenttransaction()
123 if repo is not None:
124 repo.dirstate.write(tr)
124 tr = repo.currenttransaction()
125 if tr and tr.writepending():
125 repo.dirstate.write(tr)
126 env['HG_PENDING'] = repo.root
126 if tr and tr.writepending():
127 env['HG_PENDING'] = repo.root
127
128
128 for k, v in args.iteritems():
129 for k, v in args.iteritems():
129 if callable(v):
130 if callable(v):
@@ -1569,19 +1569,12 b' class localrepository(object):'
1569 if merge and cctx.deleted():
1569 if merge and cctx.deleted():
1570 raise error.Abort(_("cannot commit merge with missing files"))
1570 raise error.Abort(_("cannot commit merge with missing files"))
1571
1571
1572 unresolved, driverresolved = False, False
1573 ms = mergemod.mergestate.read(self)
1572 ms = mergemod.mergestate.read(self)
1574 for f in status.modified:
1575 if f in ms:
1576 if ms[f] == 'u':
1577 unresolved = True
1578 elif ms[f] == 'd':
1579 driverresolved = True
1580
1573
1581 if unresolved:
1574 if list(ms.unresolved()):
1582 raise error.Abort(_('unresolved merge conflicts '
1575 raise error.Abort(_('unresolved merge conflicts '
1583 '(see "hg help resolve")'))
1576 '(see "hg help resolve")'))
1584 if driverresolved or ms.mdstate() != 's':
1577 if ms.mdstate() != 's' or list(ms.driverresolved()):
1585 raise error.Abort(_('driver-resolved merge conflicts'),
1578 raise error.Abort(_('driver-resolved merge conflicts'),
1586 hint=_('run "hg resolve --all" to resolve'))
1579 hint=_('run "hg resolve --all" to resolve'))
1587
1580
@@ -493,6 +493,11 b' static PyObject *parse_dirstate(PyObject'
493
493
494 /* read filenames */
494 /* read filenames */
495 while (pos >= 40 && pos < len) {
495 while (pos >= 40 && pos < len) {
496 if (pos + 17 > len) {
497 PyErr_SetString(PyExc_ValueError,
498 "overflow in dirstate");
499 goto quit;
500 }
496 cur = str + pos;
501 cur = str + pos;
497 /* unpack header */
502 /* unpack header */
498 state = *cur;
503 state = *cur;
@@ -43,4 +43,25 b' Mark the conflict as resolved and commit'
43 (no more unresolved files)
43 (no more unresolved files)
44 $ hg commit -m "Merged"
44 $ hg commit -m "Merged"
45
45
46 Test that if a file is removed but not marked resolved, the commit still fails
47 (issue4972)
48
49 $ hg up ".^"
50 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
51 $ hg merge 2
52 merging A
53 warning: conflicts while merging A! (edit, then use 'hg resolve --mark')
54 1 files updated, 0 files merged, 0 files removed, 1 files unresolved
55 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
56 [1]
57 $ hg rm --force A
58 $ hg commit -m merged
59 abort: unresolved merge conflicts (see "hg help resolve")
60 [255]
61
62 $ hg resolve -ma
63 (no more unresolved files)
64 $ hg commit -m merged
65 created new head
66
46 $ cd ..
67 $ cd ..
@@ -681,10 +681,19 b' new tags must be visible in pretxncommit'
681 $ hg tag -f foo
681 $ hg tag -f foo
682 ['a', 'foo', 'tip']
682 ['a', 'foo', 'tip']
683
683
684 post-init hooks must not crash (issue4983)
685 This also creates the `to` repo for the next test block.
686
687 $ cd ..
688 $ cat << EOF >> hgrc-with-post-init-hook
689 > [hooks]
690 > post-init = printenv.py post-init
691 > EOF
692 $ HGRCPATH=hgrc-with-post-init-hook hg init to
693 post-init hook: HG_ARGS=init to HG_OPTS={'insecure': None, 'remotecmd': '', 'ssh': ''} HG_PATS=['to'] HG_RESULT=0
694
684 new commits must be visible in pretxnchangegroup (issue3428)
695 new commits must be visible in pretxnchangegroup (issue3428)
685
696
686 $ cd ..
687 $ hg init to
688 $ echo '[hooks]' >> to/.hg/hgrc
697 $ echo '[hooks]' >> to/.hg/hgrc
689 $ echo 'prechangegroup = hg --traceback tip' >> to/.hg/hgrc
698 $ echo 'prechangegroup = hg --traceback tip' >> to/.hg/hgrc
690 $ echo 'pretxnchangegroup = hg --traceback tip' >> to/.hg/hgrc
699 $ echo 'pretxnchangegroup = hg --traceback tip' >> to/.hg/hgrc
@@ -83,3 +83,76 b' check that bundle is not affected'
83 adding file changes
83 adding file changes
84 added 1 changesets with 0 changes to 1 files (+1 heads)
84 added 1 changesets with 0 changes to 1 files (+1 heads)
85 (run 'hg heads' to see heads)
85 (run 'hg heads' to see heads)
86 $ cd ..
87
88 pull does not fetch excessive changesets when common node is hidden (issue4982)
89 -------------------------------------------------------------------------------
90
91 initial repo with server and client matching
92
93 $ hg init pull-hidden-common
94 $ cd pull-hidden-common
95 $ touch foo
96 $ hg -q commit -A -m initial
97 $ echo 1 > foo
98 $ hg commit -m 1
99 $ echo 2a > foo
100 $ hg commit -m 2a
101 $ cd ..
102 $ hg clone --pull pull-hidden-common pull-hidden-common-client
103 requesting all changes
104 adding changesets
105 adding manifests
106 adding file changes
107 added 3 changesets with 3 changes to 1 files
108 updating to branch default
109 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
110
111 server obsoletes the old head
112
113 $ cd pull-hidden-common
114 $ hg -q up -r 1
115 $ echo 2b > foo
116 $ hg -q commit -m 2b
117 $ hg debugobsolete 6a29ed9c68defff1a139e5c6fa9696fb1a75783d bec0734cd68e84477ba7fc1d13e6cff53ab70129
118 $ cd ..
119
120 client only pulls down 1 changeset
121 ("all local heads known remotely" may change if the wire protocol discovery
122 commands ever stop saying they have hidden changesets)
123
124 $ cd pull-hidden-common-client
125 $ hg pull --debug
126 pulling from $TESTTMP/pull-hidden-common (glob)
127 query 1; heads
128 searching for changes
129 all local heads known remotely
130 3 changesets found
131 list of changesets:
132 96ee1d7354c4ad7372047672c36a1f561e3a6a4c
133 a33779fdfc23063680fc31e9ff637dff6876d3d2
134 bec0734cd68e84477ba7fc1d13e6cff53ab70129
135 listing keys for "phase"
136 listing keys for "bookmarks"
137 bundle2-output-bundle: "HG20", 3 parts total
138 bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
139 bundle2-output-part: "listkeys" (params: 1 mandatory) empty payload
140 bundle2-output-part: "listkeys" (params: 1 mandatory) empty payload
141 bundle2-input-bundle: with-transaction
142 bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
143 adding changesets
144 add changeset 96ee1d7354c4
145 add changeset a33779fdfc23
146 add changeset bec0734cd68e
147 adding manifests
148 adding file changes
149 adding foo revisions
150 added 1 changesets with 1 changes to 1 files (+1 heads)
151 bundle2-input-part: total payload size 1378
152 bundle2-input-part: "listkeys" (params: 1 mandatory) supported
153 bundle2-input-part: "listkeys" (params: 1 mandatory) supported
154 bundle2-input-bundle: 2 parts total
155 checking for updated bookmarks
156 listing keys for "phases"
157 updating the branch cache
158 (run 'hg heads' to see heads, 'hg merge' to merge)
General Comments 0
You need to be logged in to leave comments. Login now