summaryrefslogtreecommitdiffstats
path: root/scripts/lib/devtool/sdk.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lib/devtool/sdk.py')
-rw-r--r--scripts/lib/devtool/sdk.py10
1 files changed, 8 insertions, 2 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: