comparison mercurial/commands.py @ 2460:605e26a2e96e

report correct mtime in the hg diff output
author andrea@suse.de
date Tue, 20 Jun 2006 15:37:41 +0200
parents 9dd93deef3c9
children ff9ee834e3b6
comparison
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)