377 else: |
377 else: |
378 node = repo.dirstate.parents()[0] |
378 node = repo.dirstate.parents()[0] |
379 change = repo.changelog.read(node) |
379 change = repo.changelog.read(node) |
380 mmap = repo.manifest.read(change[0]) |
380 mmap = repo.manifest.read(change[0]) |
381 for src, abs, rel in walk(repo, pats, opts): |
381 for src, abs, rel in walk(repo, pats, opts): |
|
382 if abs not in mmap: |
|
383 ui.warn("warning: %s is not in the repository!\n" % rel) |
|
384 continue |
|
385 |
382 lines = repo.file(abs).annotate(mmap[abs]) |
386 lines = repo.file(abs).annotate(mmap[abs]) |
383 pieces = [] |
387 pieces = [] |
384 |
388 |
385 for o, f in opmap: |
389 for o, f in opmap: |
386 if opts[o]: |
390 if opts[o]: |
387 l = [f(n) for n, dummy in lines] |
391 l = [f(n) for n, dummy in lines] |
388 m = max(map(len, l)) |
392 if l: |
389 pieces.append(["%*s" % (m, x) for x in l]) |
393 m = max(map(len, l)) |
390 |
394 pieces.append(["%*s" % (m, x) for x in l]) |
391 for p, l in zip(zip(*pieces), lines): |
395 |
392 ui.write("%s: %s" % (" ".join(p), l[1])) |
396 if pieces: |
|
397 for p, l in zip(zip(*pieces), lines): |
|
398 ui.write("%s: %s" % (" ".join(p), l[1])) |
393 |
399 |
394 def cat(ui, repo, file1, rev=None, **opts): |
400 def cat(ui, repo, file1, rev=None, **opts): |
395 """output the latest or given revision of a file""" |
401 """output the latest or given revision of a file""" |
396 r = repo.file(relpath(repo, [file1])[0]) |
402 r = repo.file(relpath(repo, [file1])[0]) |
397 if rev: |
403 if rev: |