summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorStephano Cetola <stephano.cetola@linux.intel.com>2016-04-15 09:40:29 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-04-18 16:28:22 +0100
commitdee47ad159512e377ff588153e39b555b9ce599b (patch)
tree9452a80654669e4e90bda39060f5e5870d6b3fd2 /scripts
parent396e64d58e5f84bd30cedc5552b3c9ed61aa4840 (diff)
downloadpoky-dee47ad159512e377ff588153e39b555b9ce599b.tar.gz
devtool: sdk-update: reset git metadata on update
Replace git pull with fetch and reset to avoid the merge logic in the event that the layers repo in the published SDK we're updating to isn't fast-forward merge from the local repo. Also add gitignore and committer info during publish to avoid errors and to be sure that the first commit has a dummy user in it. [ YOCTO #9368 ] (From OE-Core rev: 4657bc9d165e51981e034e73e7b92552e873eef7) Signed-off-by: Stephano Cetola <stephano.cetola@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/lib/devtool/sdk.py10
-rwxr-xr-xscripts/oe-publish-sdk4
2 files changed, 10 insertions, 4 deletions
diff --git a/scripts/lib/devtool/sdk.py b/scripts/lib/devtool/sdk.py
index b1905f9863..a22841d789 100644
--- a/scripts/lib/devtool/sdk.py
+++ b/scripts/lib/devtool/sdk.py
@@ -186,9 +186,15 @@ def sdk_update(args, config, basepath, workspace):
186 return 0 186 return 0
187 # Update metadata 187 # Update metadata
188 logger.debug("Updating metadata via git ...") 188 logger.debug("Updating metadata via git ...")
189 # Try using 'git pull', if failed, use 'git clone' 189 #Check for the status before doing a fetch and reset
190 if os.path.exists(os.path.join(basepath, 'layers/.git')): 190 if os.path.exists(os.path.join(basepath, 'layers/.git')):
191 ret = subprocess.call("git pull %s/layers/.git" % updateserver, shell=True, cwd=layers_dir) 191 out = subprocess.check_output("git status --porcelain", shell=True, cwd=layers_dir)
192 if not out:
193 ret = subprocess.call("git fetch --all; git reset --hard", shell=True, cwd=layers_dir)
194 else:
195 logger.error("Failed to update metadata as there have been changes made to it. Aborting.");
196 logger.error("Changed files:\n%s" % out);
197 return -1
192 else: 198 else:
193 ret = -1 199 ret = -1
194 if ret != 0: 200 if ret != 0:
diff --git a/scripts/oe-publish-sdk b/scripts/oe-publish-sdk
index e6cb7af861..55872f2f93 100755
--- a/scripts/oe-publish-sdk
+++ b/scripts/oe-publish-sdk
@@ -114,9 +114,9 @@ def publish(args):
114 114
115 # Setting up the git repo 115 # Setting up the git repo
116 if not is_remote: 116 if not is_remote:
117 cmd = 'set -e; mkdir -p %s/layers; cd %s/layers; if [ ! -e .git ]; then git init .; mv .git/hooks/post-update.sample .git/hooks/post-update; fi; git add -A .; git commit -q -m "init repo" || true; git update-server-info' % (destination, destination) 117 cmd = 'set -e; mkdir -p %s/layers; cd %s/layers; if [ ! -e .git ]; then git init .; mv .git/hooks/post-update.sample .git/hooks/post-update; echo "*.pyc\n*.pyo" > .gitignore; fi; git add -A .; git config user.email "oe@oe.oe" && git config user.name "OE" && git commit -q -m "init repo" || true; git update-server-info' % (destination, destination)
118 else: 118 else:
119 cmd = "ssh %s 'set -e; mkdir -p %s/layers; cd %s/layers; if [ ! -e .git ]; then git init .; mv .git/hooks/post-update.sample .git/hooks/post-update; fi; git add -A .; git commit -q -m \"init repo\" || true; git update-server-info'" % (host, destdir, destdir) 119 cmd = "ssh %s 'set -e; mkdir -p %s/layers; cd %s/layers; if [ ! -e .git ]; then git init .; mv .git/hooks/post-update.sample .git/hooks/post-update; echo '*.pyc\n*.pyo' > .gitignore; fi; git add -A .; git config user.email 'oe@oe.oe' && git config user.name 'OE' && git commit -q -m \"init repo\" || true; git update-server-info'" % (host, destdir, destdir)
120 ret = subprocess.call(cmd, shell=True) 120 ret = subprocess.call(cmd, shell=True)
121 if ret == 0: 121 if ret == 0:
122 logger.info('SDK published successfully') 122 logger.info('SDK published successfully')