mercurial/context.py
changeset 21482 869a28d016e9
parent 21481 2f1567ef70ba
child 21586 8a2637cf1130
equal deleted inserted replaced
21481:2f1567ef70ba 21482:869a28d016e9
  1349             s = super(workingctx, self)._buildstatus(other, s, match,
  1349             s = super(workingctx, self)._buildstatus(other, s, match,
  1350                                                      listignored, listclean,
  1350                                                      listignored, listclean,
  1351                                                      listunknown)
  1351                                                      listunknown)
  1352         return s
  1352         return s
  1353 
  1353 
       
  1354     def _matchstatus(self, other, s, match, listignored, listclean,
       
  1355                      listunknown):
       
  1356         """override the match method with a filter for directory patterns
       
  1357 
       
  1358         We use inheritance to customize the match.bad method only in cases of
       
  1359         workingctx since it belongs only to the working directory when
       
  1360         comparing against the parent changeset.
       
  1361 
       
  1362         If we aren't comparing against the working directory's parent, then we
       
  1363         just use the default match object sent to us.
       
  1364         """
       
  1365         superself = super(workingctx, self)
       
  1366         match = superself._matchstatus(other, s, match, listignored, listclean,
       
  1367                                        listunknown)
       
  1368         if other != self._repo['.']:
       
  1369             def bad(f, msg):
       
  1370                 # 'f' may be a directory pattern from 'match.files()',
       
  1371                 # so 'f not in ctx1' is not enough
       
  1372                 if f not in other and f not in other.dirs():
       
  1373                     self._repo.ui.warn('%s: %s\n' %
       
  1374                                        (self._repo.dirstate.pathto(f), msg))
       
  1375             match.bad = bad
       
  1376         return match
       
  1377 
  1354     def status(self, ignored=False, clean=False, unknown=False, match=None):
  1378     def status(self, ignored=False, clean=False, unknown=False, match=None):
  1355         """Explicit status query
  1379         """Explicit status query
  1356         Unless this method is used to query the working copy status, the
  1380         Unless this method is used to query the working copy status, the
  1357         _status property will implicitly read the status using its default
  1381         _status property will implicitly read the status using its default
  1358         arguments."""
  1382         arguments."""