mercurial/commands.py
changeset 2601 00fc88b0b256
parent 2600 c4325f0a9b91
child 2613 479e26afa10f
child 2617 0b4bff2b0ce3
child 2844 e196aa1df169
equal deleted inserted replaced
2600:c4325f0a9b91 2601:00fc88b0b256
  2651     if rev_:
  2651     if rev_:
  2652         r = hex(repo.lookup(rev_))
  2652         r = hex(repo.lookup(rev_))
  2653     else:
  2653     else:
  2654         r = hex(repo.changelog.tip())
  2654         r = hex(repo.changelog.tip())
  2655 
  2655 
  2656     disallowed = (revrangesep, '\r', '\n')
  2656     repo.tag(name, r, opts['local'], opts['message'], opts['user'],
  2657     for c in disallowed:
  2657              opts['date'])
  2658         if c in name:
       
  2659             raise util.Abort(_("%s cannot be used in a tag name") % repr(c))
       
  2660 
       
  2661     repo.hook('pretag', throw=True, node=r, tag=name,
       
  2662               local=int(not not opts['local']))
       
  2663 
       
  2664     if opts['local']:
       
  2665         repo.opener("localtags", "a").write("%s %s\n" % (r, name))
       
  2666         repo.hook('tag', node=r, tag=name, local=1)
       
  2667         return
       
  2668 
       
  2669     for x in repo.changes():
       
  2670         if ".hgtags" in x:
       
  2671             raise util.Abort(_("working copy of .hgtags is changed "
       
  2672                                "(please commit .hgtags manually)"))
       
  2673 
       
  2674     repo.wfile(".hgtags", "ab").write("%s %s\n" % (r, name))
       
  2675     if repo.dirstate.state(".hgtags") == '?':
       
  2676         repo.add([".hgtags"])
       
  2677 
       
  2678     message = (opts['message'] or
       
  2679                _("Added tag %s for changeset %s") % (name, r))
       
  2680     try:
       
  2681         repo.commit([".hgtags"], message, opts['user'], opts['date'])
       
  2682         repo.hook('tag', node=r, tag=name, local=0)
       
  2683     except ValueError, inst:
       
  2684         raise util.Abort(str(inst))
       
  2685 
  2658 
  2686 def tags(ui, repo):
  2659 def tags(ui, repo):
  2687     """list repository tags
  2660     """list repository tags
  2688 
  2661 
  2689     List the repository tags.
  2662     List the repository tags.