comparison mercurial/cmdutil.py @ 37150:335e19c6b7fa

remove: add dry-run functionality
author Sushil khanchi <sushilkhanchi97@gmail.com>
date Wed, 21 Mar 2018 23:36:11 +0530
parents be3f33f5e232
children 6ff8bd691fb8
comparison
equal deleted inserted replaced
37149:cc0a6ea95d98 37150:335e19c6b7fa
2081 ui.status(_("skipping missing subrepository: %s\n") 2081 ui.status(_("skipping missing subrepository: %s\n")
2082 % m.abs(subpath)) 2082 % m.abs(subpath))
2083 2083
2084 return ret 2084 return ret
2085 2085
2086 def remove(ui, repo, m, prefix, after, force, subrepos, warnings=None): 2086 def remove(ui, repo, m, prefix, after, force, subrepos, dryrun, warnings=None):
2087 join = lambda f: os.path.join(prefix, f) 2087 join = lambda f: os.path.join(prefix, f)
2088 ret = 0 2088 ret = 0
2089 s = repo.status(match=m, clean=True) 2089 s = repo.status(match=m, clean=True)
2090 modified, added, deleted, clean = s[0], s[1], s[3], s[6] 2090 modified, added, deleted, clean = s[0], s[1], s[3], s[6]
2091 2091
2106 if subrepos or m.exact(subpath) or any(submatch.files()): 2106 if subrepos or m.exact(subpath) or any(submatch.files()):
2107 ui.progress(_('searching'), count, total=total, unit=_('subrepos')) 2107 ui.progress(_('searching'), count, total=total, unit=_('subrepos'))
2108 sub = wctx.sub(subpath) 2108 sub = wctx.sub(subpath)
2109 try: 2109 try:
2110 if sub.removefiles(submatch, prefix, after, force, subrepos, 2110 if sub.removefiles(submatch, prefix, after, force, subrepos,
2111 warnings): 2111 dryrun, warnings):
2112 ret = 1 2112 ret = 1
2113 except error.LookupError: 2113 except error.LookupError:
2114 warnings.append(_("skipping missing subrepository: %s\n") 2114 warnings.append(_("skipping missing subrepository: %s\n")
2115 % join(subpath)) 2115 % join(subpath))
2116 ui.progress(_('searching'), None) 2116 ui.progress(_('searching'), None)
2186 if ui.verbose or not m.exact(f): 2186 if ui.verbose or not m.exact(f):
2187 ui.progress(_('deleting'), count, total=total, unit=_('files')) 2187 ui.progress(_('deleting'), count, total=total, unit=_('files'))
2188 ui.status(_('removing %s\n') % m.rel(f)) 2188 ui.status(_('removing %s\n') % m.rel(f))
2189 ui.progress(_('deleting'), None) 2189 ui.progress(_('deleting'), None)
2190 2190
2191 with repo.wlock(): 2191 if not dryrun:
2192 if not after: 2192 with repo.wlock():
2193 for f in list: 2193 if not after:
2194 if f in added: 2194 for f in list:
2195 continue # we never unlink added files on remove 2195 if f in added:
2196 repo.wvfs.unlinkpath(f, ignoremissing=True) 2196 continue # we never unlink added files on remove
2197 repo[None].forget(list) 2197 repo.wvfs.unlinkpath(f, ignoremissing=True)
2198 repo[None].forget(list)
2198 2199
2199 if warn: 2200 if warn:
2200 for warning in warnings: 2201 for warning in warnings:
2201 ui.warn(warning) 2202 ui.warn(warning)
2202 2203