mercurial/cmdutil.py
changeset 5606 447ea621e50e
parent 5605 e7a9ad999308
child 5607 e9bae5c80ab4
equal deleted inserted replaced
5605:e7a9ad999308 5606:447ea621e50e
   290     # called with the repo lock held
   290     # called with the repo lock held
   291     #
   291     #
   292     # hgsep => pathname that uses "/" to separate directories
   292     # hgsep => pathname that uses "/" to separate directories
   293     # ossep => pathname that uses os.sep to separate directories
   293     # ossep => pathname that uses os.sep to separate directories
   294     cwd = repo.getcwd()
   294     cwd = repo.getcwd()
   295     errors = 0
       
   296     copied = []
   295     copied = []
   297     targets = {}
   296     targets = {}
   298 
   297 
   299     def walkpat(pat):
   298     def walkpat(pat):
   300         srcs = []
   299         srcs = []
   356                 if inst.errno == errno.ENOENT:
   355                 if inst.errno == errno.ENOENT:
   357                     ui.warn(_('%s: deleted in working copy\n') % relsrc)
   356                     ui.warn(_('%s: deleted in working copy\n') % relsrc)
   358                 else:
   357                 else:
   359                     ui.warn(_('%s: cannot copy - %s\n') %
   358                     ui.warn(_('%s: cannot copy - %s\n') %
   360                             (relsrc, inst.strerror))
   359                             (relsrc, inst.strerror))
   361                     errors += 1
   360                     return True # report a failure
   362                     return
       
   363         if ui.verbose or not exact:
   361         if ui.verbose or not exact:
   364             ui.status(_('copying %s to %s\n') % (relsrc, reltarget))
   362             ui.status(_('copying %s to %s\n') % (relsrc, reltarget))
   365         targets[abstarget] = abssrc
   363         targets[abstarget] = abssrc
   366         origsrc = repo.dirstate.copied(abssrc) or abssrc
   364         origsrc = repo.dirstate.copied(abssrc) or abssrc
   367         if abstarget == origsrc: # copying back a copy?
   365         if abstarget == origsrc: # copying back a copy?
   471             continue
   469             continue
   472         copylist.append((tfn(pat, dest, srcs), srcs))
   470         copylist.append((tfn(pat, dest, srcs), srcs))
   473     if not copylist:
   471     if not copylist:
   474         raise util.Abort(_('no files to copy'))
   472         raise util.Abort(_('no files to copy'))
   475 
   473 
       
   474     errors = 0
   476     for targetpath, srcs in copylist:
   475     for targetpath, srcs in copylist:
   477         for abssrc, relsrc, exact in srcs:
   476         for abssrc, relsrc, exact in srcs:
   478             copyfile(abssrc, relsrc, targetpath(abssrc), exact)
   477             if copyfile(abssrc, relsrc, targetpath(abssrc), exact):
       
   478                 errors += 1
   479 
   479 
   480     if errors:
   480     if errors:
   481         ui.warn(_('(consider using --after)\n'))
   481         ui.warn(_('(consider using --after)\n'))
   482     return errors, copied
   482     return errors, copied
   483 
   483