Mercurial > public > mercurial-scm > hg
comparison mercurial/commands.py @ 13644:7e6c2f58ad56
identify: list bookmarks for remote repositories
author | Nils Adermann <naderman@naderman.de> |
---|---|
date | Sat, 12 Mar 2011 18:15:14 +0100 |
parents | 595dba23d337 |
children | 31eac42d9123 |
comparison
equal
deleted
inserted
replaced
13643:537899158396 | 13644:7e6c2f58ad56 |
---|---|
2290 hexfunc = ui.debugflag and hex or short | 2290 hexfunc = ui.debugflag and hex or short |
2291 default = not (num or id or branch or tags or bookmarks) | 2291 default = not (num or id or branch or tags or bookmarks) |
2292 output = [] | 2292 output = [] |
2293 | 2293 |
2294 revs = [] | 2294 revs = [] |
2295 bms = [] | |
2295 if source: | 2296 if source: |
2296 source, branches = hg.parseurl(ui.expandpath(source)) | 2297 source, branches = hg.parseurl(ui.expandpath(source)) |
2297 repo = hg.repository(ui, source) | 2298 repo = hg.repository(ui, source) |
2298 revs, checkout = hg.addbranchrevs(repo, repo, branches, None) | 2299 revs, checkout = hg.addbranchrevs(repo, repo, branches, None) |
2299 | 2300 |
2300 if not repo.local(): | 2301 if not repo.local(): |
2301 if not rev and revs: | 2302 if not rev and revs: |
2302 rev = revs[0] | 2303 rev = revs[0] |
2303 if not rev: | 2304 if not rev: |
2304 rev = "tip" | 2305 rev = "tip" |
2305 if num or branch or tags or bookmarks: | 2306 if num or branch or tags: |
2306 raise util.Abort(_("can't query remote revision number," | 2307 raise util.Abort( |
2307 " branch, tags, or bookmarks")) | 2308 _("can't query remote revision number, branch, or tags")) |
2308 output = [hexfunc(repo.lookup(rev))] | 2309 |
2310 remoterev = repo.lookup(rev) | |
2311 if default or id: | |
2312 output = [hexfunc(remoterev)] | |
2313 | |
2314 if 'bookmarks' in repo.listkeys('namespaces'): | |
2315 hexremoterev = hex(remoterev) | |
2316 bms = [bm for bm, bmrev in repo.listkeys('bookmarks').iteritems() | |
2317 if bmrev == hexremoterev] | |
2318 | |
2309 elif not rev: | 2319 elif not rev: |
2310 ctx = repo[None] | 2320 ctx = repo[None] |
2311 parents = ctx.parents() | 2321 parents = ctx.parents() |
2312 changed = False | 2322 changed = False |
2313 if default or id or num: | 2323 if default or id or num: |
2323 if default or id: | 2333 if default or id: |
2324 output = [hexfunc(ctx.node())] | 2334 output = [hexfunc(ctx.node())] |
2325 if num: | 2335 if num: |
2326 output.append(str(ctx.rev())) | 2336 output.append(str(ctx.rev())) |
2327 | 2337 |
2338 if repo.local(): | |
2339 bms = ctx.bookmarks() | |
2340 | |
2328 if repo.local() and default and not ui.quiet: | 2341 if repo.local() and default and not ui.quiet: |
2329 b = ctx.branch() | 2342 b = ctx.branch() |
2330 if b != 'default': | 2343 if b != 'default': |
2331 output.append("(%s)" % b) | 2344 output.append("(%s)" % b) |
2332 | 2345 |
2333 # multiple tags for a single parent separated by '/' | 2346 # multiple tags for a single parent separated by '/' |
2334 t = "/".join(ctx.tags()) | 2347 t = "/".join(ctx.tags()) |
2335 if t: | 2348 if t: |
2336 output.append(t) | 2349 output.append(t) |
2337 | 2350 |
2351 if default and not ui.quiet: | |
2338 # multiple bookmarks for a single parent separated by '/' | 2352 # multiple bookmarks for a single parent separated by '/' |
2339 bm = '/'.join(ctx.bookmarks()) | 2353 bm = '/'.join(bms) |
2340 if bm: | 2354 if bm: |
2341 output.append(bm) | 2355 output.append(bm) |
2342 | 2356 |
2343 if branch: | 2357 if branch: |
2344 output.append(ctx.branch()) | 2358 output.append(ctx.branch()) |
2345 | 2359 |
2346 if tags: | 2360 if tags: |
2347 output.extend(ctx.tags()) | 2361 output.extend(ctx.tags()) |
2348 | 2362 |
2349 if bookmarks: | 2363 if bookmarks: |
2350 output.extend(ctx.bookmarks()) | 2364 output.extend(bms) |
2351 | 2365 |
2352 ui.write("%s\n" % ' '.join(output)) | 2366 ui.write("%s\n" % ' '.join(output)) |
2353 | 2367 |
2354 def import_(ui, repo, patch1, *patches, **opts): | 2368 def import_(ui, repo, patch1, *patches, **opts): |
2355 """import an ordered set of patches | 2369 """import an ordered set of patches |