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.
This commit is contained in:
Pierre-Yves David 2017-03-27 15:58:31 +02:00
parent f1cbb59e75
commit 8141af4eed
2 changed files with 33 additions and 29 deletions

View File

@ -650,35 +650,8 @@ class localrepository(object):
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):

View File

@ -395,6 +395,37 @@ def _writetagcache(ui, repo, valid, cachetags):
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):