Show More
@@ -5501,62 +5501,68 b' def tag(ui, repo, name1, *names, **opts)' | |||
|
5501 | 5501 | |
|
5502 | 5502 | Returns 0 on success. |
|
5503 | 5503 | """ |
|
5504 | ||
|
5505 | rev_ = "." | |
|
5506 | names = [t.strip() for t in (name1,) + names] | |
|
5507 | if len(names) != len(set(names)): | |
|
5508 | raise util.Abort(_('tag names must be unique')) | |
|
5509 | for n in names: | |
|
5510 | if n in ['tip', '.', 'null']: | |
|
5511 |
raise util.Abort(_( |
|
|
5512 | if not n: | |
|
5513 | raise util.Abort(_('tag names cannot consist entirely of whitespace')) | |
|
5514 | if opts.get('rev') and opts.get('remove'): | |
|
5515 | raise util.Abort(_("--rev and --remove are incompatible")) | |
|
5516 | if opts.get('rev'): | |
|
5517 | rev_ = opts['rev'] | |
|
5518 | message = opts.get('message') | |
|
5519 | if opts.get('remove'): | |
|
5520 | expectedtype = opts.get('local') and 'local' or 'global' | |
|
5504 | wlock = lock = None | |
|
5505 | try: | |
|
5506 | wlock = repo.wlock() | |
|
5507 | lock = repo.lock() | |
|
5508 | rev_ = "." | |
|
5509 | names = [t.strip() for t in (name1,) + names] | |
|
5510 | if len(names) != len(set(names)): | |
|
5511 | raise util.Abort(_('tag names must be unique')) | |
|
5521 | 5512 | for n in names: |
|
5522 | if not repo.tagtype(n): | |
|
5523 |
raise util.Abort(_("t |
|
|
5524 | if repo.tagtype(n) != expectedtype: | |
|
5525 | if expectedtype == 'global': | |
|
5526 | raise util.Abort(_("tag '%s' is not a global tag") % n) | |
|
5527 | else: | |
|
5528 |
|
|
|
5529 | rev_ = nullid | |
|
5513 | if n in ['tip', '.', 'null']: | |
|
5514 | raise util.Abort(_("the name '%s' is reserved") % n) | |
|
5515 | if not n: | |
|
5516 | raise util.Abort(_('tag names cannot consist entirely of ' | |
|
5517 | 'whitespace')) | |
|
5518 | if opts.get('rev') and opts.get('remove'): | |
|
5519 | raise util.Abort(_("--rev and --remove are incompatible")) | |
|
5520 | if opts.get('rev'): | |
|
5521 | rev_ = opts['rev'] | |
|
5522 | message = opts.get('message') | |
|
5523 | if opts.get('remove'): | |
|
5524 | expectedtype = opts.get('local') and 'local' or 'global' | |
|
5525 | for n in names: | |
|
5526 | if not repo.tagtype(n): | |
|
5527 | raise util.Abort(_("tag '%s' does not exist") % n) | |
|
5528 | if repo.tagtype(n) != expectedtype: | |
|
5529 | if expectedtype == 'global': | |
|
5530 | raise util.Abort(_("tag '%s' is not a global tag") % n) | |
|
5531 | else: | |
|
5532 | raise util.Abort(_("tag '%s' is not a local tag") % n) | |
|
5533 | rev_ = nullid | |
|
5534 | if not message: | |
|
5535 | # we don't translate commit messages | |
|
5536 | message = 'Removed tag %s' % ', '.join(names) | |
|
5537 | elif not opts.get('force'): | |
|
5538 | for n in names: | |
|
5539 | if n in repo.tags(): | |
|
5540 | raise util.Abort(_("tag '%s' already exists " | |
|
5541 | "(use -f to force)") % n) | |
|
5542 | if not opts.get('local'): | |
|
5543 | p1, p2 = repo.dirstate.parents() | |
|
5544 | if p2 != nullid: | |
|
5545 | raise util.Abort(_('uncommitted merge')) | |
|
5546 | bheads = repo.branchheads() | |
|
5547 | if not opts.get('force') and bheads and p1 not in bheads: | |
|
5548 | raise util.Abort(_('not at a branch head (use -f to force)')) | |
|
5549 | r = scmutil.revsingle(repo, rev_).node() | |
|
5550 | ||
|
5530 | 5551 | if not message: |
|
5531 | 5552 | # we don't translate commit messages |
|
5532 |
message = ' |
|
|
5533 | elif not opts.get('force'): | |
|
5534 | for n in names: | |
|
5535 | if n in repo.tags(): | |
|
5536 | raise util.Abort(_("tag '%s' already exists " | |
|
5537 | "(use -f to force)") % n) | |
|
5538 | if not opts.get('local'): | |
|
5539 | p1, p2 = repo.dirstate.parents() | |
|
5540 | if p2 != nullid: | |
|
5541 | raise util.Abort(_('uncommitted merge')) | |
|
5542 | bheads = repo.branchheads() | |
|
5543 | if not opts.get('force') and bheads and p1 not in bheads: | |
|
5544 | raise util.Abort(_('not at a branch head (use -f to force)')) | |
|
5545 | r = scmutil.revsingle(repo, rev_).node() | |
|
5546 | ||
|
5547 | if not message: | |
|
5548 | # we don't translate commit messages | |
|
5549 | message = ('Added tag %s for changeset %s' % | |
|
5550 | (', '.join(names), short(r))) | |
|
5551 | ||
|
5552 | date = opts.get('date') | |
|
5553 | if date: | |
|
5554 | date = util.parsedate(date) | |
|
5555 | ||
|
5556 | if opts.get('edit'): | |
|
5557 | message = ui.edit(message, ui.username()) | |
|
5558 | ||
|
5559 | repo.tag(names, r, message, opts.get('local'), opts.get('user'), date) | |
|
5553 | message = ('Added tag %s for changeset %s' % | |
|
5554 | (', '.join(names), short(r))) | |
|
5555 | ||
|
5556 | date = opts.get('date') | |
|
5557 | if date: | |
|
5558 | date = util.parsedate(date) | |
|
5559 | ||
|
5560 | if opts.get('edit'): | |
|
5561 | message = ui.edit(message, ui.username()) | |
|
5562 | ||
|
5563 | repo.tag(names, r, message, opts.get('local'), opts.get('user'), date) | |
|
5564 | finally: | |
|
5565 | release(lock, wlock) | |
|
5560 | 5566 | |
|
5561 | 5567 | @command('tags', [], '') |
|
5562 | 5568 | def tags(ui, repo): |
@@ -320,9 +320,6 b'' | |||
|
320 | 320 | > except: |
|
321 | 321 | warning: naked except clause |
|
322 | 322 | mercurial/commands.py:0: |
|
323 | > raise util.Abort(_('tag names cannot consist entirely of whitespace')) | |
|
324 | warning: line over 80 characters | |
|
325 | mercurial/commands.py:0: | |
|
326 | 323 | > ui.status(_("(run 'hg heads .' to see heads, 'hg merge' to merge)\n")) |
|
327 | 324 | warning: line over 80 characters |
|
328 | 325 | mercurial/commands.py:0: |
General Comments 0
You need to be logged in to leave comments.
Login now