Show More
@@ -245,3 +245,4 b' 83ea6ce48b4fd09fb79c4e34cc5750c805699a53' | |||||
245 | f952be90b0514a576dcc8bbe758ce3847faba9bb 0 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 |
@@ -261,3 +261,4 b' 83ea6ce48b4fd09fb79c4e34cc5750c805699a53' | |||||
261 | f952be90b0514a576dcc8bbe758ce3847faba9bb 6.4.2 |
|
261 | f952be90b0514a576dcc8bbe758ce3847faba9bb 6.4.2 | |
262 | fc445f8abcf90b33db7c463816a1b3560681767f 6.4.3 |
|
262 | fc445f8abcf90b33db7c463816a1b3560681767f 6.4.3 | |
263 | da372c745e0f053bb7a64e74cccd15810d96341d 6.4.4 |
|
263 | da372c745e0f053bb7a64e74cccd15810d96341d 6.4.4 | |
|
264 | 271a4ab29605ffa0bae5d3208eaa21a95427ff92 6.4.5 |
@@ -5222,11 +5222,8 b' def paths(ui, repo, search=None, **opts)' | |||||
5222 | assert subopt not in (b'name', b'url') |
|
5222 | assert subopt not in (b'name', b'url') | |
5223 | if showsubopts: |
|
5223 | if showsubopts: | |
5224 | fm.plain(b'%s:%s = ' % (name, subopt)) |
|
5224 | fm.plain(b'%s:%s = ' % (name, subopt)) | |
5225 | if isinstance(value, bool): |
|
5225 | display = urlutil.path_suboptions_display[subopt] | |
5226 | if value: |
|
5226 | value = display(value) | |
5227 | value = b'yes' |
|
|||
5228 | else: |
|
|||
5229 | value = b'no' |
|
|||
5230 | fm.condwrite(showsubopts, subopt, b'%s\n', value) |
|
5227 | fm.condwrite(showsubopts, subopt, b'%s\n', value) | |
5231 |
|
5228 | |||
5232 | fm.end() |
|
5229 | fm.end() |
@@ -2146,7 +2146,7 b' def debuginstall(ui, **opts):' | |||||
2146 | ), |
|
2146 | ), | |
2147 | ) |
|
2147 | ) | |
2148 | re2 = b'missing' |
|
2148 | re2 = b'missing' | |
2149 | if util._re2: |
|
2149 | if util.has_re2(): | |
2150 | re2 = b'available' |
|
2150 | re2 = b'available' | |
2151 | fm.plain(_(b'checking "re2" regexp engine (%s)\n') % re2) |
|
2151 | fm.plain(_(b'checking "re2" regexp engine (%s)\n') % re2) | |
2152 | fm.data(re2=bool(util._re2)) |
|
2152 | fm.data(re2=bool(util._re2)) |
@@ -2210,10 +2210,21 b' except ImportError:' | |||||
2210 | _re2 = False |
|
2210 | _re2 = False | |
2211 |
|
2211 | |||
2212 |
|
2212 | |||
|
2213 | def has_re2(): | |||
|
2214 | """return True is re2 is available, False otherwise""" | |||
|
2215 | if _re2 is None: | |||
|
2216 | _re._checkre2() | |||
|
2217 | return _re2 | |||
|
2218 | ||||
|
2219 | ||||
2213 | class _re: |
|
2220 | class _re: | |
2214 | def _checkre2(self): |
|
2221 | @staticmethod | |
|
2222 | def _checkre2(): | |||
2215 | global _re2 |
|
2223 | global _re2 | |
2216 | global _re2_input |
|
2224 | global _re2_input | |
|
2225 | if _re2 is not None: | |||
|
2226 | # we already have the answer | |||
|
2227 | return | |||
2217 |
|
2228 | |||
2218 | check_pattern = br'\[([^\[]+)\]' |
|
2229 | check_pattern = br'\[([^\[]+)\]' | |
2219 | check_input = b'[ui]' |
|
2230 | check_input = b'[ui]' |
@@ -658,9 +658,11 b' class paths(dict):' | |||||
658 |
|
658 | |||
659 |
|
659 | |||
660 | _pathsuboptions = {} |
|
660 | _pathsuboptions = {} | |
|
661 | # a dictionnary of methods that can be used to format a sub-option value | |||
|
662 | path_suboptions_display = {} | |||
661 |
|
663 | |||
662 |
|
664 | |||
663 | def pathsuboption(option, attr): |
|
665 | def pathsuboption(option, attr, display=pycompat.bytestr): | |
664 | """Decorator used to declare a path sub-option. |
|
666 | """Decorator used to declare a path sub-option. | |
665 |
|
667 | |||
666 | Arguments are the sub-option name and the attribute it should set on |
|
668 | Arguments are the sub-option name and the attribute it should set on | |
@@ -671,17 +673,26 b' def pathsuboption(option, attr):' | |||||
671 | The function should return the value that will be set on the ``path`` |
|
673 | The function should return the value that will be set on the ``path`` | |
672 | instance. |
|
674 | instance. | |
673 |
|
675 | |||
|
676 | The optional `display` argument is a function that can be used to format | |||
|
677 | the value when displayed to the user (like in `hg paths` for example). | |||
|
678 | ||||
674 | This decorator can be used to perform additional verification of |
|
679 | This decorator can be used to perform additional verification of | |
675 | sub-options and to change the type of sub-options. |
|
680 | sub-options and to change the type of sub-options. | |
676 | """ |
|
681 | """ | |
677 |
|
682 | |||
678 | def register(func): |
|
683 | def register(func): | |
679 | _pathsuboptions[option] = (attr, func) |
|
684 | _pathsuboptions[option] = (attr, func) | |
|
685 | path_suboptions_display[option] = display | |||
680 | return func |
|
686 | return func | |
681 |
|
687 | |||
682 | return register |
|
688 | return register | |
683 |
|
689 | |||
684 |
|
690 | |||
|
691 | def display_bool(value): | |||
|
692 | """display a boolean suboption back to the user""" | |||
|
693 | return b'yes' if value else b'no' | |||
|
694 | ||||
|
695 | ||||
685 | @pathsuboption(b'pushurl', b'_pushloc') |
|
696 | @pathsuboption(b'pushurl', b'_pushloc') | |
686 | def pushurlpathoption(ui, path, value): |
|
697 | def pushurlpathoption(ui, path, value): | |
687 | u = url(value) |
|
698 | u = url(value) | |
@@ -740,9 +751,14 b' DELTA_REUSE_POLICIES = {' | |||||
740 | b'no-reuse': revlog_constants.DELTA_BASE_REUSE_NO, |
|
751 | b'no-reuse': revlog_constants.DELTA_BASE_REUSE_NO, | |
741 | b'forced': revlog_constants.DELTA_BASE_REUSE_FORCE, |
|
752 | b'forced': revlog_constants.DELTA_BASE_REUSE_FORCE, | |
742 | } |
|
753 | } | |
|
754 | DELTA_REUSE_POLICIES_NAME = dict(i[::-1] for i in DELTA_REUSE_POLICIES.items()) | |||
743 |
|
755 | |||
744 |
|
756 | |||
745 | @pathsuboption(b'pulled-delta-reuse-policy', b'delta_reuse_policy') |
|
757 | @pathsuboption( | |
|
758 | b'pulled-delta-reuse-policy', | |||
|
759 | b'delta_reuse_policy', | |||
|
760 | display=DELTA_REUSE_POLICIES_NAME.get, | |||
|
761 | ) | |||
746 | def delta_reuse_policy(ui, path, value): |
|
762 | def delta_reuse_policy(ui, path, value): | |
747 | if value not in DELTA_REUSE_POLICIES: |
|
763 | if value not in DELTA_REUSE_POLICIES: | |
748 | path_name = path.name |
|
764 | path_name = path.name | |
@@ -757,7 +773,7 b' def delta_reuse_policy(ui, path, value):' | |||||
757 | return DELTA_REUSE_POLICIES.get(value) |
|
773 | return DELTA_REUSE_POLICIES.get(value) | |
758 |
|
774 | |||
759 |
|
775 | |||
760 | @pathsuboption(b'multi-urls', b'multi_urls') |
|
776 | @pathsuboption(b'multi-urls', b'multi_urls', display=display_bool) | |
761 | def multiurls_pathoption(ui, path, value): |
|
777 | def multiurls_pathoption(ui, path, value): | |
762 | res = stringutil.parsebool(value) |
|
778 | res = stringutil.parsebool(value) | |
763 | if res is None: |
|
779 | if res is None: |
@@ -1,3 +1,9 b'' | |||||
|
1 | = Mercurial 6.4.5 = | |||
|
2 | ||||
|
3 | * re2: fix reporting of availability in `hg debuginstall` | |||
|
4 | * ui: fix crash in `hg paths` when pulled-delta-reuse-policy is in use | |||
|
5 | * path: display proper user facing value for pulled-delta-reuse-policy | |||
|
6 | ||||
1 | = Mercurial 6.4.4 = |
|
7 | = Mercurial 6.4.4 = | |
2 |
|
8 | |||
3 | * clonebundles: filter out invalid schemes instead of failing on them |
|
9 | * clonebundles: filter out invalid schemes instead of failing on them |
@@ -178,6 +178,9 b' pull with "forced" policy' | |||||
178 | ------------------------- |
|
178 | ------------------------- | |
179 |
|
179 | |||
180 | $ cp -R client client-forced |
|
180 | $ cp -R client client-forced | |
|
181 | $ hg -R client-forced paths --config paths.default:pulled-delta-reuse-policy=forced | |||
|
182 | default = $TESTTMP/server | |||
|
183 | default:pulled-delta-reuse-policy = forced | |||
181 | $ hg -R client-forced pull --config paths.default:pulled-delta-reuse-policy=forced |
|
184 | $ hg -R client-forced pull --config paths.default:pulled-delta-reuse-policy=forced | |
182 | pulling from $TESTTMP/server |
|
185 | pulling from $TESTTMP/server | |
183 | requesting all changes |
|
186 | requesting all changes |
General Comments 0
You need to be logged in to leave comments.
Login now