mercurial/commands.py
changeset 2460 605e26a2e96e
parent 2458 9dd93deef3c9
child 2461 ff9ee834e3b6
equal deleted inserted replaced
2459:5c5277f03887 2460:605e26a2e96e
     6 # of the GNU General Public License, incorporated herein by reference.
     6 # of the GNU General Public License, incorporated herein by reference.
     7 
     7 
     8 from demandload import demandload
     8 from demandload import demandload
     9 from node import *
     9 from node import *
    10 from i18n import gettext as _
    10 from i18n import gettext as _
    11 demandload(globals(), "os re sys signal shutil imp urllib pdb")
    11 demandload(globals(), "os re sys signal shutil imp urllib pdb stat")
    12 demandload(globals(), "fancyopts ui hg util lock revlog templater bundlerepo")
    12 demandload(globals(), "fancyopts ui hg util lock revlog templater bundlerepo")
    13 demandload(globals(), "fnmatch mdiff random signal tempfile time")
    13 demandload(globals(), "fnmatch mdiff random signal tempfile time")
    14 demandload(globals(), "traceback errno socket version struct atexit sets bz2")
    14 demandload(globals(), "traceback errno socket version struct atexit sets bz2")
    15 demandload(globals(), "archival changegroup")
    15 demandload(globals(), "archival changegroup")
    16 demandload(globals(), "hgweb.server sshserver")
    16 demandload(globals(), "hgweb.server sshserver")
   377         return
   377         return
   378 
   378 
   379     if node2:
   379     if node2:
   380         change = repo.changelog.read(node2)
   380         change = repo.changelog.read(node2)
   381         mmap2 = repo.manifest.read(change[0])
   381         mmap2 = repo.manifest.read(change[0])
   382         date2 = util.datestr(change[2])
   382         _date2 = util.datestr(change[2])
       
   383         def date2(f):
       
   384             return _date2
   383         def read(f):
   385         def read(f):
   384             return repo.file(f).read(mmap2[f])
   386             return repo.file(f).read(mmap2[f])
   385     else:
   387     else:
   386         date2 = util.datestr()
   388         _date2 = util.datestr()
       
   389         _tz = util.makedate()[1]
       
   390         def date2(f):
       
   391             try:
       
   392                 _f = repo.wopener(f)
       
   393             except IOError, err:
       
   394                 if err[0] != errno.ENOENT:
       
   395                     raise
       
   396                 return _date2
       
   397             return util.datestr((os.fstat(_f.fileno())[stat.ST_MTIME], _tz))
   387         def read(f):
   398         def read(f):
   388             return repo.wread(f)
   399             return repo.wread(f)
   389 
   400 
   390     if ui.quiet:
   401     if ui.quiet:
   391         r = None
   402         r = None
   399     for f in modified:
   410     for f in modified:
   400         to = None
   411         to = None
   401         if f in mmap:
   412         if f in mmap:
   402             to = repo.file(f).read(mmap[f])
   413             to = repo.file(f).read(mmap[f])
   403         tn = read(f)
   414         tn = read(f)
   404         fp.write(mdiff.unidiff(to, date1, tn, date2, f, r, text=text,
   415         fp.write(mdiff.unidiff(to, date1, tn, date2(f), f, r, text=text,
   405                                showfunc=showfunc, ignorews=ignorews))
   416                                showfunc=showfunc, ignorews=ignorews))
   406     for f in added:
   417     for f in added:
   407         to = None
   418         to = None
   408         tn = read(f)
   419         tn = read(f)
   409         fp.write(mdiff.unidiff(to, date1, tn, date2, f, r, text=text,
   420         fp.write(mdiff.unidiff(to, date1, tn, date2(f), f, r, text=text,
   410                                showfunc=showfunc, ignorews=ignorews))
   421                                showfunc=showfunc, ignorews=ignorews))
   411     for f in removed:
   422     for f in removed:
   412         to = repo.file(f).read(mmap[f])
   423         to = repo.file(f).read(mmap[f])
   413         tn = None
   424         tn = None
   414         fp.write(mdiff.unidiff(to, date1, tn, date2, f, r, text=text,
   425         fp.write(mdiff.unidiff(to, date1, tn, date2(f), f, r, text=text,
   415                                showfunc=showfunc, ignorews=ignorews))
   426                                showfunc=showfunc, ignorews=ignorews))
   416 
   427 
   417 def trimuser(ui, name, rev, revcache):
   428 def trimuser(ui, name, rev, revcache):
   418     """trim the name of the user who committed a change"""
   429     """trim the name of the user who committed a change"""
   419     user = revcache.get(rev)
   430     user = revcache.get(rev)