diff options
Diffstat (limited to 'scripts/lib')
-rw-r--r-- | scripts/lib/devtool/sdk.py | 10 |
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: |