diff options
| author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2012-07-31 01:06:25 +0100 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-07-31 08:02:11 +0100 |
| commit | 6bea86370491ec1b98975eed8e0003c234a2048f (patch) | |
| tree | 1f7fe8bf7153fd88bb41c43431648348a7dd127b /scripts/combo-layer | |
| parent | 8140c5b7ee1e9a6fb8860ff9e2f9d88ccff48ee6 (diff) | |
| download | poky-6bea86370491ec1b98975eed8e0003c234a2048f.tar.gz | |
combo-layer: check that last_revision is valid
If the user edits the configuration file by hand and sets last_revision,
we need to ensure that the revision is valid and on the specified
branch.
(From OE-Core rev: 05382932257257247b8c18bc06e9c0039d134d06)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/combo-layer')
| -rwxr-xr-x | scripts/combo-layer | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/scripts/combo-layer b/scripts/combo-layer index 40e63b9ede..95653b0c21 100755 --- a/scripts/combo-layer +++ b/scripts/combo-layer | |||
| @@ -197,6 +197,25 @@ def drop_to_shell(workdir=None): | |||
| 197 | else: | 197 | else: |
| 198 | return True | 198 | return True |
| 199 | 199 | ||
| 200 | def check_rev_branch(repodir, rev, branch): | ||
| 201 | try: | ||
| 202 | actualbranch = runcmd("git branch --contains %s" % rev, repodir, printerr=False).rstrip() | ||
| 203 | except subprocess.CalledProcessError as e: | ||
| 204 | if e.returncode == 129: | ||
| 205 | actualbranch = "" | ||
| 206 | else: | ||
| 207 | raise | ||
| 208 | |||
| 209 | if ' ' in actualbranch: | ||
| 210 | actualbranch = actualbranch.split(' ')[-1] | ||
| 211 | if not actualbranch: | ||
| 212 | logger.error("Specified revision %s is invalid!" % rev) | ||
| 213 | return False | ||
| 214 | elif actualbranch != branch: | ||
| 215 | logger.error("Specified revision %s is not on specified branch %s!" % (rev, branch)) | ||
| 216 | return False | ||
| 217 | return True | ||
| 218 | |||
| 200 | def get_repos(conf, args): | 219 | def get_repos(conf, args): |
| 201 | repos = [] | 220 | repos = [] |
| 202 | if len(args) > 1: | 221 | if len(args) > 1: |
| @@ -273,6 +292,8 @@ def action_update(conf, args): | |||
| 273 | patch_cmd_range = "--root %s" % branch | 292 | patch_cmd_range = "--root %s" % branch |
| 274 | rev_cmd_range = branch | 293 | rev_cmd_range = branch |
| 275 | else: | 294 | else: |
| 295 | if not check_rev_branch(ldir, repo['last_revision'], branch): | ||
| 296 | sys.exit(1) | ||
| 276 | patch_cmd_range = "%s..%s" % (repo['last_revision'], branch) | 297 | patch_cmd_range = "%s..%s" % (repo['last_revision'], branch) |
| 277 | rev_cmd_range = patch_cmd_range | 298 | rev_cmd_range = patch_cmd_range |
| 278 | 299 | ||
