hgext/largefiles/overrides.py
branchstable
changeset 17576 e0081bb5450e
parent 17575 98d6a10bc401
child 17577 0f39e9355d3c
equal deleted inserted replaced
17575:98d6a10bc401 17576:e0081bb5450e
   139 
   139 
   140     def warn(files, reason):
   140     def warn(files, reason):
   141         for f in files:
   141         for f in files:
   142             ui.warn(_('not removing %s: %s (use forget to undo)\n')
   142             ui.warn(_('not removing %s: %s (use forget to undo)\n')
   143                     % (m.rel(f), reason))
   143                     % (m.rel(f), reason))
       
   144         return int(len(files) > 0)
       
   145 
       
   146     result = 0
   144 
   147 
   145     if after:
   148     if after:
   146         remove, forget = deleted, []
   149         remove, forget = deleted, []
   147         warn(modified + added + clean, _('file still exists'))
   150         result = warn(modified + added + clean, _('file still exists'))
   148     else:
   151     else:
   149         remove, forget = deleted + clean, []
   152         remove, forget = deleted + clean, []
   150         warn(modified, _('file is modified'))
   153         result = warn(modified, _('file is modified'))
   151         warn(added, _('file has been marked for add'))
   154         result = warn(added, _('file has been marked for add')) or result
   152 
   155 
   153     for f in sorted(remove + forget):
   156     for f in sorted(remove + forget):
   154         if ui.verbose or not m.exact(f):
   157         if ui.verbose or not m.exact(f):
   155             ui.status(_('removing %s\n') % m.rel(f))
   158             ui.status(_('removing %s\n') % m.rel(f))
   156 
   159 
   179         else:
   182         else:
   180             lfutil.reporemove(repo, remove, unlink=False)
   183             lfutil.reporemove(repo, remove, unlink=False)
   181     finally:
   184     finally:
   182         wlock.release()
   185         wlock.release()
   183 
   186 
       
   187     return result
       
   188 
   184 # For overriding mercurial.hgweb.webcommands so that largefiles will
   189 # For overriding mercurial.hgweb.webcommands so that largefiles will
   185 # appear at their right place in the manifests.
   190 # appear at their right place in the manifests.
   186 def decodepath(orig, path):
   191 def decodepath(orig, path):
   187     return lfutil.splitstandin(path) or path
   192     return lfutil.splitstandin(path) or path
   188 
   193 
   205 
   210 
   206     return (result == 1 or bad) and 1 or 0
   211     return (result == 1 or bad) and 1 or 0
   207 
   212 
   208 def overrideremove(orig, ui, repo, *pats, **opts):
   213 def overrideremove(orig, ui, repo, *pats, **opts):
   209     installnormalfilesmatchfn(repo[None].manifest())
   214     installnormalfilesmatchfn(repo[None].manifest())
   210     orig(ui, repo, *pats, **opts)
   215     result = orig(ui, repo, *pats, **opts)
   211     restorematchfn()
   216     restorematchfn()
   212     removelargefiles(ui, repo, *pats, **opts)
   217     return removelargefiles(ui, repo, *pats, **opts) or result
   213 
   218 
   214 def overridestatusfn(orig, repo, rev2, **opts):
   219 def overridestatusfn(orig, repo, rev2, **opts):
   215     try:
   220     try:
   216         repo._repo.lfstatus = True
   221         repo._repo.lfstatus = True
   217         return orig(repo, rev2, **opts)
   222         return orig(repo, rev2, **opts)