Implemented --commit command line option for remotebuild mode. Fixes #83
authorEd Bartosh <eduard.bartosh@intel.com>
Mon, 25 Jun 2012 15:16:24 +0000 (18:16 +0300)
committerEd Bartosh <eduard.bartosh@intel.com>
Tue, 26 Jun 2012 07:07:43 +0000 (10:07 +0300)
--commit option allows user to specify commit id to build

Change-Id: Iaeebf290b9acb6ac65578c443c5c1a0d9a6351da

gitbuildsys/cmd_remotebuild.py
tools/gbs

index 664d44a8b656d9cc55b41bc03093ca26c55654db..d42eb0e62da37d9aa67c700b04b05f2e89475482 100644 (file)
@@ -31,7 +31,7 @@ import utils
 
 import gbp.rpm
 from gbp.scripts.buildpackage_rpm import main as gbp_build
-from gbp.git import repository
+from gbp.git import repository, GitRepositoryError
 from gbp.errors import GbpError
 
 OSCRC_TEMPLATE = """[general]
@@ -132,13 +132,18 @@ def do(opts, args):
     localpkg.remove_all()
 
     with utils.Workdir(workdir):
+        commit = opts.commit or 'HEAD'
         relative_spec = specfile.replace('%s/' % workdir, '')
-        if gbp_build(["argv[0] placeholder", "--git-export-only",
-                      "--git-ignore-new", "--git-builder=osc",
-                      "--git-export-dir=%s" % oscworkdir,
-                      "--git-packaging-dir=packaging",
-                      "--git-specfile=%s" % relative_spec]):
-            msger.error("Failed to get packaging info from git tree")
+        try:
+            if gbp_build(["argv[0] placeholder", "--git-export-only",
+                          "--git-ignore-new", "--git-builder=osc",
+                          "--git-export-dir=%s" % oscworkdir,
+                          "--git-packaging-dir=packaging",
+                          "--git-specfile=%s" % relative_spec,
+                          "--git-export=%s" % commit]):
+                msger.error("Failed to get packaging info from git tree")
+        except GitRepositoryError, excobj:
+            msger.error("Repository error: %s" % excobj)
 
     localpkg.update_local()
 
index a198ba6405fcfac2660e943c4af8e21c392ebe76..d99c2b7baf3cfe71edcdf450ed782d4f84dbcfe0 100755 (executable)
--- a/tools/gbs
+++ b/tools/gbs
@@ -237,6 +237,10 @@ class Gbs(cmdln.Cmdln):
                   default=None,
                   dest='spec',
                   help='Specify a spec file to use')
+    @cmdln.option('-c', '--commit',
+                  default=None,
+                  dest='commit',
+                  help='Specify a commit to build')
     def do_remotebuild(self, subcmd, opts, *args):
         """${cmd_name}: remote build package