aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2011-10-24 14:12:59 +0200
committerGuido Günther <agx@sigxcpu.org>2011-10-26 09:44:24 +0200
commitd6999f791909f22c9846e24b45a7032540894691 (patch)
tree069c4c08197a1bdf1d0097c40811b13edac7c587
parent718f0c3dda9c9691d6e99821aca89a440d5075e7 (diff)
Replace GitTag by GitRepository.create_tag()
-rw-r--r--gbp/command_wrappers.py23
-rw-r--r--gbp/git.py24
-rwxr-xr-xgit-buildpackage6
-rwxr-xr-xgit-import-dsc19
-rwxr-xr-xgit-import-orig8
5 files changed, 42 insertions, 38 deletions
diff --git a/gbp/command_wrappers.py b/gbp/command_wrappers.py
index 33d6823c..8d942b8e 100644
--- a/gbp/command_wrappers.py
+++ b/gbp/command_wrappers.py
@@ -230,29 +230,6 @@ class GitCommand(Command):
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
diff --git a/gbp/git.py b/gbp/git.py
index 75666356..34d8140e 100644
--- a/gbp/git.py
+++ b/gbp/git.py
@@ -274,6 +274,30 @@ class GitRepository(object):
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]:
diff --git a/git-buildpackage b/git-buildpackage
index 7b5dca3d..beed984c 100755
--- a/git-buildpackage
+++ b/git-buildpackage
@@ -28,7 +28,7 @@ import tempfile
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)
@@ -539,8 +539,8 @@ def main(argv):
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,
diff --git a/git-import-dsc b/git-import-dsc
index ac197575..782c9ea4 100755
--- a/git-import-dsc
+++ b/git-import-dsc
@@ -83,8 +83,6 @@ def apply_deb_tgz(deb_tgz):
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)
@@ -111,9 +109,11 @@ def apply_debian_patch(repo, unpack_dir, src, options, parents):
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
@@ -211,8 +211,6 @@ def main(argv):
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.")
@@ -284,8 +282,11 @@ def main(argv):
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)
diff --git a/git-import-orig b/git-import-orig
index d9bc077e..0c113714 100755
--- a/git-import-orig
+++ b/git-import-orig
@@ -389,9 +389,11 @@ def main(argv):
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)