1165 """ |
1165 """ |
1166 # i18n: "tag" is a keyword |
1166 # i18n: "tag" is a keyword |
1167 args = getargs(x, 0, 1, _("tag takes one or no arguments")) |
1167 args = getargs(x, 0, 1, _("tag takes one or no arguments")) |
1168 cl = repo.changelog |
1168 cl = repo.changelog |
1169 if args: |
1169 if args: |
1170 tn = getstring(args[0], |
1170 pattern = getstring(args[0], |
1171 # i18n: "tag" is a keyword |
1171 # i18n: "tag" is a keyword |
1172 _('the argument to tag must be a string')) |
1172 _('the argument to tag must be a string')) |
1173 if not repo.tags().get(tn, None): |
1173 kind, pattern, matcher = _stringmatcher(pattern) |
1174 raise util.Abort(_("tag '%s' does not exist") % tn) |
1174 if kind == 'literal': |
1175 s = set([cl.rev(n) for t, n in repo.tagslist() if t == tn]) |
1175 if not repo.tags().get(pattern, None): |
|
1176 raise util.Abort(_("tag '%s' does not exist") % pattern) |
|
1177 s = set([cl.rev(n) for t, n in repo.tagslist() if t == pattern]) |
|
1178 else: |
|
1179 s = set([cl.rev(n) for t, n in repo.tagslist() if matcher(t)]) |
|
1180 if not s: |
|
1181 raise util.Abort(_("no tags exist that match '%s'") % pattern) |
1176 else: |
1182 else: |
1177 s = set([cl.rev(n) for t, n in repo.tagslist() if t != 'tip']) |
1183 s = set([cl.rev(n) for t, n in repo.tagslist() if t != 'tip']) |
1178 return [r for r in subset if r in s] |
1184 return [r for r in subset if r in s] |
1179 |
1185 |
1180 def tagged(repo, subset, x): |
1186 def tagged(repo, subset, x): |