comparison mercurial/commands.py @ 38323:48c52385e062

tag: use context manager for locks Differential Revision: https://phab.mercurial-scm.org/D3746
author Martin von Zweigbergk <martinvonz@google.com>
date Thu, 14 Jun 2018 15:08:32 -0700
parents e218ed5ba484
children c924e7dbcd0f
comparison
equal deleted inserted replaced
38322:e218ed5ba484 38323:48c52385e062
5354 lookup, using an existing branch name as a tag name is discouraged. 5354 lookup, using an existing branch name as a tag name is discouraged.
5355 5355
5356 Returns 0 on success. 5356 Returns 0 on success.
5357 """ 5357 """
5358 opts = pycompat.byteskwargs(opts) 5358 opts = pycompat.byteskwargs(opts)
5359 wlock = lock = None 5359 with repo.wlock(), repo.lock():
5360 try:
5361 wlock = repo.wlock()
5362 lock = repo.lock()
5363 rev_ = "." 5360 rev_ = "."
5364 names = [t.strip() for t in (name1,) + names] 5361 names = [t.strip() for t in (name1,) + names]
5365 if len(names) != len(set(names)): 5362 if len(names) != len(set(names)):
5366 raise error.Abort(_('tag names must be unique')) 5363 raise error.Abort(_('tag names must be unique'))
5367 for n in names: 5364 for n in names:
5428 scmutil.revsingle(repo, rev_).rev() == nullrev): 5425 scmutil.revsingle(repo, rev_).rev() == nullrev):
5429 raise error.Abort(_("cannot tag null revision")) 5426 raise error.Abort(_("cannot tag null revision"))
5430 5427
5431 tagsmod.tag(repo, names, node, message, opts.get('local'), 5428 tagsmod.tag(repo, names, node, message, opts.get('local'),
5432 opts.get('user'), date, editor=editor) 5429 opts.get('user'), date, editor=editor)
5433 finally:
5434 release(lock, wlock)
5435 5430
5436 @command('tags', formatteropts, '', intents={INTENT_READONLY}) 5431 @command('tags', formatteropts, '', intents={INTENT_READONLY})
5437 def tags(ui, repo, **opts): 5432 def tags(ui, repo, **opts):
5438 """list repository tags 5433 """list repository tags
5439 5434