Mercurial > hg-stable
changeset 31674: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 |
parents | 7d0459706716 |
children | adace35f931d |
files | mercurial/localrepo.py mercurial/tags.py |
diffstat | 2 files changed, 33 insertions(+), 29 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/localrepo.py Mon Mar 27 15:55:07 2017 +0200 +++ b/mercurial/localrepo.py Mon Mar 27 15:58:31 2017 +0200 @@ -650,35 +650,8 @@ return hook.hook(self.ui, self, name, throw, **args) def tag(self, 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(self.root, '', ['.hgtags']) - if any(self.status(match=m, unknown=True, ignored=True)): - raise error.Abort(_('working copy of .hgtags is changed'), - hint=_('please commit .hgtags manually')) - - self.tags() # instantiate the cache - tagsmod._tag(self.unfiltered(), names, node, message, local, user, date, - editor=editor) + tagsmod.tag(self, names, node, message, local, user, date, + editor=editor) @filteredpropertycache def _tagscache(self):
--- a/mercurial/tags.py Mon Mar 27 15:55:07 2017 +0200 +++ b/mercurial/tags.py Mon Mar 27 15:58:31 2017 +0200 @@ -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):