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