mercurial/localrepo.py
branchstable
changeset 10522 b07d487009b2
parent 10519 f75db9927429
child 10547 bae9bb09166b
equal deleted inserted replaced
10521:bde1bb250fc2 10522:b07d487009b2
   785             if force:
   785             if force:
   786                 changes[0].extend(changes[6]) # mq may commit unchanged files
   786                 changes[0].extend(changes[6]) # mq may commit unchanged files
   787 
   787 
   788             # check subrepos
   788             # check subrepos
   789             subs = []
   789             subs = []
       
   790             removedsubs = set()
       
   791             for p in wctx.parents():
       
   792                 removedsubs.update(s for s in p.substate if match(s))
   790             for s in wctx.substate:
   793             for s in wctx.substate:
       
   794                 removedsubs.discard(s)
   791                 if match(s) and wctx.sub(s).dirty():
   795                 if match(s) and wctx.sub(s).dirty():
   792                     subs.append(s)
   796                     subs.append(s)
   793             if subs and '.hgsubstate' not in changes[0]:
   797             if (subs or removedsubs) and '.hgsubstate' not in changes[0]:
   794                 changes[0].insert(0, '.hgsubstate')
   798                 changes[0].insert(0, '.hgsubstate')
   795 
   799 
   796             # make sure all explicit patterns are matched
   800             # make sure all explicit patterns are matched
   797             if not force and match.files():
   801             if not force and match.files():
   798                 matched = set(changes[0] + changes[1] + changes[2])
   802                 matched = set(changes[0] + changes[1] + changes[2])
   828             if editor:
   832             if editor:
   829                 cctx._text = editor(self, cctx, subs)
   833                 cctx._text = editor(self, cctx, subs)
   830             edited = (text != cctx._text)
   834             edited = (text != cctx._text)
   831 
   835 
   832             # commit subs
   836             # commit subs
   833             if subs:
   837             if subs or removedsubs:
   834                 state = wctx.substate.copy()
   838                 state = wctx.substate.copy()
   835                 for s in subs:
   839                 for s in subs:
   836                     self.ui.status(_('committing subrepository %s\n') % s)
   840                     self.ui.status(_('committing subrepository %s\n') % s)
   837                     sr = wctx.sub(s).commit(cctx._text, user, date)
   841                     sr = wctx.sub(s).commit(cctx._text, user, date)
   838                     state[s] = (state[s][0], sr)
   842                     state[s] = (state[s][0], sr)