aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>2017-03-23 15:11:56 +0200
committerMarkus Lehtonen <markus.lehtonen@linux.intel.com>2017-03-24 09:46:13 +0200
commit40c688684c59ea109ad7da3f69fc2cfa4d916ba6 (patch)
tree55fa95b3b89af38447d734456cdfbb816109ee1a
parent1ef94ca0b8778b2152ce2c1dc7c4e802c8722291 (diff)
downloadopenembedded-core-contrib-40c688684c59ea109ad7da3f69fc2cfa4d916ba6.tar.gz
openembedded-core-contrib-40c688684c59ea109ad7da3f69fc2cfa4d916ba6.tar.bz2
openembedded-core-contrib-40c688684c59ea109ad7da3f69fc2cfa4d916ba6.zip
scripts/oe-git-archive: implement --notes
Option for adding git-notes to the commit. [YOCTO #10582] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
-rwxr-xr-xscripts/oe-git-archive21
1 files changed, 18 insertions, 3 deletions
diff --git a/scripts/oe-git-archive b/scripts/oe-git-archive
index 1805ab3260f..ab19cb9aa37 100755
--- a/scripts/oe-git-archive
+++ b/scripts/oe-git-archive
@@ -83,7 +83,7 @@ def init_git_repo(path, no_create, bare):
return repo
-def git_commit_data(repo, data_dir, branch, message, exclude):
+def git_commit_data(repo, data_dir, branch, message, exclude, notes):
"""Commit data into a Git repository"""
log.info("Committing data into to branch %s", branch)
tmp_index = os.path.join(repo.git_dir, 'index.oe-git-archive')
@@ -106,6 +106,12 @@ def git_commit_data(repo, data_dir, branch, message, exclude):
git_cmd += ['-p', parent]
commit = repo.run_cmd(git_cmd, env_update)
+ # Create git notes
+ for ref, filename in notes:
+ ref = ref.format(branch_name=branch)
+ repo.run_cmd(['notes', '--ref', ref, 'add',
+ '-F', os.path.abspath(filename), commit])
+
# Update branch head
git_cmd = ['update-ref', 'refs/heads/' + branch, commit]
if parent:
@@ -191,6 +197,13 @@ def parse_args(argv):
parser.add_argument('--exclude', action='append', default=[],
help="Glob to exclude files from the commit. Relative "
"to DATA_DIR. May be specified multiple times")
+ parser.add_argument('--notes', nargs=2, action='append', default=[],
+ metavar=('GIT_REF', 'FILE'),
+ help="Add a file as a note under refs/notes/GIT_REF. "
+ "{branch_name} in GIT_REF will be expanded to the "
+ "actual target branch name (specified by "
+ "--branch-name). This option may be specified "
+ "multiple times.")
parser.add_argument('data_dir', metavar='DATA_DIR',
help="Data to commit")
return parser.parse_args(argv)
@@ -229,7 +242,7 @@ def main(argv=None):
# Commit data
commit = git_commit_data(data_repo, args.data_dir, branch_name,
- commit_msg, args.exclude)
+ commit_msg, args.exclude, args.notes)
# Create tag
if tag_name:
@@ -242,7 +255,9 @@ def main(argv=None):
# If no remote is given we push with the default settings from
# gitconfig
if args.push is not True:
- cmd.extend([args.push, branch_name])
+ notes_refs = ['refs/notes/' + ref.format(branch_name=branch_name)
+ for ref, _ in args.notes]
+ cmd.extend([args.push, branch_name] + notes_refs)
log.info("Pushing data to remote")
data_repo.run_cmd(cmd)