mercurial/localrepo.py
changeset 12166 441a74b8def1
parent 12162 af8c4929931c
child 12174 7bccd04292a2
equal deleted inserted replaced
12165:b7fbf24c8a93 12166:441a74b8def1
  1050         function
  1050         function
  1051         '''
  1051         '''
  1052         return self[node].walk(match)
  1052         return self[node].walk(match)
  1053 
  1053 
  1054     def status(self, node1='.', node2=None, match=None,
  1054     def status(self, node1='.', node2=None, match=None,
  1055                ignored=False, clean=False, unknown=False):
  1055                ignored=False, clean=False, unknown=False,
       
  1056                listsubrepos=False):
  1056         """return status of files between two nodes or node and working directory
  1057         """return status of files between two nodes or node and working directory
  1057 
  1058 
  1058         If node1 is None, use the first dirstate parent instead.
  1059         If node1 is None, use the first dirstate parent instead.
  1059         If node2 is None, compare node1 with working directory.
  1060         If node2 is None, compare node1 with working directory.
  1060         """
  1061         """
  1156                 else:
  1157                 else:
  1157                     added.append(fn)
  1158                     added.append(fn)
  1158             removed = mf1.keys()
  1159             removed = mf1.keys()
  1159 
  1160 
  1160         r = modified, added, removed, deleted, unknown, ignored, clean
  1161         r = modified, added, removed, deleted, unknown, ignored, clean
       
  1162 
       
  1163         if listsubrepos:
       
  1164             for subpath in ctx1.substate:
       
  1165                 sub = ctx1.sub(subpath)
       
  1166                 if working:
       
  1167                     rev2 = None
       
  1168                 else:
       
  1169                     rev2 = ctx2.substate[subpath][1]
       
  1170                 try:
       
  1171                     submatch = matchmod.narrowmatcher(subpath, match)
       
  1172                     s = sub.status(rev2, match=submatch, ignored=listignored,
       
  1173                                    clean=listclean, unknown=listunknown,
       
  1174                                    listsubrepos=True)
       
  1175                     for rfiles, sfiles in zip(r, s):
       
  1176                         rfiles.extend("%s/%s" % (subpath, f) for f in sfiles)
       
  1177                 except error.LookupError:
       
  1178                     self.ui.status(_("skipping missing subrepository: %s\n")
       
  1179                                    % subpath)
       
  1180 
  1161         [l.sort() for l in r]
  1181         [l.sort() for l in r]
  1162         return r
  1182         return r
  1163 
  1183 
  1164     def heads(self, start=None):
  1184     def heads(self, start=None):
  1165         heads = self.changelog.heads(start)
  1185         heads = self.changelog.heads(start)