mercurial/cmdutil.py
changeset 43644 e01e0641f18a
parent 43523 c21aca51b392
child 43645 9cb7f855e2fc
equal deleted inserted replaced
43643:d0310f21ee9e 43644:e01e0641f18a
   427         overrides = {(b'ui', b'commitsubrepos'): True}
   427         overrides = {(b'ui', b'commitsubrepos'): True}
   428 
   428 
   429         with repo.ui.configoverride(overrides, b'record'):
   429         with repo.ui.configoverride(overrides, b'record'):
   430             # subrepoutil.precommit() modifies the status
   430             # subrepoutil.precommit() modifies the status
   431             tmpstatus = scmutil.status(
   431             tmpstatus = scmutil.status(
   432                 copymod.copy(status[0]),
   432                 copymod.copy(status.modified),
   433                 copymod.copy(status[1]),
   433                 copymod.copy(status.added),
   434                 copymod.copy(status[2]),
   434                 copymod.copy(status.removed),
   435                 copymod.copy(status[3]),
   435                 copymod.copy(status.deleted),
   436                 copymod.copy(status[4]),
   436                 copymod.copy(status.unknown),
   437                 copymod.copy(status[5]),
   437                 copymod.copy(status.ignored),
   438                 copymod.copy(status[6]),  # pytype: disable=wrong-arg-count
   438                 copymod.copy(status.clean),  # pytype: disable=wrong-arg-count
   439             )
   439             )
   440 
   440 
   441             # Force allows -X subrepo to skip the subrepo.
   441             # Force allows -X subrepo to skip the subrepo.
   442             subs, commitsubs, newstate = subrepoutil.precommit(
   442             subs, commitsubs, newstate = subrepoutil.precommit(
   443                 repo.ui, wctx, tmpstatus, match, force=True
   443                 repo.ui, wctx, tmpstatus, match, force=True
   989     'hint' is the usual hint given to Abort exception.
   989     'hint' is the usual hint given to Abort exception.
   990     """
   990     """
   991 
   991 
   992     if merge and repo.dirstate.p2() != nullid:
   992     if merge and repo.dirstate.p2() != nullid:
   993         raise error.Abort(_(b'outstanding uncommitted merge'), hint=hint)
   993         raise error.Abort(_(b'outstanding uncommitted merge'), hint=hint)
   994     modified, added, removed, deleted = repo.status()[:4]
   994     st = repo.status()
   995     if modified or added or removed or deleted:
   995     if st.modified or st.added or st.removed or st.deleted:
   996         raise error.Abort(_(b'uncommitted changes'), hint=hint)
   996         raise error.Abort(_(b'uncommitted changes'), hint=hint)
   997     ctx = repo[None]
   997     ctx = repo[None]
   998     for s in sorted(ctx.substate):
   998     for s in sorted(ctx.substate):
   999         ctx.sub(s).bailifchanged(hint=hint)
   999         ctx.sub(s).bailifchanged(hint=hint)
  1000 
  1000 
  2563 def remove(
  2563 def remove(
  2564     ui, repo, m, prefix, uipathfn, after, force, subrepos, dryrun, warnings=None
  2564     ui, repo, m, prefix, uipathfn, after, force, subrepos, dryrun, warnings=None
  2565 ):
  2565 ):
  2566     ret = 0
  2566     ret = 0
  2567     s = repo.status(match=m, clean=True)
  2567     s = repo.status(match=m, clean=True)
  2568     modified, added, deleted, clean = s[0], s[1], s[3], s[6]
  2568     modified, added, deleted, clean = s.modified, s.added, s.deleted, s.clean
  2569 
  2569 
  2570     wctx = repo[None]
  2570     wctx = repo[None]
  2571 
  2571 
  2572     if warnings is None:
  2572     if warnings is None:
  2573         warnings = []
  2573         warnings = []
  2874         user = opts.get(b'user') or old.user()
  2874         user = opts.get(b'user') or old.user()
  2875 
  2875 
  2876         if len(old.parents()) > 1:
  2876         if len(old.parents()) > 1:
  2877             # ctx.files() isn't reliable for merges, so fall back to the
  2877             # ctx.files() isn't reliable for merges, so fall back to the
  2878             # slower repo.status() method
  2878             # slower repo.status() method
  2879             files = {fn for st in base.status(old)[:3] for fn in st}
  2879             st = base.status(old)
       
  2880             files = set(st.modified) | set(st.added) | set(st.removed)
  2880         else:
  2881         else:
  2881             files = set(old.files())
  2882             files = set(old.files())
  2882 
  2883 
  2883         # add/remove the files to the working copy if the "addremove" option
  2884         # add/remove the files to the working copy if the "addremove" option
  2884         # was specified.
  2885         # was specified.