combo-layer: implement --hard-reset option

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.

(From OE-Core rev: c908a423f85a84ddd8249abd00254f29d47df74b)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Markus Lehtonen 2015-07-08 13:59:49 +03:00 committed by Richard Purdie
parent d1a1dbb8a5
commit b0079ec5e9
1 changed files with 12 additions and 3 deletions

View File

@ -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)