Patchwork [4/7] scripts/combo-layer: make component repo branch configurable

login
register
mail settings
Submitter Paul Eggleton
Date Nov. 4, 2011, 5:55 p.m.
Message ID <9b04ba1eebb16dd3a3c4b941119efbbd3382dc3a.1320429268.git.paul.eggleton@linux.intel.com>
Download mbox | patch
Permalink /patch/14291/
State Accepted
Commit 8e2b8b05607103acd539808c5ab0cc80c0d481fc
Headers show

Comments

Paul Eggleton - Nov. 4, 2011, 5:55 p.m.
Add an optional per-component branch setting to allow specifying the
branch instead of always using master.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
 scripts/combo-layer |   22 ++++++++++++++--------
 1 files changed, 14 insertions(+), 8 deletions(-)

Patch

diff --git a/scripts/combo-layer b/scripts/combo-layer
index e39e4e0..4cb9ee0 100755
--- a/scripts/combo-layer
+++ b/scripts/combo-layer
@@ -108,19 +108,23 @@  def action_init(conf, args):
         if not os.path.exists(ldir):
             logger.info("cloning %s to %s" %(conf.repos[name]['src_uri'], ldir))
             subprocess.check_call("git clone %s %s" % (conf.repos[name]['src_uri'], ldir), shell=True)
+        branch = conf.repos[name].get('branch', "master")
+        runcmd("git checkout %s" % branch, ldir)
     if not os.path.exists(".git"):
         runcmd("git init")
         for name in conf.repos:
-            ldir = conf.repos[name]['local_repo_dir']
+            repo = conf.repos[name]
+            ldir = repo['local_repo_dir']
             logger.info("copying data from %s..." % name)
-            dest_dir = conf.repos[name]['dest_dir']
+            dest_dir = repo['dest_dir']
             if dest_dir and dest_dir != ".":
                 extract_dir = os.path.join(os.getcwd(), dest_dir)
                 os.makedirs(extract_dir)
             else:
                 extract_dir = os.getcwd()
-            file_filter = conf.repos[name].get('file_filter',"")
-            runcmd("git archive master | tar -x -C %s %s" % (extract_dir, file_filter), ldir)
+            branch = repo.get('branch', "master")
+            file_filter = repo.get('file_filter', "")
+            runcmd("git archive %s | tar -x -C %s %s" % (branch, extract_dir, file_filter), ldir)
             lastrev = runcmd("git rev-parse HEAD", ldir).strip()
             conf.update(name, "last_revision", lastrev)
         runcmd("git add .")
@@ -162,9 +166,11 @@  def action_update(conf, args):
         repo = conf.repos[name]
         ldir = repo['local_repo_dir']
         dest_dir = repo['dest_dir']
+        branch = repo.get('branch', "master")
         repo_patch_dir = os.path.join(os.getcwd(), patch_dir, name)
 
         # Step 1: update the component repo
+        runcmd("git checkout %s" % branch, ldir)
         logger.info("git pull for component repo %s in %s ..." % (name, ldir))
         output=runcmd("git pull", ldir)
         logger.info(output)
@@ -177,11 +183,11 @@  def action_update(conf, args):
             prefix = ""
         if repo['last_revision'] == "":
             logger.info("Warning: last_revision of component %s is not set, so start from the first commit" % name)
-            patch_cmd_range = "--root master"
-            rev_cmd_range = "master"
+            patch_cmd_range = "--root %s" % branch
+            rev_cmd_range = branch
         else:
-            patch_cmd_range = "%s..master" % repo['last_revision']
-            rev_cmd_range = "%s..master" % repo['last_revision']
+            patch_cmd_range = "%s..%s" % (repo['last_revision'], branch)
+            rev_cmd_range = patch_cmd_range
 
         file_filter = repo.get('file_filter',"")