1071 finally: |
1071 finally: |
1072 wlock.release() |
1072 wlock.release() |
1073 |
1073 |
1074 @command('branches', |
1074 @command('branches', |
1075 [('a', 'active', False, _('show only branches that have unmerged heads')), |
1075 [('a', 'active', False, _('show only branches that have unmerged heads')), |
1076 ('c', 'closed', False, _('show normal and closed branches'))], |
1076 ('c', 'closed', False, _('show normal and closed branches')), |
|
1077 ] + formatteropts, |
1077 _('[-ac]')) |
1078 _('[-ac]')) |
1078 def branches(ui, repo, active=False, closed=False): |
1079 def branches(ui, repo, active=False, closed=False, **opts): |
1079 """list repository named branches |
1080 """list repository named branches |
1080 |
1081 |
1081 List the repository's named branches, indicating which ones are |
1082 List the repository's named branches, indicating which ones are |
1082 inactive. If -c/--closed is specified, also list branches which have |
1083 inactive. If -c/--closed is specified, also list branches which have |
1083 been marked closed (see :hg:`commit --close-branch`). |
1084 been marked closed (see :hg:`commit --close-branch`). |
1088 Use the command :hg:`update` to switch to an existing branch. |
1089 Use the command :hg:`update` to switch to an existing branch. |
1089 |
1090 |
1090 Returns 0. |
1091 Returns 0. |
1091 """ |
1092 """ |
1092 |
1093 |
1093 hexfunc = ui.debugflag and hex or short |
1094 fm = ui.formatter('branches', opts) |
|
1095 hexfunc = fm.hexfunc |
1094 |
1096 |
1095 allheads = set(repo.heads()) |
1097 allheads = set(repo.heads()) |
1096 branches = [] |
1098 branches = [] |
1097 for tag, heads, tip, isclosed in repo.branchmap().iterbranches(): |
1099 for tag, heads, tip, isclosed in repo.branchmap().iterbranches(): |
1098 isactive = not isclosed and bool(set(heads) & allheads) |
1100 isactive = not isclosed and bool(set(heads) & allheads) |
1114 else: |
1116 else: |
1115 label = 'branches.inactive' |
1117 label = 'branches.inactive' |
1116 notice = _(' (inactive)') |
1118 notice = _(' (inactive)') |
1117 if tag == repo.dirstate.branch(): |
1119 if tag == repo.dirstate.branch(): |
1118 label = 'branches.current' |
1120 label = 'branches.current' |
|
1121 |
|
1122 fm.startitem() |
|
1123 fm.write('branch', '%s', tag, label=label) |
1119 rev = ctx.rev() |
1124 rev = ctx.rev() |
1120 padsize = max(31 - len(str(rev)) - encoding.colwidth(tag), 0) |
1125 padsize = max(31 - len(str(rev)) - encoding.colwidth(tag), 0) |
1121 fmt = ' ' * padsize + '%d:%s' |
1126 fmt = ' ' * padsize + '%d:%s' |
1122 rev = ui.label(fmt % (rev, hexfunc(ctx.node())), |
1127 if not ui.quiet: |
1123 'log.changeset changeset.%s' % ctx.phasestr()) |
1128 fm.plain(' ') |
1124 labeledtag = ui.label(tag, label) |
1129 fm.condwrite(not ui.quiet, 'rev node', fmt, rev, hexfunc(ctx.node()), |
1125 if ui.quiet: |
1130 label='log.changeset changeset.%s' % ctx.phasestr()) |
1126 ui.write("%s\n" % labeledtag) |
1131 if not ui.quiet: |
1127 else: |
1132 fm.plain(notice) |
1128 ui.write("%s %s%s\n" % (labeledtag, rev, notice)) |
1133 fm.plain('\n') |
|
1134 fm.end() |
1129 |
1135 |
1130 @command('bundle', |
1136 @command('bundle', |
1131 [('f', 'force', None, _('run even when the destination is unrelated')), |
1137 [('f', 'force', None, _('run even when the destination is unrelated')), |
1132 ('r', 'rev', [], _('a changeset intended to be added to the destination'), |
1138 ('r', 'rev', [], _('a changeset intended to be added to the destination'), |
1133 _('REV')), |
1139 _('REV')), |