Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 4671:150afe6becf6
identify: take a path to a remote repo
Rather than using -R, we take a path as an argument. This lets us use
url#branch syntaxes that may be in hgrc.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 21 Jun 2007 13:09:01 -0500 |
parents | c7a81e3ae80f |
children | d8442fc0da8d |
comparison
equal
deleted
inserted
replaced
4670:850950e59b52 | 4671:150afe6becf6 |
---|---|
1430 if second: | 1430 if second: |
1431 ui.write(" %-*s %s\n" % (opts_len, first, second)) | 1431 ui.write(" %-*s %s\n" % (opts_len, first, second)) |
1432 else: | 1432 else: |
1433 ui.write("%s\n" % first) | 1433 ui.write("%s\n" % first) |
1434 | 1434 |
1435 def identify(ui, repo, rev=None, num=None, id=None, branch=None, tags=None): | 1435 def identify(ui, repo, source=None, |
1436 rev=None, num=None, id=None, branch=None, tags=None): | |
1436 """identify the working copy or specified revision | 1437 """identify the working copy or specified revision |
1437 | 1438 |
1438 With no argument, print a summary of the current state of the repo. | 1439 With no revision, print a summary of the current state of the repo. |
1440 | |
1441 With a path, do a lookup in another repository. | |
1439 | 1442 |
1440 This summary identifies the repository state using one or two parent | 1443 This summary identifies the repository state using one or two parent |
1441 hash identifiers, followed by a "+" if there are uncommitted changes | 1444 hash identifiers, followed by a "+" if there are uncommitted changes |
1442 in the working directory, a list of tags for this revision and a branch | 1445 in the working directory, a list of tags for this revision and a branch |
1443 name for non-default branches. | 1446 name for non-default branches. |
1445 | 1448 |
1446 hexfunc = ui.debugflag and hex or short | 1449 hexfunc = ui.debugflag and hex or short |
1447 default = not (num or id or branch or tags) | 1450 default = not (num or id or branch or tags) |
1448 output = [] | 1451 output = [] |
1449 | 1452 |
1450 if not repo.local(): | 1453 if source: |
1454 source, revs = cmdutil.parseurl(ui.expandpath(source), []) | |
1455 srepo = hg.repository(ui, source) | |
1456 if not rev and revs: | |
1457 rev = revs[0] | |
1451 if not rev: | 1458 if not rev: |
1452 rev = "tip" | 1459 rev = "tip" |
1453 if num or branch or tags: | 1460 if num or branch or tags: |
1454 raise util.Abort( | 1461 raise util.Abort( |
1455 "can't query remote revision number, branch, or tags") | 1462 "can't query remote revision number, branch, or tags") |
1456 output = [hexfunc(repo.lookup(rev))] | 1463 output = [hexfunc(srepo.lookup(rev))] |
1457 elif not rev: | 1464 elif not rev: |
1458 ctx = repo.workingctx() | 1465 ctx = repo.workingctx() |
1459 parents = ctx.parents() | 1466 parents = ctx.parents() |
1460 changed = False | 1467 changed = False |
1461 if default or id or num: | 1468 if default or id or num: |
1471 if default or id: | 1478 if default or id: |
1472 output = [hexfunc(ctx.node())] | 1479 output = [hexfunc(ctx.node())] |
1473 if num: | 1480 if num: |
1474 output.append(str(ctx.rev())) | 1481 output.append(str(ctx.rev())) |
1475 | 1482 |
1476 if repo.local() and default and not ui.quiet: | 1483 if not source and default and not ui.quiet: |
1477 b = util.tolocal(ctx.branch()) | 1484 b = util.tolocal(ctx.branch()) |
1478 if b != 'default': | 1485 if b != 'default': |
1479 output.append("(%s)" % b) | 1486 output.append("(%s)" % b) |
1480 | 1487 |
1481 # multiple tags for a single parent separated by '/' | 1488 # multiple tags for a single parent separated by '/' |
2854 [('r', 'rev', '', _('identify the specified rev')), | 2861 [('r', 'rev', '', _('identify the specified rev')), |
2855 ('n', 'num', None, _('show local revision number')), | 2862 ('n', 'num', None, _('show local revision number')), |
2856 ('i', 'id', None, _('show global revision id')), | 2863 ('i', 'id', None, _('show global revision id')), |
2857 ('b', 'branch', None, _('show branch')), | 2864 ('b', 'branch', None, _('show branch')), |
2858 ('t', 'tags', None, _('show tags'))], | 2865 ('t', 'tags', None, _('show tags'))], |
2859 _('hg identify [-nibt] [-r REV]')), | 2866 _('hg identify [-nibt] [-r REV] [SOURCE]')), |
2860 "import|patch": | 2867 "import|patch": |
2861 (import_, | 2868 (import_, |
2862 [('p', 'strip', 1, | 2869 [('p', 'strip', 1, |
2863 _('directory strip option for patch. This has the same\n' | 2870 _('directory strip option for patch. This has the same\n' |
2864 'meaning as the corresponding patch option')), | 2871 'meaning as the corresponding patch option')), |
3061 } | 3068 } |
3062 | 3069 |
3063 norepo = ("clone init version help debugancestor debugcomplete debugdata" | 3070 norepo = ("clone init version help debugancestor debugcomplete debugdata" |
3064 " debugindex debugindexdot debugdate debuginstall") | 3071 " debugindex debugindexdot debugdate debuginstall") |
3065 optionalrepo = ("paths serve showconfig") | 3072 optionalrepo = ("paths serve showconfig") |
3066 remoterepo = ("identify") | |
3067 | 3073 |
3068 def dispatch(args): | 3074 def dispatch(args): |
3069 try: | 3075 try: |
3070 u = ui.ui(traceback='--traceback' in args) | 3076 u = ui.ui(traceback='--traceback' in args) |
3071 except util.Abort, inst: | 3077 except util.Abort, inst: |