1420 hideinactive, _heads = opts.get('active'), None |
1420 hideinactive, _heads = opts.get('active'), None |
1421 if not branchrevs: |
1421 if not branchrevs: |
1422 heads = repo.heads(start) |
1422 heads = repo.heads(start) |
1423 |
1423 |
1424 else: |
1424 else: |
|
1425 |
1425 if hideinactive: |
1426 if hideinactive: |
1426 dagheads = repo.heads(start) |
1427 dagheads = repo.heads(start) |
1427 decode, encode = encoding.fromlocal, encoding.tolocal |
1428 decode, encode = encoding.fromlocal, encoding.tolocal |
1428 branches = set(repo[decode(br)].branch() for br in branchrevs) |
1429 branches = set(repo[decode(br)].branch() for br in branchrevs) |
1429 heads = [] |
1430 heads = [] |
1430 visitedset = set() |
1431 |
1431 for b in branches: |
1432 for b in branches: |
1432 bheads = repo.branchheads(b, start, closed=closed) |
1433 bheads = repo.branchheads(b, start, closed=closed) |
1433 if not bheads: |
|
1434 encodedbranch = encode(b) |
|
1435 if not opts.get('rev'): |
|
1436 ui.warn(_("no open branch heads on branch %s\n") |
|
1437 % encodedbranch) |
|
1438 else: |
|
1439 ui.warn(_("no changes on branch %s are reachable from %s\n") |
|
1440 % (encodedbranch, opts.get('rev'))) |
|
1441 if hideinactive: |
1434 if hideinactive: |
1442 bheads = [bhead for bhead in bheads if bhead in dagheads] |
1435 bheads = [bhead for bhead in bheads if bhead in dagheads] |
1443 heads.extend(bheads) |
1436 heads.extend(bheads) |
|
1437 |
|
1438 haveheads = set(repo[h].branch() for h in heads) |
|
1439 if branches - haveheads: |
|
1440 headless = ', '.join(encode(b) for b in branches - haveheads) |
|
1441 msg = _('no open branch heads found on branches %s') |
|
1442 if opts.get('rev'): |
|
1443 msg += _(' (started at %s)' % opts['rev']) |
|
1444 ui.warn((msg + '\n') % headless) |
1444 |
1445 |
1445 if not heads: |
1446 if not heads: |
1446 return 1 |
1447 return 1 |
1447 |
1448 |
1448 heads = sorted((repo[h] for h in heads), key=lambda x: -x.rev()) |
1449 heads = sorted((repo[h] for h in heads), key=lambda x: -x.rev()) |