devtool: modify: get correct initial revision from previously extracted source tree

If you point devtool modify to a source tree previously created by
devtool modify or devtool extract, then we need to try to pick up the
correct initial revision so that devtool update-recipe knows where to
start looking for commits that match up with patches in the recipe.

(From OE-Core rev: c20e10543e268ebb43074a3f8d6e7ed991e54ec8)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton
2015-03-04 13:20:37 +00:00
committed by Richard Purdie
parent 9adae67e71
commit 221705f014

View File

@@ -326,8 +326,19 @@ def modify(args, config, basepath, workspace):
commits = stdout.split()
else:
if os.path.exists(os.path.join(args.srctree, '.git')):
(stdout, _) = bb.process.run('git rev-parse HEAD', cwd=args.srctree)
initial_rev = stdout.rstrip()
# Check if it's a tree previously extracted by us
try:
(stdout, _) = bb.process.run('git branch --contains devtool-base', cwd=args.srctree)
except bb.process.ExecutionError:
stdout = ''
for line in stdout.splitlines():
if line.startswith('*'):
(stdout, _) = bb.process.run('git rev-parse devtool-base', cwd=args.srctree)
initial_rev = stdout.rstrip()
if not initial_rev:
# Otherwise, just grab the head revision
(stdout, _) = bb.process.run('git rev-parse HEAD', cwd=args.srctree)
initial_rev = stdout.rstrip()
# Check that recipe isn't using a shared workdir
s = rd.getVar('S', True)