mercurial/localrepo.py
branchstable
changeset 11485 b602a95c21ec
parent 11442 ee1ed6afac21
child 11486 d3c3e2fdeb0c
--- a/mercurial/localrepo.py	Thu Jul 01 11:20:08 2010 -0500
+++ b/mercurial/localrepo.py	Thu Jul 01 11:20:13 2010 -0500
@@ -826,8 +826,13 @@
                 removedsubs.discard(s)
                 if match(s) and wctx.sub(s).dirty():
                     subs.append(s)
-            if (subs or removedsubs) and '.hgsubstate' not in changes[0]:
-                changes[0].insert(0, '.hgsubstate')
+            if (subs or removedsubs):
+                # is hgsub modified and not included?
+                if (not match('.hgsub') and
+                    '.hgsub' in (wctx.modified() + wctx.added())):
+                    raise util.Abort("can't commit subrepos without .hgsub")
+                if '.hgsubstate' not in changes[0]:
+                    changes[0].insert(0, '.hgsubstate')
 
             # make sure all explicit patterns are matched
             if not force and match.files():