From 14eac2a474f5fb347312b7257cc385d495a06c2d Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Thu, 12 Mar 2015 16:45:34 +0100 Subject: 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". (From OE-Core rev: 220d816cda3c9b8d888288cc03eb74be5e71cc59) Signed-off-by: Patrick Ohly Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- scripts/combo-layer | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'scripts/combo-layer') 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 '', 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: -- cgit v1.2.3-54-g00ecf