Show More
@@ -57,7 +57,7 b' def pygmentize(field, fctx, style, tmpl,' | |||
|
57 | 57 | return |
|
58 | 58 | |
|
59 | 59 | # str.splitlines() != unicode.splitlines() because "reasons" |
|
60 | for c in b"\x0c\x1c\x1d\x1e": | |
|
60 | for c in b"\x0c", b"\x1c", b"\x1d", b"\x1e": | |
|
61 | 61 | if c in text: |
|
62 | 62 | text = text.replace(c, b'') |
|
63 | 63 |
@@ -28,6 +28,7 b' from . import (' | |||
|
28 | 28 | logexchange, |
|
29 | 29 | narrowspec, |
|
30 | 30 | obsolete, |
|
31 | obsutil, | |
|
31 | 32 | phases, |
|
32 | 33 | pushkey, |
|
33 | 34 | pycompat, |
@@ -99,11 +100,6 b' class bundlespec(object):' | |||
|
99 | 100 | contentopts = attr.ib() |
|
100 | 101 | |
|
101 | 102 | |
|
102 | def _sortedmarkers(markers): | |
|
103 | # last item of marker tuple ('parents') may be None or a tuple | |
|
104 | return sorted(markers, key=lambda m: m[:-1] + (m[-1] or (),)) | |
|
105 | ||
|
106 | ||
|
107 | 103 | def parsebundlespec(repo, spec, strict=True): |
|
108 | 104 | """Parse a bundle string specification into parts. |
|
109 | 105 | |
@@ -1140,7 +1136,7 b' def _pushb2obsmarkers(pushop, bundler):' | |||
|
1140 | 1136 | return |
|
1141 | 1137 | pushop.stepsdone.add(b'obsmarkers') |
|
1142 | 1138 | if pushop.outobsmarkers: |
|
1143 |
markers = |
|
|
1139 | markers = obsutil.sortedmarkers(pushop.outobsmarkers) | |
|
1144 | 1140 | bundle2.buildobsmarkerspart(bundler, markers) |
|
1145 | 1141 | |
|
1146 | 1142 | |
@@ -1475,7 +1471,7 b' def _pushobsolete(pushop):' | |||
|
1475 | 1471 | if pushop.outobsmarkers: |
|
1476 | 1472 | pushop.ui.debug(b'try to push obsolete markers to remote\n') |
|
1477 | 1473 | rslts = [] |
|
1478 |
markers = |
|
|
1474 | markers = obsutil.sortedmarkers(pushop.outobsmarkers) | |
|
1479 | 1475 | remotedata = obsolete._pushkeyescape(markers) |
|
1480 | 1476 | for key in sorted(remotedata, reverse=True): |
|
1481 | 1477 | # reverse sort to ensure we end with dump0 |
@@ -2573,7 +2569,7 b' def _getbundleobsmarkerpart(' | |||
|
2573 | 2569 | heads = repo.heads() |
|
2574 | 2570 | subset = [c.node() for c in repo.set(b'::%ln', heads)] |
|
2575 | 2571 | markers = repo.obsstore.relevantmarkers(subset) |
|
2576 |
markers = |
|
|
2572 | markers = obsutil.sortedmarkers(markers) | |
|
2577 | 2573 | bundle2.buildobsmarkerspart(bundler, markers) |
|
2578 | 2574 | |
|
2579 | 2575 |
@@ -1568,7 +1568,7 b' class localrepository(object):' | |||
|
1568 | 1568 | else: |
|
1569 | 1569 | raise error.ProgrammingError( |
|
1570 | 1570 | b"unsupported changeid '%s' of type %s" |
|
1571 | % (changeid, type(changeid)) | |
|
1571 | % (changeid, pycompat.sysstr(type(changeid))) | |
|
1572 | 1572 | ) |
|
1573 | 1573 | |
|
1574 | 1574 | return context.changectx(self, rev, node) |
@@ -112,6 +112,11 b' def getmarkers(repo, nodes=None, exclusi' | |||
|
112 | 112 | yield marker(repo, markerdata) |
|
113 | 113 | |
|
114 | 114 | |
|
115 | def sortedmarkers(markers): | |
|
116 | # last item of marker tuple ('parents') may be None or a tuple | |
|
117 | return sorted(markers, key=lambda m: m[:-1] + (m[-1] or (),)) | |
|
118 | ||
|
119 | ||
|
115 | 120 | def closestpredecessors(repo, nodeid): |
|
116 | 121 | """yield the list of next predecessors pointing on visible changectx nodes |
|
117 | 122 | |
@@ -675,7 +680,7 b' def successorssets(repo, initialnode, cl' | |||
|
675 | 680 | # Having none means pruned node, multiple successors means split, |
|
676 | 681 | # single successors are standard replacement. |
|
677 | 682 | # |
|
678 | for mark in sorted(succmarkers[current]): | |
|
683 | for mark in sortedmarkers(succmarkers[current]): | |
|
679 | 684 | for suc in mark[1]: |
|
680 | 685 | if suc not in cache: |
|
681 | 686 | if suc in stackedset: |
@@ -712,7 +717,7 b' def successorssets(repo, initialnode, cl' | |||
|
712 | 717 | # duplicated entry and successors set that are strict subset of |
|
713 | 718 | # another one. |
|
714 | 719 | succssets = [] |
|
715 | for mark in sorted(succmarkers[current]): | |
|
720 | for mark in sortedmarkers(succmarkers[current]): | |
|
716 | 721 | # successors sets contributed by this marker |
|
717 | 722 | base = _succs() |
|
718 | 723 | base.markers.add(mark) |
|
1 | NO CONTENT: file copied from relnotes/next to relnotes/5.2 |
@@ -1,12 +1,5 b'' | |||
|
1 | 1 | == New Features == |
|
2 | 2 | |
|
3 | * The amend extension supports the `--currentuser` argument. | |
|
4 | ||
|
5 | * The amend extension supports the `--close-branch` argument. | |
|
6 | ||
|
7 | * The amend extension supports the `--secret` argument. | |
|
8 | ||
|
9 | * The uncommit extension supports the `rewrite.update-timestamp` config option. | |
|
10 | 3 | |
|
11 | 4 | == New Experimental Features == |
|
12 | 5 | |
@@ -16,15 +9,6 b'' | |||
|
16 | 9 | |
|
17 | 10 | == Backwards Compatibility Changes == |
|
18 | 11 | |
|
19 | * A shell that supports `$(command)`` syntax for command substitution is now | |
|
20 | required for running the test suite. The test runner normally uses | |
|
21 | `sh`, so if that is a shell that doesn't support `$(command)` syntax, | |
|
22 | you can override it by setting `$HGTEST_SHELL` or by passing it to | |
|
23 | `run-tests.py --shell <shell>`. | |
|
24 | ||
|
25 | * The (experimental) narrow extension's wire protocol changed. If | |
|
26 | you're using it, you'll need to make sure to upgrade server and | |
|
27 | client at the same time. | |
|
28 | 12 | |
|
29 | 13 | == Internal API Changes == |
|
30 | 14 |
General Comments 0
You need to be logged in to leave comments.
Login now