scripts/combo-layer: make init set up initial component data
The "init" subcommand will now copy the current state of each component repository into the combo layer repository, set last_revision for each component, and then use "git add" to set up the initial commit (but will not actually make the initial commit - that is left up to the user). Also take the opportunity to bump the version number. (From OE-Core rev: d4d491aa118b6cbe895167c62a46d883abc7b4ab) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
2293acaa7f
commit
fd471a1337
|
@ -26,7 +26,7 @@ import logging
|
||||||
import subprocess
|
import subprocess
|
||||||
import ConfigParser
|
import ConfigParser
|
||||||
|
|
||||||
__version__ = "0.1.0"
|
__version__ = "0.2.0"
|
||||||
|
|
||||||
def logger_create():
|
def logger_create():
|
||||||
logger = logging.getLogger("")
|
logger = logging.getLogger("")
|
||||||
|
@ -146,7 +146,7 @@ def runcmd(cmd,destdir=None):
|
||||||
def action_init(conf, args):
|
def action_init(conf, args):
|
||||||
"""
|
"""
|
||||||
Clone component repositories
|
Clone component repositories
|
||||||
Check git initialised and working tree is clean
|
Check git is initialised; if not, copy initial data from component repos
|
||||||
"""
|
"""
|
||||||
for name in conf.repos:
|
for name in conf.repos:
|
||||||
ldir = conf.repos[name]['local_repo_dir']
|
ldir = conf.repos[name]['local_repo_dir']
|
||||||
|
@ -155,6 +155,24 @@ def action_init(conf, args):
|
||||||
subprocess.check_call("git clone %s %s" % (conf.repos[name]['src_uri'], ldir), shell=True)
|
subprocess.check_call("git clone %s %s" % (conf.repos[name]['src_uri'], ldir), shell=True)
|
||||||
if not os.path.exists(".git"):
|
if not os.path.exists(".git"):
|
||||||
runcmd("git init")
|
runcmd("git init")
|
||||||
|
for name in conf.repos:
|
||||||
|
ldir = conf.repos[name]['local_repo_dir']
|
||||||
|
logger.info("copying data from %s..." % name)
|
||||||
|
dest_dir = conf.repos[name]['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()
|
||||||
|
file_filter = conf.repos[name].get('file_filter',"")
|
||||||
|
runcmd("git archive master | tar -x -C %s %s" % (extract_dir, file_filter), ldir)
|
||||||
|
lastrev = runcmd("git rev-parse HEAD", ldir).strip()
|
||||||
|
conf.update(name, "last_revision", lastrev)
|
||||||
|
runcmd("git add .")
|
||||||
|
logger.info("Initial combo layer repository data has been created; please make any changes if desired and then use 'git commit' to make the initial commit.")
|
||||||
|
else:
|
||||||
|
logger.info("Repository already initialised, nothing to do.")
|
||||||
|
|
||||||
|
|
||||||
def check_repo_clean(repodir):
|
def check_repo_clean(repodir):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -11,8 +11,9 @@ local_repo_dir = /home/kyu3/src/test/bitbake
|
||||||
# use "." if it is root dir
|
# use "." if it is root dir
|
||||||
dest_dir = bitbake
|
dest_dir = bitbake
|
||||||
|
|
||||||
# the updated revision last time.
|
# the last update revision.
|
||||||
# If empty, the tool will start from the first commit
|
# "init" will set this automatically, however if it is empty when "update"
|
||||||
|
# is run, the tool will start from the first commit.
|
||||||
last_revision =
|
last_revision =
|
||||||
|
|
||||||
# optional options
|
# optional options
|
||||||
|
|
Loading…
Reference in New Issue