mercurial/cmdutil.py
changeset 36945 45bfcd16f27e
parent 36742 390d16ea7c76
child 36984 c479692690ef
equal deleted inserted replaced
36944:8fd9b56e8d7c 36945:45bfcd16f27e
  1994     for r in repo.revs('filelog("path:.hgsub")'):
  1994     for r in repo.revs('filelog("path:.hgsub")'):
  1995         ctx = repo[r]
  1995         ctx = repo[r]
  1996         for subpath in ctx.substate:
  1996         for subpath in ctx.substate:
  1997             ctx.sub(subpath).addwebdirpath(serverpath, webconf)
  1997             ctx.sub(subpath).addwebdirpath(serverpath, webconf)
  1998 
  1998 
  1999 def forget(ui, repo, match, prefix, explicitonly):
  1999 def forget(ui, repo, match, prefix, explicitonly, dryrun):
  2000     join = lambda f: os.path.join(prefix, f)
  2000     join = lambda f: os.path.join(prefix, f)
  2001     bad = []
  2001     bad = []
  2002     badfn = lambda x, y: bad.append(x) or match.bad(x, y)
  2002     badfn = lambda x, y: bad.append(x) or match.bad(x, y)
  2003     wctx = repo[None]
  2003     wctx = repo[None]
  2004     forgot = []
  2004     forgot = []
  2010 
  2010 
  2011     for subpath in sorted(wctx.substate):
  2011     for subpath in sorted(wctx.substate):
  2012         sub = wctx.sub(subpath)
  2012         sub = wctx.sub(subpath)
  2013         try:
  2013         try:
  2014             submatch = matchmod.subdirmatcher(subpath, match)
  2014             submatch = matchmod.subdirmatcher(subpath, match)
  2015             subbad, subforgot = sub.forget(submatch, prefix)
  2015             subbad, subforgot = sub.forget(submatch, prefix, dryrun=dryrun)
  2016             bad.extend([subpath + '/' + f for f in subbad])
  2016             bad.extend([subpath + '/' + f for f in subbad])
  2017             forgot.extend([subpath + '/' + f for f in subforgot])
  2017             forgot.extend([subpath + '/' + f for f in subforgot])
  2018         except error.LookupError:
  2018         except error.LookupError:
  2019             ui.status(_("skipping missing subrepository: %s\n")
  2019             ui.status(_("skipping missing subrepository: %s\n")
  2020                            % join(subpath))
  2020                            % join(subpath))
  2037 
  2037 
  2038     for f in forget:
  2038     for f in forget:
  2039         if ui.verbose or not match.exact(f):
  2039         if ui.verbose or not match.exact(f):
  2040             ui.status(_('removing %s\n') % match.rel(f))
  2040             ui.status(_('removing %s\n') % match.rel(f))
  2041 
  2041 
  2042     rejected = wctx.forget(forget, prefix)
  2042     if not dryrun:
  2043     bad.extend(f for f in rejected if f in match.files())
  2043         rejected = wctx.forget(forget, prefix)
  2044     forgot.extend(f for f in forget if f not in rejected)
  2044         bad.extend(f for f in rejected if f in match.files())
       
  2045         forgot.extend(f for f in forget if f not in rejected)
  2045     return bad, forgot
  2046     return bad, forgot
  2046 
  2047 
  2047 def files(ui, ctx, m, fm, fmt, subrepos):
  2048 def files(ui, ctx, m, fm, fmt, subrepos):
  2048     rev = ctx.rev()
  2049     rev = ctx.rev()
  2049     ret = 1
  2050     ret = 1