comparison mercurial/commands.py @ 1318:3f4f76012bc9

Unify display of dates. We now use one function, commands.datestr, to display dates, instead of calling time.asctime in inconsistent ways.
author Bryan O'Sullivan <bos@serpentine.com>
date Thu, 22 Sep 2005 21:29:02 -0700
parents 008d3666bf41
children 5a15df632e6a
comparison
equal deleted inserted replaced
1317:008d3666bf41 1318:3f4f76012bc9
27 def relpath(repo, args): 27 def relpath(repo, args):
28 cwd = repo.getcwd() 28 cwd = repo.getcwd()
29 if cwd: 29 if cwd:
30 return [util.normpath(os.path.join(cwd, x)) for x in args] 30 return [util.normpath(os.path.join(cwd, x)) for x in args]
31 return args 31 return args
32
33 def datestr(change=None):
34 if change is None:
35 t = time.time()
36 if time.daylight: tz = time.altzone
37 else: tz = time.timezone
38 else:
39 t, tz = change[2].split(' ')
40 try:
41 # a conversion tool was sticking non-integer offsets into repos
42 tz = int(tz)
43 except ValueError:
44 tz = 0
45 return time.asctime(time.gmtime(float(t) - tz)) + " %+05d" % (int(tz)/-36)
32 46
33 def matchpats(repo, cwd, pats=[], opts={}, head=''): 47 def matchpats(repo, cwd, pats=[], opts={}, head=''):
34 return util.matcher(repo.root, cwd, pats or ['.'], opts.get('include'), 48 return util.matcher(repo.root, cwd, pats or ['.'], opts.get('include'),
35 opts.get('exclude'), head) 49 opts.get('exclude'), head)
36 50
249 pathname), 263 pathname),
250 mode) 264 mode)
251 265
252 def dodiff(fp, ui, repo, node1, node2, files=None, match=util.always, 266 def dodiff(fp, ui, repo, node1, node2, files=None, match=util.always,
253 changes=None, text=False): 267 changes=None, text=False):
254 def date(c):
255 return time.asctime(time.gmtime(float(c[2].split(' ')[0])))
256
257 if not changes: 268 if not changes:
258 (c, a, d, u) = repo.changes(node1, node2, files, match=match) 269 (c, a, d, u) = repo.changes(node1, node2, files, match=match)
259 else: 270 else:
260 (c, a, d, u) = changes 271 (c, a, d, u) = changes
261 if files: 272 if files:
265 return 276 return
266 277
267 if node2: 278 if node2:
268 change = repo.changelog.read(node2) 279 change = repo.changelog.read(node2)
269 mmap2 = repo.manifest.read(change[0]) 280 mmap2 = repo.manifest.read(change[0])
270 date2 = date(change) 281 date2 = datestr(change)
271 def read(f): 282 def read(f):
272 return repo.file(f).read(mmap2[f]) 283 return repo.file(f).read(mmap2[f])
273 else: 284 else:
274 date2 = time.asctime() 285 date2 = datestr()
275 if not node1: 286 if not node1:
276 node1 = repo.dirstate.parents()[0] 287 node1 = repo.dirstate.parents()[0]
277 def read(f): 288 def read(f):
278 return repo.wfile(f).read() 289 return repo.wfile(f).read()
279 290
283 hexfunc = ui.verbose and hex or short 294 hexfunc = ui.verbose and hex or short
284 r = [hexfunc(node) for node in [node1, node2] if node] 295 r = [hexfunc(node) for node in [node1, node2] if node]
285 296
286 change = repo.changelog.read(node1) 297 change = repo.changelog.read(node1)
287 mmap = repo.manifest.read(change[0]) 298 mmap = repo.manifest.read(change[0])
288 date1 = date(change) 299 date1 = datestr(change)
289 300
290 for f in c: 301 for f in c:
291 to = None 302 to = None
292 if f in mmap: 303 if f in mmap:
293 to = repo.file(f).read(mmap[f]) 304 to = repo.file(f).read(mmap[f])
320 if ui.quiet: 331 if ui.quiet:
321 ui.write("%d:%s\n" % (rev, short(changenode))) 332 ui.write("%d:%s\n" % (rev, short(changenode)))
322 return 333 return
323 334
324 changes = log.read(changenode) 335 changes = log.read(changenode)
325 336 date = datestr(changes)
326 t, tz = changes[2].split(' ')
327 # a conversion tool was sticking non-integer offsets into repos
328 try:
329 tz = int(tz)
330 except ValueError:
331 tz = 0
332 date = time.asctime(time.gmtime(float(t) - tz)) + " %+05d" % (int(tz)/-36)
333 337
334 parents = [(log.rev(p), ui.verbose and hex(p) or short(p)) 338 parents = [(log.rev(p), ui.verbose and hex(p) or short(p))
335 for p in log.parents(changenode) 339 for p in log.parents(changenode)
336 if ui.debugflag or p != nullid] 340 if ui.debugflag or p != nullid]
337 if not ui.debugflag and len(parents) == 1 and parents[0][0] == rev-1: 341 if not ui.debugflag and len(parents) == 1 and parents[0][0] == rev-1: