# HG changeset patch # User Dirkjan Ochtman # Date 1265481208 -3600 # Node ID e2db50cae6e6c38ab762bb7c44edc3987841d39e # Parent bc2866bdf3e0b1668285cd4121ac8e0b06e82dfa commands: don't do too much work for error messages diff -r bc2866bdf3e0 -r e2db50cae6e6 mercurial/commands.py --- a/mercurial/commands.py Sat Feb 06 19:00:50 2010 +0100 +++ b/mercurial/commands.py Sat Feb 06 19:33:28 2010 +0100 @@ -1422,26 +1422,27 @@ heads = repo.heads(start) else: + if hideinactive: dagheads = repo.heads(start) decode, encode = encoding.fromlocal, encoding.tolocal branches = set(repo[decode(br)].branch() for br in branchrevs) heads = [] - visitedset = set() + for b in branches: bheads = repo.branchheads(b, start, closed=closed) - if not bheads: - encodedbranch = encode(b) - if not opts.get('rev'): - ui.warn(_("no open branch heads on branch %s\n") - % encodedbranch) - else: - ui.warn(_("no changes on branch %s are reachable from %s\n") - % (encodedbranch, opts.get('rev'))) if hideinactive: bheads = [bhead for bhead in bheads if bhead in dagheads] heads.extend(bheads) + haveheads = set(repo[h].branch() for h in heads) + if branches - haveheads: + headless = ', '.join(encode(b) for b in branches - haveheads) + msg = _('no open branch heads found on branches %s') + if opts.get('rev'): + msg += _(' (started at %s)' % opts['rev']) + ui.warn((msg + '\n') % headless) + if not heads: return 1 diff -r bc2866bdf3e0 -r e2db50cae6e6 tests/test-bheads.out --- a/tests/test-bheads.out Sat Feb 06 19:00:50 2010 +0100 +++ b/tests/test-bheads.out Sat Feb 06 19:33:28 2010 +0100 @@ -56,7 +56,7 @@ ------- 7: Adding c branch ======= -no changes on branch c are reachable from 3 +no open branch heads found on branches c (started at 3) 1 ------- 7: Adding c branch @@ -72,7 +72,7 @@ 3: Adding b branch head 1 0 ------- -no changes on branch b are reachable from 7 +no open branch heads found on branches b (started at 7) 1 ======= 0 files updated, 0 files merged, 2 files removed, 0 files unresolved diff -r bc2866bdf3e0 -r e2db50cae6e6 tests/test-branches.out --- a/tests/test-branches.out Sat Feb 06 19:00:50 2010 +0100 +++ b/tests/test-branches.out Sat Feb 06 19:33:28 2010 +0100 @@ -117,7 +117,7 @@ a 5:d8cbc61dbaa6 (inactive) default 0:19709c5a4e75 (inactive) a branch name much longer than the default justification used by branches 7:10ff5895aa57 -no open branch heads on branch b +no open branch heads found on branches b changeset: 12:2da6583810df branch: b tag: tip @@ -169,6 +169,7 @@ date: Thu Jan 01 00:00:04 1970 +0000 summary: Adding b branch head 2 +no open branch heads found on branches a % branch b changeset: 13:6ac12926b8c3 branch: b