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]...'), |