comparison mercurial/cmdutil.py @ 36939:45bfcd16f27e

forget: add --dry-run mode
author Sushil khanchi <sushilkhanchi97@gmail.com>
date Sat, 10 Mar 2018 12:33:19 +0530
parents 390d16ea7c76
children c479692690ef
comparison
equal deleted inserted replaced
36938:8fd9b56e8d7c 36939: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