55 |
55 |
56 if files: |
56 if files: |
57 c, a, d = map(lambda x: filterfiles(files, x), (c, a, d)) |
57 c, a, d = map(lambda x: filterfiles(files, x), (c, a, d)) |
58 |
58 |
59 for f in c: |
59 for f in c: |
60 to = repo.file(f).read(mmap[f]) |
60 to = None |
|
61 if f in mmap: |
|
62 to = repo.file(f).read(mmap[f]) |
61 tn = read(f) |
63 tn = read(f) |
62 sys.stdout.write(mdiff.unidiff(to, date1, tn, date2, f)) |
64 sys.stdout.write(mdiff.unidiff(to, date1, tn, date2, f)) |
63 for f in a: |
65 for f in a: |
64 to = None |
66 to = None |
65 tn = read(f) |
67 tn = read(f) |
448 |
450 |
449 def undo(ui, repo): |
451 def undo(ui, repo): |
450 """undo the last transaction""" |
452 """undo the last transaction""" |
451 repo.undo() |
453 repo.undo() |
452 |
454 |
453 def update(ui, repo, node=None): |
455 def update(ui, repo, node=None, merge=False, clean=False): |
454 '''update or merge working directory |
456 '''update or merge working directory |
455 |
457 |
456 If there are no outstanding changes in the working directory and |
458 If there are no outstanding changes in the working directory and |
457 there is a linear relationship between the current version and the |
459 there is a linear relationship between the current version and the |
458 requested version, the result is the requested version. |
460 requested version, the result is the requested version. |
462 changed between either parent are marked as changed for the next |
464 changed between either parent are marked as changed for the next |
463 commit and a commit must be performed before any further updates |
465 commit and a commit must be performed before any further updates |
464 are allowed. |
466 are allowed. |
465 ''' |
467 ''' |
466 node = node and repo.lookup(node) or repo.changelog.tip() |
468 node = node and repo.lookup(node) or repo.changelog.tip() |
467 repo.update(node) |
469 return repo.update(node, allow=merge, force=clean) |
468 |
470 |
469 def verify(ui, repo): |
471 def verify(ui, repo): |
470 """verify the integrity of the repository""" |
472 """verify the integrity of the repository""" |
471 return repo.verify() |
473 return repo.verify() |
472 |
474 |
522 "hg serve [options]"), |
524 "hg serve [options]"), |
523 "status": (status, [], 'hg status'), |
525 "status": (status, [], 'hg status'), |
524 "tags": (tags, [], 'hg tags'), |
526 "tags": (tags, [], 'hg tags'), |
525 "tip": (tip, [], 'hg tip'), |
527 "tip": (tip, [], 'hg tip'), |
526 "undo": (undo, [], 'hg undo'), |
528 "undo": (undo, [], 'hg undo'), |
527 "update|up|checkout|co|resolve": (update, [], 'hg update [node]'), |
529 "update|up|checkout|co|resolve": (update, |
|
530 [('m', 'merge', None, |
|
531 'allow merging of conflicts'), |
|
532 ('C', 'clean', None, |
|
533 'overwrite locally modified files')], |
|
534 'hg update [options] [node]'), |
528 "verify": (verify, [], 'hg verify'), |
535 "verify": (verify, [], 'hg verify'), |
529 } |
536 } |
530 |
537 |
531 norepo = "init branch help debugindex debugindexdot" |
538 norepo = "init branch help debugindex debugindexdot" |
532 |
539 |
597 except TypeError, inst: |
604 except TypeError, inst: |
598 # was this an argument error? |
605 # was this an argument error? |
599 tb = traceback.extract_tb(sys.exc_info()[2]) |
606 tb = traceback.extract_tb(sys.exc_info()[2]) |
600 if len(tb) > 2: # no |
607 if len(tb) > 2: # no |
601 raise |
608 raise |
|
609 raise |
602 u.warn("%s: invalid arguments\n" % i[0].__name__) |
610 u.warn("%s: invalid arguments\n" % i[0].__name__) |
603 u.warn("syntax: %s\n" % i[2]) |
611 u.warn("syntax: %s\n" % i[2]) |
604 sys.exit(-1) |
612 sys.exit(-1) |