diff mercurial/context.py @ 33364:bf2daeddd42b

subrepo: consider the parent repo dirty when a file is missing This simply passes the 'missing' argument down from the context of the parent repo, so the same rules apply. subrepo.bailifchanged() is hardcoded to care about missing files, because cmdutil.bailifchanged() is too. In the end, it looks like this addresses inconsistencies with 'archive', 'identify', blackbox logs, 'merge', and 'update --check'. I wasn't sure how to implement this in git, so that's left for someone more familiar with it.
author Matt Harbison <matt_harbison@yahoo.com>
date Sun, 09 Jul 2017 02:55:46 -0400
parents 160efb559f67
children 0407a51b9d8c
line wrap: on
line diff
--- a/mercurial/context.py	Sun Jul 09 02:46:03 2017 -0400
+++ b/mercurial/context.py	Sun Jul 09 02:55:46 2017 -0400
@@ -1509,7 +1509,7 @@
         "check whether a working directory is modified"
         # check subrepos first
         for s in sorted(self.substate):
-            if self.sub(s).dirty():
+            if self.sub(s).dirty(missing=missing):
                 return True
         # check current working dir
         return ((merge and self.p2()) or