334 r = scmutil.status(r.modified, r.removed, r.added, [], [], [], |
334 r = scmutil.status(r.modified, r.removed, r.added, [], [], [], |
335 r.clean) |
335 r.clean) |
336 |
336 |
337 if listsubrepos: |
337 if listsubrepos: |
338 for subpath, sub in scmutil.itersubrepos(ctx1, ctx2): |
338 for subpath, sub in scmutil.itersubrepos(ctx1, ctx2): |
339 rev2 = ctx2.subrev(subpath) |
|
340 try: |
339 try: |
341 submatch = matchmod.narrowmatcher(subpath, match) |
340 rev2 = ctx2.subrev(subpath) |
342 s = sub.status(rev2, match=submatch, ignored=listignored, |
341 except KeyError: |
343 clean=listclean, unknown=listunknown, |
342 # A subrepo that existed in node1 was deleted between |
344 listsubrepos=True) |
343 # node1 and node2 (inclusive). Thus, ctx2's substate |
345 for rfiles, sfiles in zip(r, s): |
344 # won't contain that subpath. The best we can do ignore it. |
346 rfiles.extend("%s/%s" % (subpath, f) for f in sfiles) |
345 rev2 = None |
347 except error.LookupError: |
346 submatch = matchmod.narrowmatcher(subpath, match) |
348 self._repo.ui.status(_("skipping missing " |
347 s = sub.status(rev2, match=submatch, ignored=listignored, |
349 "subrepository: %s\n") % subpath) |
348 clean=listclean, unknown=listunknown, |
|
349 listsubrepos=True) |
|
350 for rfiles, sfiles in zip(r, s): |
|
351 rfiles.extend("%s/%s" % (subpath, f) for f in sfiles) |
350 |
352 |
351 for l in r: |
353 for l in r: |
352 l.sort() |
354 l.sort() |
353 |
355 |
354 return r |
356 return r |