##// END OF EJS Templates
sparse: move post commit actions into core...
Gregory Szorc -
r33353:160efb55 default
parent child Browse files
Show More
@@ -79,7 +79,6 from mercurial.node import nullid
79 from mercurial import (
79 from mercurial import (
80 cmdutil,
80 cmdutil,
81 commands,
81 commands,
82 context,
83 dirstate,
82 dirstate,
84 error,
83 error,
85 extensions,
84 extensions,
@@ -100,9 +99,6 testedwith = 'ships-with-hg-core'
100 cmdtable = {}
99 cmdtable = {}
101 command = registrar.command(cmdtable)
100 command = registrar.command(cmdtable)
102
101
103 def uisetup(ui):
104 _setupcommit(ui)
105
106 def extsetup(ui):
102 def extsetup(ui):
107 sparse.enabled = True
103 sparse.enabled = True
108
104
@@ -134,27 +130,6 def replacefilecache(cls, propname, repl
134 raise AttributeError(_("type '%s' has no property '%s'") % (origcls,
130 raise AttributeError(_("type '%s' has no property '%s'") % (origcls,
135 propname))
131 propname))
136
132
137 def _setupcommit(ui):
138 def _refreshoncommit(orig, self, node):
139 """Refresh the checkout when commits touch .hgsparse
140 """
141 orig(self, node)
142 repo = self._repo
143
144 ctx = repo[node]
145 profiles = sparse.patternsforrev(repo, ctx.rev())[2]
146
147 # profiles will only have data if sparse is enabled.
148 if set(profiles) & set(ctx.files()):
149 origstatus = repo.status()
150 origsparsematch = sparse.matcher(repo)
151 sparse.refreshwdir(repo, origstatus, origsparsematch, force=True)
152
153 sparse.prunetemporaryincludes(repo)
154
155 extensions.wrapfunction(context.committablectx, 'markcommitted',
156 _refreshoncommit)
157
158 def _setuplog(ui):
133 def _setuplog(ui):
159 entry = commands.table['^log|history']
134 entry = commands.table['^log|history']
160 entry[1].append(('', 'sparse', None,
135 entry[1].append(('', 'sparse', None,
@@ -38,6 +38,7 from . import (
38 repoview,
38 repoview,
39 revlog,
39 revlog,
40 scmutil,
40 scmutil,
41 sparse,
41 subrepo,
42 subrepo,
42 util,
43 util,
43 )
44 )
@@ -1803,6 +1804,11 class workingctx(committablectx):
1803 match.bad = bad
1804 match.bad = bad
1804 return match
1805 return match
1805
1806
1807 def markcommitted(self, node):
1808 super(workingctx, self).markcommitted(node)
1809
1810 sparse.aftercommit(self._repo, node)
1811
1806 class committablefilectx(basefilectx):
1812 class committablefilectx(basefilectx):
1807 """A committablefilectx provides common functionality for a file context
1813 """A committablefilectx provides common functionality for a file context
1808 that wants the ability to commit, e.g. workingfilectx or memfilectx."""
1814 that wants the ability to commit, e.g. workingfilectx or memfilectx."""
@@ -478,3 +478,19 def refreshwdir(repo, origstatus, origsp
478 dirstate.normallookup(file)
478 dirstate.normallookup(file)
479
479
480 return added, dropped, lookup
480 return added, dropped, lookup
481
482 def aftercommit(repo, node):
483 """Perform actions after a working directory commit."""
484 # This function is called unconditionally, even if sparse isn't
485 # enabled.
486 ctx = repo[node]
487
488 profiles = patternsforrev(repo, ctx.rev())[2]
489
490 # profiles will only have data if sparse is enabled.
491 if set(profiles) & set(ctx.files()):
492 origstatus = repo.status()
493 origsparsematch = matcher(repo)
494 refreshwdir(repo, origstatus, origsparsematch, force=True)
495
496 prunetemporaryincludes(repo)
General Comments 0
You need to be logged in to leave comments. Login now