Show More
@@ -1079,6 +1079,11 b' coreconfigitem(' | |||
|
1079 | 1079 | ) |
|
1080 | 1080 | coreconfigitem( |
|
1081 | 1081 | b'experimental', |
|
1082 | b'single-head-per-branch:public-changes-only', | |
|
1083 | default=False, | |
|
1084 | ) | |
|
1085 | coreconfigitem( | |
|
1086 | b'experimental', | |
|
1082 | 1087 | b'sshserver.support-v2', |
|
1083 | 1088 | default=False, |
|
1084 | 1089 | ) |
@@ -2254,7 +2254,13 b' class localrepository(object):' | |||
|
2254 | 2254 | accountclosed = singleheadsub.get( |
|
2255 | 2255 | b"account-closed-heads", False |
|
2256 | 2256 | ) |
|
2257 | scmutil.enforcesinglehead(repo, tr2, desc, accountclosed) | |
|
2257 | if singleheadsub.get(b"public-changes-only", False): | |
|
2258 | filtername = b"immutable" | |
|
2259 | else: | |
|
2260 | filtername = b"visible" | |
|
2261 | scmutil.enforcesinglehead( | |
|
2262 | repo, tr2, desc, accountclosed, filtername | |
|
2263 | ) | |
|
2258 | 2264 | if hook.hashook(repo.ui, b'pretxnclose-bookmark'): |
|
2259 | 2265 | for name, (old, new) in sorted( |
|
2260 | 2266 | tr.changes[b'bookmarks'].items() |
@@ -2189,12 +2189,12 b' def nodesummaries(repo, nodes, maxnumnod' | |||
|
2189 | 2189 | return _(b"%s and %d others") % (first, len(nodes) - maxnumnodes) |
|
2190 | 2190 | |
|
2191 | 2191 | |
|
2192 |
def enforcesinglehead(repo, tr, desc, accountclosed |
|
|
2192 | def enforcesinglehead(repo, tr, desc, accountclosed, filtername): | |
|
2193 | 2193 | """check that no named branch has multiple heads""" |
|
2194 | 2194 | if desc in (b'strip', b'repair'): |
|
2195 | 2195 | # skip the logic during strip |
|
2196 | 2196 | return |
|
2197 |
visible = repo.filtered( |
|
|
2197 | visible = repo.filtered(filtername) | |
|
2198 | 2198 | # possible improvement: we could restrict the check to affected branch |
|
2199 | 2199 | bm = visible.branchmap() |
|
2200 | 2200 | for name in bm: |
@@ -26,8 +26,13 b'' | |||
|
26 | 26 | * The memory footprint per changeset during pull/unbundle |
|
27 | 27 | operations has been further reduced. |
|
28 | 28 | |
|
29 | ||
|
29 | 30 | == New Experimental Features == |
|
30 | 31 | |
|
32 | * `experimental.single-head-per-branch:public-changes-only` can be used | |
|
33 | restrict the single head check to public revision. This is useful for | |
|
34 | overlay repository that have both a publishing and non-publishing view | |
|
35 | of the same storage. | |
|
31 | 36 | |
|
32 | 37 | |
|
33 | 38 | == Bug Fixes == |
@@ -277,7 +277,7 b" Because of previous test, we'll also pus" | |||
|
277 | 277 | c_aL0 |
|
278 | 278 | c_aM0 |
|
279 | 279 | |
|
280 | Let's make a new head and push everythin. The server feedback will mention | |
|
280 | Let's make a new head and push everything. The server feedback will mention | |
|
281 | 281 | exactly one new head because c_aM0 is closed. |
|
282 | 282 | |
|
283 | 283 | $ hg up 'desc("c_aG0")' |
@@ -291,3 +291,98 b' exactly one new head because c_aM0 is cl' | |||
|
291 | 291 | adding manifests |
|
292 | 292 | adding file changes |
|
293 | 293 | added 3 changesets with 3 changes to 3 files (+1 heads) |
|
294 | $ cd .. | |
|
295 | ||
|
296 | ||
|
297 | Test that singe-head-per-branch can be restricted to public changes | |
|
298 | ------------------------------------------------------------------- | |
|
299 | ||
|
300 | $ hg clone -r 49003e504178 single-head-server public-only | |
|
301 | adding changesets | |
|
302 | adding manifests | |
|
303 | adding file changes | |
|
304 | added 9 changesets with 9 changes to 9 files | |
|
305 | 1 new obsolescence markers | |
|
306 | new changesets ea207398892e:49003e504178 (9 drafts) | |
|
307 | updating to branch branch_A | |
|
308 | 9 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
309 | $ cd public-only | |
|
310 | $ cat <<EOF >> .hg/hgrc | |
|
311 | > [phases] | |
|
312 | > publish = no | |
|
313 | > [experimental] | |
|
314 | > single-head-per-branch = yes | |
|
315 | > single-head-per-branch:public-changes-only = yes | |
|
316 | > EOF | |
|
317 | > hg phase -p : | |
|
318 | $ hg update 'desc("c_aG0")' | |
|
319 | 0 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
|
320 | $ mkcommit c_dO0 | |
|
321 | created new head | |
|
322 | $ hg log -G | |
|
323 | @ changeset: 9:8058fd35cc2b | |
|
324 | | branch: branch_A | |
|
325 | | tag: tip | |
|
326 | | parent: 7:a33fb808fb4b | |
|
327 | | user: test | |
|
328 | | date: Thu Jan 01 00:00:00 1970 +0000 | |
|
329 | | summary: c_dO0 | |
|
330 | | | |
|
331 | | o changeset: 8:49003e504178 | |
|
332 | |/| branch: branch_A | |
|
333 | | | parent: 7:a33fb808fb4b | |
|
334 | | | parent: 3:840af1c6bc88 | |
|
335 | | | user: test | |
|
336 | | | date: Thu Jan 01 00:00:00 1970 +0000 | |
|
337 | | | summary: c_aI0 | |
|
338 | | | | |
|
339 | o | changeset: 7:a33fb808fb4b | |
|
340 | | | branch: branch_A | |
|
341 | | | user: test | |
|
342 | | | date: Thu Jan 01 00:00:00 1970 +0000 | |
|
343 | | | summary: c_aG0 | |
|
344 | | | | |
|
345 | o | changeset: 6:99a2dc242c5d | |
|
346 | | | user: test | |
|
347 | | | date: Thu Jan 01 00:00:00 1970 +0000 | |
|
348 | | | summary: c_dF1 | |
|
349 | | | | |
|
350 | o | changeset: 5:6ed1df20edb1 | |
|
351 | |\ \ parent: 4:9bf953aa81f6 | |
|
352 | | | | parent: 2:286d02a6e2a2 | |
|
353 | | | | user: test | |
|
354 | | | | date: Thu Jan 01 00:00:00 1970 +0000 | |
|
355 | | | | summary: c_dE0 | |
|
356 | | | | | |
|
357 | | o | changeset: 4:9bf953aa81f6 | |
|
358 | | | | parent: 1:134bc3852ad2 | |
|
359 | | | | user: test | |
|
360 | | | | date: Thu Jan 01 00:00:00 1970 +0000 | |
|
361 | | | | summary: c_dD0 | |
|
362 | | | | | |
|
363 | | | o changeset: 3:840af1c6bc88 | |
|
364 | | | | branch: branch_A | |
|
365 | | | | parent: 0:ea207398892e | |
|
366 | | | | user: test | |
|
367 | | | | date: Thu Jan 01 00:00:00 1970 +0000 | |
|
368 | | | | summary: c_aC0 | |
|
369 | | | | | |
|
370 | o | | changeset: 2:286d02a6e2a2 | |
|
371 | |/ / user: test | |
|
372 | | | date: Thu Jan 01 00:00:00 1970 +0000 | |
|
373 | | | summary: c_dB0 | |
|
374 | | | | |
|
375 | o | changeset: 1:134bc3852ad2 | |
|
376 | |/ user: test | |
|
377 | | date: Thu Jan 01 00:00:00 1970 +0000 | |
|
378 | | summary: c_dA0 | |
|
379 | | | |
|
380 | o changeset: 0:ea207398892e | |
|
381 | user: test | |
|
382 | date: Thu Jan 01 00:00:00 1970 +0000 | |
|
383 | summary: ROOT | |
|
384 | ||
|
385 | $ hg phase -p . | |
|
386 | abort: rejecting multiple heads on branch "branch_A" | |
|
387 | (2 heads: 49003e504178 8058fd35cc2b) | |
|
388 | [255] |
General Comments 0
You need to be logged in to leave comments.
Login now