]> code.ossystems Code Review - openembedded-core.git/commitdiff
combo-layer: implement --hard-reset option
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Wed, 8 Jul 2015 10:59:49 +0000 (13:59 +0300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 16 Jul 2015 14:08:41 +0000 (15:08 +0100)
This option causes combo-layer to do git fetch and hard reset instead of
git pull in the component repositories. This makes sure that the local
component repositories are always in sync with the remote - tolerating
force pushes and overriding any locally made changes.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
scripts/combo-layer

index 8637addc8e14d44fc42ba160d2dd742d578423a9..6b0c56d37e2c189fed12618834042a30282834ba 100755 (executable)
@@ -586,9 +586,14 @@ def action_pull(conf, args):
         ldir = repo['local_repo_dir']
         branch = repo.get('branch', "master")
         runcmd("git checkout %s" % branch, ldir)
-        logger.info("git pull for component repo %s in %s ..." % (name, ldir))
-        output=runcmd("git pull --ff-only", ldir)
-        logger.info(output)
+        logger.info("update component repo %s in %s ..." % (name, ldir))
+        if not args.hard_reset:
+            output=runcmd("git pull --ff-only", ldir)
+            logger.info(output)
+        else:
+            output=runcmd("git fetch", ldir)
+            logger.info(output)
+            runcmd("git reset --hard FETCH_HEAD", ldir)
 
 def action_update(conf, args):
     """
@@ -895,6 +900,10 @@ Action:
     parser.add_option("-n", "--no-pull", help = "skip pulling component repos during update",
                action = "store_true", dest = "nopull", default = False)
 
+    parser.add_option("--hard-reset",
+               help = "instead of pull do fetch and hard-reset in component repos",
+               action = "store_true", default = False)
+
     parser.add_option("-H", "--history", help = "import full history of components during init",
                       action = "store_true", default = False)