From patchwork Thu Sep 13 16:23:11 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [1/2] scripts/combo-layer: use last_revision if specified in init Date: Thu, 13 Sep 2012 16:23:11 -0000 From: Paul Eggleton X-Patchwork-Id: 36487 Message-Id: To: openembedded-core@lists.openembedded.org 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 --- scripts/combo-layer | 20 +++++++++++++------- 1 file 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