From: Guido Günther Date: Mon, 23 Feb 2009 15:37:54 +0000 (+0100) Subject: Add --export=WC to export the working copy into export-dir. X-Git-Tag: debian/0.4.48~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ae575e3067fa448858835360386503168b3bf5d8;p=tools%2Fgit-buildpackage.git Add --export=WC to export the working copy into export-dir. Closes: #509138 --- diff --git a/docs/chapters/building.sgml b/docs/chapters/building.sgml index e81a48e8..4b590988 100644 --- a/docs/chapters/building.sgml +++ b/docs/chapters/building.sgml @@ -46,10 +46,12 @@ &git-buildpackage; =../build-area =etch &git-buildpackage; =../build-area =8caed309653d69b7ab440e3d35abc090eb4c6697 &git-buildpackage; =../build-area =INDEX +&git-buildpackage; =../build-area =WC The special argument INDEX exports the - state of the current index which can be used to include staged but - uncommitted changes in the build. + state of the current index which can be used to include staged but uncommitted + changes in the build. Whereas the special argument + WC exports the current working copy as is. If you want to default to build in a separate build area you can specify the directory to use in the gbp.conf. diff --git a/docs/manpages/git-buildpackage.sgml b/docs/manpages/git-buildpackage.sgml index d4e8936a..8ee48b07 100644 --- a/docs/manpages/git-buildpackage.sgml +++ b/docs/manpages/git-buildpackage.sgml @@ -189,7 +189,9 @@ Instead of exporting the current branch head, export the treeish object treeish. The special name - INDEX exports the current index. + INDEX exports the current index whereas + the special name WC exports the current working + copy as is. diff --git a/git-buildpackage b/git-buildpackage index b3e3bb24..57a2a931 100755 --- a/git-buildpackage +++ b/git-buildpackage @@ -25,13 +25,15 @@ import pipes import time import gbp.deb_utils as du from gbp.git_utils import (GitRepositoryError, GitRepository, build_tag) -from gbp.command_wrappers import (GitTag, Command, RunAtCommand, CommandExecFailed, - PristineTar, RemoveTree) +from gbp.command_wrappers import (GitTag, Command, RunAtCommand, CommandExecFailed, + PristineTar, RemoveTree, GitAdd) from gbp.config import (GbpOptionParser, GbpOptionGroup) from gbp.errors import GbpError # when we want to reference the index in a treeish context we call it: index_name = "INDEX" +# when we want to reference the working copy in treeish context we call it: +wc_name = "WC" def git_archive_pipe(prefix, pipe, output, treeish): """run the git_archive pipe""" @@ -106,6 +108,7 @@ def pristine_tar_build_orig(repo, cp, output_dir, options): else: return False + def git_archive_build_orig(repo, cp, output_dir, options): """build orig using git-archive""" # --upstream-branch was given on the command line, so use this: @@ -122,6 +125,17 @@ def git_archive_build_orig(repo, cp, output_dir, options): if not git_archive(cp, output_dir, upstream_tree): raise GbpError, "Cannot create upstream tarball at '%s'" % output_dir + +def write_wc(repo): + """write out the current working copy as a treeish object""" + tree = None + os.putenv("GIT_INDEX_FILE", ".git/gbp_index") + GitAdd()(['-f', '.']) + tree = repo.write_tree() + os.unsetenv("GIT_INDEX_FILE") + return tree + + def main(argv): changelog = 'debian/changelog' default_tree = 'HEAD' @@ -226,6 +240,8 @@ def main(argv): # write a tree of the index if necessary: if options.treeish == index_name: tree = repo.write_tree() + elif options.treeish == wc_name: + tree = write_wc(repo) else: tree = options.treeish if not repo.has_treeish(tree):