From 7f580d9da449b13b6bb3c6aaf6f35eba05a35c7e Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Fri, 1 Jun 2012 23:09:42 +0200 Subject: git-buildpackage: allow to build packages from detached HEAD state with --git-ignore-branch. Closes: #661598 --- gbp/scripts/buildpackage.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/gbp/scripts/buildpackage.py b/gbp/scripts/buildpackage.py index 2a3a0928..91a13bb5 100755 --- a/gbp/scripts/buildpackage.py +++ b/gbp/scripts/buildpackage.py @@ -448,6 +448,7 @@ def main(argv): retval = 0 prefix = "git-" cp = None + branch = None options, gbp_args, dpkg_args = parse_args(argv, prefix) @@ -463,7 +464,6 @@ def main(argv): repo_dir = os.path.abspath(os.path.curdir) try: - branch = repo.get_branch() Command(options.cleaner, shell=True)() if not options.ignore_new: (ret, out) = repo.is_clean() @@ -472,6 +472,13 @@ def main(argv): gbp.log.err(out) raise GbpError, "Use --git-ignore-new to ignore." + try: + branch = repo.get_branch() + except GitRepositoryError: + # Not being on any branch is o.k. with --git-ignore-branch + if not options.ignore_branch: + raise + if not options.ignore_new and not options.ignore_branch: if branch != options.debian_branch: gbp.log.err("You are not on branch '%s' but on '%s'" % (options.debian_branch, branch)) @@ -529,7 +536,7 @@ def main(argv): setup_pbuilder(options) # Finally build the package: - RunAtCommand(options.builder, dpkg_args, shell=True, + RunAtCommand(options.builder, dpkg_args, shell=True, extra_env={'GBP_BUILD_DIR': build_dir})(dir=build_dir) if options.postbuild: arch = os.getenv('ARCH', None) or du.get_arch() @@ -553,7 +560,7 @@ def main(argv): sha = repo.rev_parse("%s^{}" % tag) Command(options.posttag, shell=True, extra_env={'GBP_TAG': tag, - 'GBP_BRANCH': branch, + 'GBP_BRANCH': branch or '(no branch)', 'GBP_SHA1': sha})() except CommandExecFailed: retval = 1 -- cgit v1.2.3