[oe-commits] Paul Eggleton : scripts/combo-layer: use last_revision if specified in init

git at git.openembedded.org git at git.openembedded.org
Fri Sep 14 08:57:06 UTC 2012


Module: openembedded-core.git
Branch: master
Commit: ff8277cd133e9a02b131977078cff61fa587a1af
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=ff8277cd133e9a02b131977078cff61fa587a1af

Author: Paul Eggleton <paul.eggleton at linux.intel.com>
Date:   Thu Sep 13 17:23:11 2012 +0100

scripts/combo-layer: use last_revision if specified in init

If last_revision is specified for a component when running combo-layer
init, then use that revision instead of the latest revision on the
branch. Also, remove unnecessary git checkout during init since we
specify the revision to all calls to git when dealing with the component
repositories.

Fixes [YOCTO #3040].

Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
Signed-off-by: Saul Wold <sgw at linux.intel.com>

---

 scripts/combo-layer |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/scripts/combo-layer b/scripts/combo-layer
index 330faca..65435db 100755
--- a/scripts/combo-layer
+++ b/scripts/combo-layer
@@ -174,25 +174,31 @@ 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:
             repo = conf.repos[name]
             ldir = repo['local_repo_dir']
-            logger.info("copying data from %s..." % name)
+            branch = repo.get('branch', "master")
+            lastrev = repo.get('last_revision', None)
+            if lastrev and lastrev != "HEAD":
+                initialrev = lastrev
+                logger.info("Copying data from %s at specified revision %s..." % (name, lastrev))
+            else:
+                lastrev = None
+                initialrev = branch
+                logger.info("Copying data from %s..." % name)
             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()
-            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 %s" % branch, ldir).strip()
-            conf.update(name, "last_revision", lastrev, initmode=True)
+            runcmd("git archive %s | tar -x -C %s %s" % (initialrev, extract_dir, file_filter), ldir)
+            if not lastrev:
+                lastrev = runcmd("git rev-parse %s" % initialrev, ldir).strip()
+                conf.update(name, "last_revision", lastrev, initmode=True)
         runcmd("git add .")
         if conf.localconffile:
             localadded = True





More information about the Openembedded-commits mailing list