comparison mercurial/commands.py @ 1116:0cdd73b0767c

Add some rename debugging support
author mpm@selenic.com
date Sat, 27 Aug 2005 20:58:53 -0700
parents 58371c4c2c8f
children 624a3a4fa232 bd917e1a26dd
comparison
equal deleted inserted replaced
1115:89f54e72581d 1116:0cdd73b0767c
688 for file_ in keys: 688 for file_ in keys:
689 ui.write("%c %3o %10d %s %s\n" 689 ui.write("%c %3o %10d %s %s\n"
690 % (dc[file_][0], dc[file_][1] & 0777, dc[file_][2], 690 % (dc[file_][0], dc[file_][1] & 0777, dc[file_][2],
691 time.strftime("%x %X", 691 time.strftime("%x %X",
692 time.localtime(dc[file_][3])), file_)) 692 time.localtime(dc[file_][3])), file_))
693 ui.write("\n")
694 for f in repo.dirstate.copies:
695 ui.write("%s -> %s\n" % (repo.dirstate.copies[f], f))
693 696
694 def debugdata(ui, file_, rev): 697 def debugdata(ui, file_, rev):
695 """dump the contents of an data file revision""" 698 """dump the contents of an data file revision"""
696 r = revlog.revlog(file, file_[:-2] + ".i", file_) 699 r = revlog.revlog(file, file_[:-2] + ".i", file_)
697 ui.write(r.revision(r.lookup(rev))) 700 ui.write(r.revision(r.lookup(rev)))
715 e = r.index[i] 718 e = r.index[i]
716 ui.write("\t%d -> %d\n" % (r.rev(e[4]), i)) 719 ui.write("\t%d -> %d\n" % (r.rev(e[4]), i))
717 if e[5] != nullid: 720 if e[5] != nullid:
718 ui.write("\t%d -> %d\n" % (r.rev(e[5]), i)) 721 ui.write("\t%d -> %d\n" % (r.rev(e[5]), i))
719 ui.write("}\n") 722 ui.write("}\n")
723
724 def debugrename(ui, repo, file, rev=None):
725 r = repo.file(relpath(repo, [file])[0])
726 if rev:
727 try:
728 # assume all revision numbers are for changesets
729 n = repo.lookup(rev)
730 change = repo.changelog.read(n)
731 m = repo.manifest.read(change[0])
732 n = m[relpath(repo, [file])[0]]
733 except hg.RepoError, KeyError:
734 n = r.lookup(rev)
735 else:
736 n = r.tip()
737 m = r.renamed(n)
738 if m:
739 ui.write("renamed from %s:%s\n" % (m[0], hex(m[1])))
740 else:
741 ui.write("not renamed\n")
720 742
721 def debugwalk(ui, repo, *pats, **opts): 743 def debugwalk(ui, repo, *pats, **opts):
722 """show how files match on given patterns""" 744 """show how files match on given patterns"""
723 items = list(walk(repo, pats, opts)) 745 items = list(walk(repo, pats, opts))
724 if not items: 746 if not items:
1513 "debugconfig": (debugconfig, [], 'debugconfig'), 1535 "debugconfig": (debugconfig, [], 'debugconfig'),
1514 "debugstate": (debugstate, [], 'debugstate'), 1536 "debugstate": (debugstate, [], 'debugstate'),
1515 "debugdata": (debugdata, [], 'debugdata FILE REV'), 1537 "debugdata": (debugdata, [], 'debugdata FILE REV'),
1516 "debugindex": (debugindex, [], 'debugindex FILE'), 1538 "debugindex": (debugindex, [], 'debugindex FILE'),
1517 "debugindexdot": (debugindexdot, [], 'debugindexdot FILE'), 1539 "debugindexdot": (debugindexdot, [], 'debugindexdot FILE'),
1540 "debugrename": (debugrename, [], 'debugrename FILE [REV]'),
1518 "debugwalk": 1541 "debugwalk":
1519 (debugwalk, 1542 (debugwalk,
1520 [('I', 'include', [], 'include path in search'), 1543 [('I', 'include', [], 'include path in search'),
1521 ('X', 'exclude', [], 'exclude path from search')], 1544 ('X', 'exclude', [], 'exclude path from search')],
1522 'debugwalk [OPTION]... [FILE]...'), 1545 'debugwalk [OPTION]... [FILE]...'),