self.run_error = "Couldn't run git %s" % cmd
-# FIXME: move to gbp.git.create_tag
-class GitTag(GitCommand):
- """Wrap git tag"""
- def __init__(self, sign_tag=False, keyid=None):
- GitCommand.__init__(self,'tag')
- self.sign_tag = sign_tag
- self.keyid = keyid
-
- def __call__(self, version, msg="Tagging %(version)s", commit=None):
- self.run_error = 'Couldn\'t tag "%s"' % (version,)
- if self.sign_tag:
- if self.keyid:
- sign_opts = [ '-u', self.keyid ]
- else:
- sign_opts = [ '-s' ]
- else:
- sign_opts = []
- cmd = sign_opts + [ '-m', msg % locals(), version]
- if commit:
- cmd += [ commit ]
- GitCommand.__call__(self, cmd)
-
-
def copy_from(orig_dir, filters=[]):
"""
copy a source tree over via tar
self._git_command("tag", [ new, old ])
self.remove_tag(old)
+ def create_tag(self, name, msg=None, commit=None, sign=False, keyid=None):
+ """
+ Create a new tag.
+
+ @param name: the tag's name
+ @type name: string
+ @param msg: The tag message.
+ @type msg: string
+ @param commit: the commit or object to create the tag at, default
+ is I{HEAD}
+ @type commit: string
+ @param sign: Whether to sing the tag
+ @type sign: bool
+ @param keyid: the GPG keyid used to sign the tag
+ @type keyid: string
+ """
+ args = []
+ args += [ '-m', msg ] if msg else []
+ if sign:
+ args += [ '-u', keyid ] if keyid else [ '-s' ]
+ args += [ name ]
+ args += [ commit ] if commit else []
+ self._git_command("tag", args)
+
def get_branch(self):
"""on what branch is the current working copy"""
for line in self.__git_getoutput('branch', [ '--no-color' ])[0]:
import shutil
import gbp.deb as du
from gbp.git import (GitRepositoryError, GitRepository, build_tag)
-from gbp.command_wrappers import (GitTag, Command,
+from gbp.command_wrappers import (Command,
RunAtCommand, CommandExecFailed, PristineTar,
RemoveTree, CatenateTarArchive)
from gbp.config import (GbpOptionParser, GbpOptionGroup)
tag = build_tag(options.debian_tag, version)
if options.retag and repo.has_tag(tag):
repo.remove_tag(tag)
- GitTag(options.sign_tags, options.keyid)(tag,
- msg="Debian release %s" % version)
+ repo.create_tag(name=tag, msg="Debian release %s" % version,
+ sign=options.sign_tags, keyid=options.keyid)
if options.posttag:
sha = repo.rev_parse("%s^{}" % tag)
Command(options.posttag, shell=True,
def apply_debian_patch(repo, unpack_dir, src, options, parents):
"""apply the debian patch and tag appropriately"""
- gitTag = gbpc.GitTag(options.sign_tags, options.keyid)
-
try:
os.chdir(unpack_dir)
committer=dict(name=[None, author][options.author_committer],
email=[None, email][options.author_committer],
date=[None, date][options.author_committer_date]))
-
- gitTag(build_tag(options.debian_tag, src.version),
- msg="Debian release %s" % src.version, commit=commit)
+ repo.create_tag(build_tag(options.debian_tag, src.version),
+ msg="Debian release %s" % src.version,
+ commit=commit,
+ sign=options.sign_tags,
+ keyid=options.keyid)
except gbpc.CommandExecFailed:
gbp.log.err("Failed to import Debian package")
raise GbpError
options, args = parse_args(argv)
- gitTag = gbpc.GitTag(options.sign_tags, options.keyid)
-
try:
if len(args) != 1:
gbp.log.err("Need to give exactly one package to import. Try --help.")
commit = repo.commit_dir(upstream.unpacked,
"Imported %s" % msg,
branch)
- gitTag(version=tag, msg=msg, commit=commit)
-
+ repo.create_tag(name=tag,
+ msg=msg,
+ commit=commit,
+ sign=options.sign_tags,
+ keyid=options.keyid)
if not src.native:
if is_empty:
repo.create_branch(options.upstream_branch, commit)
gbp.log.warn("'%s' not an archive, skipping pristine-tar" % source.path)
tag = build_tag(options.upstream_tag, version)
- gbpc.GitTag(options.sign_tags, options.keyid)(tag,
- msg="Upstream version %s" % version,
- commit=commit)
+ repo.create_tag(name=tag,
+ msg="Upstream version %s" % version,
+ commit=commit,
+ sign=options.sign_tags,
+ keyid=options.keyid)
if is_empty:
repo.create_branch(options.upstream_branch, rev=commit)
repo.force_head(options.upstream_branch, hard=True)