Mercurial > hg
changeset 12723:eaa09d25e7c6
keyword: code cleanup
- move preselection of expansion candidates for rollback
and record into helper function
- same overwrite order in rollback and record:
1. modified, 2. added
- self.wlock() inside kwrepo class instead of repo.wlock()
author | Christian Ebert <blacktrash@gmx.net> |
---|---|
date | Tue, 12 Oct 2010 12:49:23 +0100 |
parents | 22f45e53bb21 |
children | 66e7ba85585b |
files | hgext/keyword.py |
diffstat | 1 files changed, 14 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/keyword.py Sat Oct 02 22:59:29 2010 +0900 +++ b/hgext/keyword.py Tue Oct 12 12:49:23 2010 +0100 @@ -141,6 +141,15 @@ Depending on subfunc also returns number of substitutions.''' return subfunc(r'$\1$', text) +def _preselect(wstatus, changed): + '''Retrieves modfied and added files from a working directory state + and returns the subset of each contained in given changed files + retrieved from a change context.''' + modified, added = wstatus[:2] + modified = [f for f in modified if f in changed] + added = [f for f in added if f in changed] + return modified, added + class kwtemplater(object): ''' @@ -509,18 +518,16 @@ return n def rollback(self, dryrun=False): - wlock = repo.wlock() + wlock = self.wlock() try: if not dryrun: changed = self['.'].files() ret = super(kwrepo, self).rollback(dryrun) if not dryrun: ctx = self['.'] - modified, added = self[None].status()[:2] - modified = [f for f in modified if f in changed] - added = [f for f in added if f in changed] + modified, added = _preselect(self[None].status(), changed) + kwt.overwrite(ctx, modified, True, True) kwt.overwrite(ctx, added, True, False) - kwt.overwrite(ctx, modified, True, True) return ret finally: wlock.release() @@ -569,13 +576,11 @@ # therefore compare nodes before and after kwt.record = True ctx = repo['.'] - modified, added = repo[None].status()[:2] + wstatus = repo[None].status() ret = orig(ui, repo, commitfunc, *pats, **opts) recctx = repo['.'] if ctx != recctx: - changed = recctx.files() - modified = [f for f in modified if f in changed] - added = [f for f in added if f in changed] + modified, added = _preselect(wstatus, recctx.files()) kwt.restrict = False kwt.overwrite(recctx, modified, False, True) kwt.overwrite(recctx, added, False, True, True)