]> code.ossystems Code Review - openembedded-core.git/commitdiff
scripts/combo-layer: ensure we validate branch/revision on init
authorPaul Eggleton <paul.eggleton@linux.intel.com>
Thu, 13 Sep 2012 16:23:12 +0000 (17:23 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 14 Sep 2012 08:49:55 +0000 (09:49 +0100)
If both branch and last_revision are specified for a component when
combo-layer init is run, ensure that the specified revision is actually
on the specified branch and error out if not. Also ensure that the error
message mentions the component.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
scripts/combo-layer

index 65435db8c01b517106dfcdfe152183ac84acd2d7..3baea24dee79c8d0a699777f436fbf35fbf7bcd4 100755 (executable)
@@ -183,6 +183,9 @@ def action_init(conf, args):
             lastrev = repo.get('last_revision', None)
             if lastrev and lastrev != "HEAD":
                 initialrev = lastrev
+                if branch:
+                    if not check_rev_branch(name, ldir, lastrev, branch):
+                        sys.exit(1)
                 logger.info("Copying data from %s at specified revision %s..." % (name, lastrev))
             else:
                 lastrev = None
@@ -278,7 +281,7 @@ def drop_to_shell(workdir=None):
     else:
         return True
 
-def check_rev_branch(repodir, rev, branch):
+def check_rev_branch(component, repodir, rev, branch):
     try:
         actualbranch = runcmd("git branch --contains %s" % rev, repodir, printerr=False).rstrip()
     except subprocess.CalledProcessError as e:
@@ -290,10 +293,10 @@ def check_rev_branch(repodir, rev, branch):
     if ' ' in actualbranch:
         actualbranch = actualbranch.split(' ')[-1]
     if not actualbranch:
-        logger.error("Specified revision %s is invalid!" % rev)
+        logger.error("%s: specified revision %s is invalid!" % (component, rev))
         return False
     elif actualbranch != branch:
-        logger.error("Specified revision %s is not on specified branch %s!" % (rev, branch))
+        logger.error("%s: specified revision %s is not on specified branch %s!" % (component, rev, branch))
         return False
     return True
 
@@ -373,7 +376,7 @@ def action_update(conf, args):
             patch_cmd_range = "--root %s" % branch
             rev_cmd_range = branch
         else:
-            if not check_rev_branch(ldir, repo['last_revision'], branch):
+            if not check_rev_branch(name, ldir, repo['last_revision'], branch):
                 sys.exit(1)
             patch_cmd_range = "%s..%s" % (repo['last_revision'], branch)
             rev_cmd_range = patch_cmd_range