diff options
-rw-r--r-- | scripts/lib/devtool/__init__.py | 17 | ||||
-rw-r--r-- | scripts/lib/devtool/standard.py | 13 |
2 files changed, 23 insertions, 7 deletions
diff --git a/scripts/lib/devtool/__init__.py b/scripts/lib/devtool/__init__.py index 07a3636e9b..f815ef27fa 100644 --- a/scripts/lib/devtool/__init__.py +++ b/scripts/lib/devtool/__init__.py | |||
@@ -170,3 +170,20 @@ def use_external_build(same_dir, no_same_dir, d): | |||
170 | else: | 170 | else: |
171 | b_is_s = False | 171 | b_is_s = False |
172 | return b_is_s | 172 | return b_is_s |
173 | |||
174 | def setup_git_repo(repodir, version, devbranch, basetag='devtool-base'): | ||
175 | """ | ||
176 | Set up the git repository for the source tree | ||
177 | """ | ||
178 | import bb.process | ||
179 | if not os.path.exists(os.path.join(repodir, '.git')): | ||
180 | bb.process.run('git init', cwd=repodir) | ||
181 | bb.process.run('git add .', cwd=repodir) | ||
182 | if version: | ||
183 | commitmsg = "Initial commit from upstream at version %s" % version | ||
184 | else: | ||
185 | commitmsg = "Initial commit from upstream" | ||
186 | bb.process.run('git commit -q -m "%s"' % commitmsg, cwd=repodir) | ||
187 | |||
188 | bb.process.run('git checkout -b %s' % devbranch, cwd=repodir) | ||
189 | bb.process.run('git tag -f %s' % basetag, cwd=repodir) | ||
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index ff79c05e39..4a05c1d2e0 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py | |||
@@ -25,7 +25,7 @@ import logging | |||
25 | import argparse | 25 | import argparse |
26 | import scriptutils | 26 | import scriptutils |
27 | import errno | 27 | import errno |
28 | from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, use_external_build, DevtoolError | 28 | from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, use_external_build, setup_git_repo, DevtoolError |
29 | from devtool import parse_recipe | 29 | from devtool import parse_recipe |
30 | 30 | ||
31 | logger = logging.getLogger('devtool') | 31 | logger = logging.getLogger('devtool') |
@@ -102,6 +102,9 @@ def add(args, config, basepath, workspace): | |||
102 | 102 | ||
103 | _add_md5(config, args.recipename, recipefile) | 103 | _add_md5(config, args.recipename, recipefile) |
104 | 104 | ||
105 | if args.fetch and not args.no_git: | ||
106 | setup_git_repo(srctree, args.version, 'devtool') | ||
107 | |||
105 | initial_rev = None | 108 | initial_rev = None |
106 | if os.path.exists(os.path.join(srctree, '.git')): | 109 | if os.path.exists(os.path.join(srctree, '.git')): |
107 | (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree) | 110 | (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree) |
@@ -340,16 +343,11 @@ def _extract_source(srctree, keep_temp, devbranch, d): | |||
340 | "correct source directory could not be " | 343 | "correct source directory could not be " |
341 | "determined" % pn) | 344 | "determined" % pn) |
342 | 345 | ||
343 | if not os.path.exists(os.path.join(srcsubdir, '.git')): | 346 | setup_git_repo(srcsubdir, crd.getVar('PV', True), devbranch) |
344 | bb.process.run('git init', cwd=srcsubdir) | ||
345 | bb.process.run('git add .', cwd=srcsubdir) | ||
346 | bb.process.run('git commit -q -m "Initial commit from upstream at version %s"' % crd.getVar('PV', True), cwd=srcsubdir) | ||
347 | 347 | ||
348 | (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srcsubdir) | 348 | (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srcsubdir) |
349 | initial_rev = stdout.rstrip() | 349 | initial_rev = stdout.rstrip() |
350 | 350 | ||
351 | bb.process.run('git checkout -b %s' % devbranch, cwd=srcsubdir) | ||
352 | bb.process.run('git tag -f devtool-base', cwd=srcsubdir) | ||
353 | crd.setVar('PATCHTOOL', 'git') | 351 | crd.setVar('PATCHTOOL', 'git') |
354 | 352 | ||
355 | logger.info('Patching...') | 353 | logger.info('Patching...') |
@@ -885,6 +883,7 @@ def register_commands(subparsers, context): | |||
885 | group.add_argument('--no-same-dir', help='Force build in a separate build directory', action="store_true") | 883 | group.add_argument('--no-same-dir', help='Force build in a separate build directory', action="store_true") |
886 | parser_add.add_argument('--fetch', '-f', help='Fetch the specified URI and extract it to create the source tree', metavar='URI') | 884 | parser_add.add_argument('--fetch', '-f', help='Fetch the specified URI and extract it to create the source tree', metavar='URI') |
887 | parser_add.add_argument('--version', '-V', help='Version to use within recipe (PV)') | 885 | parser_add.add_argument('--version', '-V', help='Version to use within recipe (PV)') |
886 | parser_add.add_argument('--no-git', '-g', help='If -f/--fetch is specified, do not set up source tree as a git repository', action="store_true") | ||
888 | parser_add.set_defaults(func=add) | 887 | parser_add.set_defaults(func=add) |
889 | 888 | ||
890 | parser_modify = subparsers.add_parser('modify', help='Modify the source for an existing recipe', | 889 | parser_modify = subparsers.add_parser('modify', help='Modify the source for an existing recipe', |