Mercurial > hg > mercurial-source
diff mercurial/tags.py @ 32448:a719f3315366
tags: move 'repo.tag' in the 'tags' module
Similar logic, pretty much nobody use this method (that creates a tag) so we
move it into the 'tags' module were it belong.
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Mon, 27 Mar 2017 15:58:31 +0200 (2017-03-27) |
parents | 7d0459706716 |
children | 5eb4d206202b |
line wrap: on
line diff
--- a/mercurial/tags.py +++ b/mercurial/tags.py @@ -395,6 +395,37 @@ except (OSError, IOError): pass +def tag(repo, names, node, message, local, user, date, editor=False): + '''tag a revision with one or more symbolic names. + + names is a list of strings or, when adding a single tag, names may be a + string. + + if local is True, the tags are stored in a per-repository file. + otherwise, they are stored in the .hgtags file, and a new + changeset is committed with the change. + + keyword arguments: + + local: whether to store tags in non-version-controlled file + (default False) + + message: commit message to use if committing + + user: name of user to use if committing + + date: date tuple to use if committing''' + + if not local: + m = matchmod.exact(repo.root, '', ['.hgtags']) + if any(repo.status(match=m, unknown=True, ignored=True)): + raise error.Abort(_('working copy of .hgtags is changed'), + hint=_('please commit .hgtags manually')) + + repo.tags() # instantiate the cache + _tag(repo.unfiltered(), names, node, message, local, user, date, + editor=editor) + def _tag(repo, names, node, message, local, user, date, extra=None, editor=False): if isinstance(names, str):