summaryrefslogtreecommitdiff
path: root/scripts/combo-layer
diff options
context:
space:
mode:
authorPatrick Ohly <patrick.ohly@intel.com>2015-03-12 16:45:34 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-03-20 11:03:09 +0000
commit220d816cda3c9b8d888288cc03eb74be5e71cc59 (patch)
tree7effd2755ac6c310b257dfa9e29fea6b88817614 /scripts/combo-layer
parent9e40cb1ab77029df7f2cf1e548a645ff6a62c919 (diff)
downloadopenembedded-core-220d816cda3c9b8d888288cc03eb74be5e71cc59.tar.gz
openembedded-core-220d816cda3c9b8d888288cc03eb74be5e71cc59.tar.bz2
openembedded-core-220d816cda3c9b8d888288cc03eb74be5e71cc59.zip
combo-layer: combine trees via replacement objects
Instead of local graft entries rooting the imported branches in the shared root commit, use replacement objects. The advantage is that they get moved around by "git push" and "git fetch", so everyone has the same, nicer view with everything starting at the beginning of the combined repository. If undesired, these objects can be removed with "git replace". Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'scripts/combo-layer')
-rwxr-xr-xscripts/combo-layer16
1 files changed, 8 insertions, 8 deletions
diff --git a/scripts/combo-layer b/scripts/combo-layer
index d11274e245..6d24ce3ee1 100755
--- a/scripts/combo-layer
+++ b/scripts/combo-layer
@@ -354,14 +354,14 @@ file_exclude = %s''' % (name, file_filter or '<empty>', repo.get('file_exclude',
# Create Octopus merge commit according to http://stackoverflow.com/questions/10874149/git-octopus-merge-with-unrelated-repositoies
runcmd('git checkout master')
merge = ['git', 'merge', '--no-commit']
- with open('.git/info/grafts', 'w') as grafts:
- grafts.write('%s\n' % startrev)
- for name in conf.repos:
- repo = conf.repos[name]
- # Use branch created earlier.
- merge.append(name)
- for start in runcmd('git log --pretty=format:%%H --max-parents=0 %s' % name).split('\n'):
- grafts.write('%s %s\n' % (start, startrev))
+ for name in conf.repos:
+ repo = conf.repos[name]
+ # Use branch created earlier.
+ merge.append(name)
+ # Root all commits which have no parent in the common
+ # ancestor in the new repository.
+ for start in runcmd('git log --pretty=format:%%H --max-parents=0 %s' % name).split('\n'):
+ runcmd('git replace --graft %s %s' % (start, startrev))
try:
runcmd(merge)
except Exception, error: