hgext/keyword.py
changeset 16686 67964cda8701
parent 15871 07893690c435
child 16741 77c9a78e31dd
equal deleted inserted replaced
16685:43d55088415a 16686:67964cda8701
   236         return data
   236         return data
   237 
   237 
   238     def iskwfile(self, cand, ctx):
   238     def iskwfile(self, cand, ctx):
   239         '''Returns subset of candidates which are configured for keyword
   239         '''Returns subset of candidates which are configured for keyword
   240         expansion but are not symbolic links.'''
   240         expansion but are not symbolic links.'''
   241         return [f for f in cand if self.match(f) and not 'l' in ctx.flags(f)]
   241         return [f for f in cand if self.match(f) and 'l' not in ctx.flags(f)]
   242 
   242 
   243     def overwrite(self, ctx, candidates, lookup, expand, rekw=False):
   243     def overwrite(self, ctx, candidates, lookup, expand, rekw=False):
   244         '''Overwrites selected files expanding/shrinking keywords.'''
   244         '''Overwrites selected files expanding/shrinking keywords.'''
   245         if self.restrict or lookup or self.record: # exclude kw_copy
   245         if self.restrict or lookup or self.record: # exclude kw_copy
   246             candidates = self.iskwfile(candidates, ctx)
   246             candidates = self.iskwfile(candidates, ctx)
   649                 source = scmutil.canonpath(repo.root, cwd,
   649                 source = scmutil.canonpath(repo.root, cwd,
   650                                            os.path.realpath(source))
   650                                            os.path.realpath(source))
   651             return kwt.match(source)
   651             return kwt.match(source)
   652 
   652 
   653         candidates = [f for f in repo.dirstate.copies() if
   653         candidates = [f for f in repo.dirstate.copies() if
   654                       not 'l' in wctx.flags(f) and haskwsource(f)]
   654                       'l' not in wctx.flags(f) and haskwsource(f)]
   655         kwt.overwrite(wctx, candidates, False, False)
   655         kwt.overwrite(wctx, candidates, False, False)
   656 
   656 
   657     def kw_dorecord(orig, ui, repo, commitfunc, *pats, **opts):
   657     def kw_dorecord(orig, ui, repo, commitfunc, *pats, **opts):
   658         '''Wraps record.dorecord expanding keywords after recording.'''
   658         '''Wraps record.dorecord expanding keywords after recording.'''
   659         wlock = repo.wlock()
   659         wlock = repo.wlock()
   678     def kwfilectx_cmp(orig, self, fctx):
   678     def kwfilectx_cmp(orig, self, fctx):
   679         # keyword affects data size, comparing wdir and filelog size does
   679         # keyword affects data size, comparing wdir and filelog size does
   680         # not make sense
   680         # not make sense
   681         if (fctx._filerev is None and
   681         if (fctx._filerev is None and
   682             (self._repo._encodefilterpats or
   682             (self._repo._encodefilterpats or
   683              kwt.match(fctx.path()) and not 'l' in fctx.flags() or
   683              kwt.match(fctx.path()) and 'l' not in fctx.flags() or
   684              self.size() - 4 == fctx.size()) or
   684              self.size() - 4 == fctx.size()) or
   685             self.size() == fctx.size()):
   685             self.size() == fctx.size()):
   686             return self._filelog.cmp(self._filenode, fctx.data())
   686             return self._filelog.cmp(self._filenode, fctx.data())
   687         return True
   687         return True
   688 
   688