Show More
@@ -155,7 +155,8 b' def _clonesparsecmd(orig, ui, repo, *arg' | |||||
155 | if include or exclude or enableprofile: |
|
155 | if include or exclude or enableprofile: | |
156 | def clonesparse(orig, self, node, overwrite, *args, **kwargs): |
|
156 | def clonesparse(orig, self, node, overwrite, *args, **kwargs): | |
157 | sparse.updateconfig(self.unfiltered(), pat, {}, include=include, |
|
157 | sparse.updateconfig(self.unfiltered(), pat, {}, include=include, | |
158 |
exclude=exclude, enableprofile=enableprofile |
|
158 | exclude=exclude, enableprofile=enableprofile, | |
|
159 | usereporootpaths=True) | |||
159 | return orig(self, node, overwrite, *args, **kwargs) |
|
160 | return orig(self, node, overwrite, *args, **kwargs) | |
160 | extensions.wrapfunction(hg, 'updaterepo', clonesparse) |
|
161 | extensions.wrapfunction(hg, 'updaterepo', clonesparse) | |
161 | return orig(ui, repo, *args, **opts) |
|
162 | return orig(ui, repo, *args, **opts) |
@@ -17,6 +17,7 b' from . import (' | |||||
17 | error, |
|
17 | error, | |
18 | match as matchmod, |
|
18 | match as matchmod, | |
19 | merge as mergemod, |
|
19 | merge as mergemod, | |
|
20 | pathutil, | |||
20 | pycompat, |
|
21 | pycompat, | |
21 | scmutil, |
|
22 | scmutil, | |
22 | util, |
|
23 | util, | |
@@ -616,7 +617,7 b' def importfromfiles(repo, opts, paths, f' | |||||
616 |
|
617 | |||
617 | def updateconfig(repo, pats, opts, include=False, exclude=False, reset=False, |
|
618 | def updateconfig(repo, pats, opts, include=False, exclude=False, reset=False, | |
618 | delete=False, enableprofile=False, disableprofile=False, |
|
619 | delete=False, enableprofile=False, disableprofile=False, | |
619 | force=False): |
|
620 | force=False, usereporootpaths=False): | |
620 | """Perform a sparse config update. |
|
621 | """Perform a sparse config update. | |
621 |
|
622 | |||
622 | Only one of the actions may be performed. |
|
623 | Only one of the actions may be performed. | |
@@ -639,6 +640,20 b' def updateconfig(repo, pats, opts, inclu' | |||||
639 | if any(os.path.isabs(pat) for pat in pats): |
|
640 | if any(os.path.isabs(pat) for pat in pats): | |
640 | raise error.Abort(_('paths cannot be absolute')) |
|
641 | raise error.Abort(_('paths cannot be absolute')) | |
641 |
|
642 | |||
|
643 | if not usereporootpaths: | |||
|
644 | # let's treat paths as relative to cwd | |||
|
645 | root, cwd = repo.root, repo.getcwd() | |||
|
646 | abspats = [] | |||
|
647 | for kindpat in pats: | |||
|
648 | kind, pat = matchmod._patsplit(kindpat, None) | |||
|
649 | if kind in matchmod.cwdrelativepatternkinds or kind is None: | |||
|
650 | ap = (kind + ':' if kind else '') +\ | |||
|
651 | pathutil.canonpath(root, cwd, pat) | |||
|
652 | abspats.append(ap) | |||
|
653 | else: | |||
|
654 | abspats.append(kindpat) | |||
|
655 | pats = abspats | |||
|
656 | ||||
642 | if include: |
|
657 | if include: | |
643 | newinclude.update(pats) |
|
658 | newinclude.update(pats) | |
644 | elif exclude: |
|
659 | elif exclude: |
@@ -48,6 +48,31 b' TODO: See if this can be made to fail th' | |||||
48 | [255] |
|
48 | [255] | |
49 | #endif |
|
49 | #endif | |
50 |
|
50 | |||
|
51 | Paths should be treated as cwd-relative, not repo-root-relative | |||
|
52 | $ mkdir subdir && cd subdir | |||
|
53 | $ hg debugsparse --include path | |||
|
54 | $ hg debugsparse | |||
|
55 | [include] | |||
|
56 | $TESTTMP/myrepo/hide | |||
|
57 | hide | |||
|
58 | subdir/path (glob) | |||
|
59 | ||||
|
60 | $ cd .. | |||
|
61 | $ echo hello > subdir/file2.ext | |||
|
62 | $ cd subdir | |||
|
63 | $ hg debugsparse --include '**.ext' # let us test globs | |||
|
64 | $ hg debugsparse --include 'path:abspath' # and a path: pattern | |||
|
65 | $ cd .. | |||
|
66 | $ hg debugsparse | |||
|
67 | [include] | |||
|
68 | $TESTTMP/myrepo/hide | |||
|
69 | hide | |||
|
70 | path:abspath | |||
|
71 | subdir/**.ext | |||
|
72 | subdir/path (glob) | |||
|
73 | ||||
|
74 | $ rm -rf subdir | |||
|
75 | ||||
51 | Verify commiting while sparse includes other files |
|
76 | Verify commiting while sparse includes other files | |
52 |
|
77 | |||
53 | $ echo z > hide |
|
78 | $ echo z > hide |
General Comments 0
You need to be logged in to leave comments.
Login now