comparison mercurial/commands.py @ 1147:d32b91ebad5d

Merge with TAH.
author bos@serpentine.internal.keyresearch.com
date Mon, 29 Aug 2005 10:31:41 -0700
parents 9061f79c6c6f 899b619a7eb2
children 862f53c1d0f9
comparison
equal deleted inserted replaced
1146:9061f79c6c6f 1147:d32b91ebad5d
295 for f in d: 295 for f in d:
296 to = repo.file(f).read(mmap[f]) 296 to = repo.file(f).read(mmap[f])
297 tn = None 297 tn = None
298 fp.write(mdiff.unidiff(to, date1, tn, date2, f, r, text=text)) 298 fp.write(mdiff.unidiff(to, date1, tn, date2, f, r, text=text))
299 299
300 def trimuser(ui, rev, name, revcache): 300 def trimuser(ui, name, rev, revcache):
301 """trim the name of the user who committed a change""" 301 """trim the name of the user who committed a change"""
302 try: 302 user = revcache.get(rev)
303 return revcache[rev] 303 if user is None:
304 except KeyError: 304 user = revcache[rev] = ui.shortuser(name)
305 if not ui.verbose: 305 return user
306 f = name.find('@')
307 if f >= 0:
308 name = name[:f]
309 f = name.find('<')
310 if f >= 0:
311 name = name[f+1:]
312 revcache[rev] = name
313 return name
314 306
315 def show_changeset(ui, repo, rev=0, changenode=None, brinfo=None): 307 def show_changeset(ui, repo, rev=0, changenode=None, brinfo=None):
316 """show a single changeset or file revision""" 308 """show a single changeset or file revision"""
317 log = repo.changelog 309 log = repo.changelog
318 if changenode is None: 310 if changenode is None:
515 return short(repo.changelog.node(rev)) 507 return short(repo.changelog.node(rev))
516 508
517 ucache = {} 509 ucache = {}
518 def getname(rev): 510 def getname(rev):
519 cl = repo.changelog.read(repo.changelog.node(rev)) 511 cl = repo.changelog.read(repo.changelog.node(rev))
520 return trimuser(ui, rev, cl[1], ucache) 512 return trimuser(ui, cl[1], rev, ucache)
521 513
522 if not pats: 514 if not pats:
523 raise util.Abort('at least one file name or pattern required') 515 raise util.Abort('at least one file name or pattern required')
524 516
525 opmap = [['user', getname], ['number', str], ['changeset', getnode]] 517 opmap = [['user', getname], ['number', str], ['changeset', getnode]]
628 620
629 else: 621 else:
630 repo = hg.repository(ui, dest, create=1) 622 repo = hg.repository(ui, dest, create=1)
631 repo.pull(other) 623 repo.pull(other)
632 624
633 f = repo.opener("hgrc", "w") 625 f = repo.opener("hgrc", "a")
634 f.write("[paths]\n") 626 f.write("\n[paths]\n")
635 f.write("default = %s\n" % abspath) 627 f.write("default = %s\n" % abspath)
636 628
637 if not opts['noupdate']: 629 if not opts['noupdate']:
638 update(ui, repo) 630 update(ui, repo)
639 631
724 for file_ in keys: 716 for file_ in keys:
725 ui.write("%c %3o %10d %s %s\n" 717 ui.write("%c %3o %10d %s %s\n"
726 % (dc[file_][0], dc[file_][1] & 0777, dc[file_][2], 718 % (dc[file_][0], dc[file_][1] & 0777, dc[file_][2],
727 time.strftime("%x %X", 719 time.strftime("%x %X",
728 time.localtime(dc[file_][3])), file_)) 720 time.localtime(dc[file_][3])), file_))
729 ui.write("\n")
730 for f in repo.dirstate.copies: 721 for f in repo.dirstate.copies:
731 ui.write("%s -> %s\n" % (repo.dirstate.copies[f], f)) 722 ui.write("copy: %s -> %s\n" % (repo.dirstate.copies[f], f))
732 723
733 def debugdata(ui, file_, rev): 724 def debugdata(ui, file_, rev):
734 """dump the contents of an data file revision""" 725 """dump the contents of an data file revision"""
735 r = revlog.revlog(file, file_[:-2] + ".i", file_) 726 r = revlog.revlog(file, file_[:-2] + ".i", file_)
736 ui.write(r.revision(r.lookup(rev))) 727 ui.write(r.revision(r.lookup(rev)))
920 change = ((l in states) and '-') or '+' 911 change = ((l in states) and '-') or '+'
921 r = prev[fn] 912 r = prev[fn]
922 cols = [fn, str(rev)] 913 cols = [fn, str(rev)]
923 if opts['line_number']: cols.append(str(l.linenum)) 914 if opts['line_number']: cols.append(str(l.linenum))
924 if opts['every_match']: cols.append(change) 915 if opts['every_match']: cols.append(change)
925 if opts['user']: cols.append(trimuser(ui, rev, getchange(rev)[1], 916 if opts['user']: cols.append(trimuser(ui, getchange(rev)[1], rev,
926 ucache)) 917 ucache))
927 if opts['files_with_matches']: 918 if opts['files_with_matches']:
928 c = (fn, rev) 919 c = (fn, rev)
929 if c in filerevmatches: continue 920 if c in filerevmatches: continue
930 filerevmatches[c] = 1 921 filerevmatches[c] = 1