[OE-core] [PATCH 1/1] combo-layer-tool: add tool to manipulate combo layers

Koen Kooi koen at dominion.thruhere.net
Thu Jul 28 13:15:55 UTC 2011


Op 28 jul. 2011, om 15:00 heeft Paul Eggleton het volgende geschreven:

> On Thursday 28 July 2011 13:11:00 Koen Kooi wrote:
>> I've been playing with this script and I have a few remarks about it. First
>> the ones that aren't the fault of the script:
>> 
>> 1) overlapping files like .gitignore breaks the script
> 
> This can be a problem, yes. However if you know about these sorts of conflicts 
> ahead of time you can mitigate them by adding the appropriate logic to a hook 
> script (which can filter out stuff from the patches as they pass through).

Is that a hook in git or the combo script?

> 
>> 2) git format-patch | git am is a lossy process, so you can't import
>> oe-core and bitbake from scratch:
>> 
>> 	[14:08:48] Apply
>> /Users/koen/Projects/Angstrom/setup-scripts/sources/combo-layer/patch-d99a
>> aa2f-57f3-4c07-aac3-afc0538cae88/bitbake/0020-codeparser.py-Ignore-incomple
>> te-cache-files.patch [14:08:48] Applying: codeparser.py: Ignore incomplete
>> cache files error: patch failed: bitbake/lib/bb/codeparser.py:75
>> 	error: bitbake/lib/bb/codeparser.py: patch does not apply
>> 	Patch failed at 0001 codeparser.py: Ignore incomplete cache files
>> 	When you have resolved this problem run "git am --resolved".
>> 	If you would prefer to skip this patch, instead run "git am --skip".
>> 	To restore the original branch and stop patching run "git am --abort".
> 
> Perhaps I'm being thick, but what's the reason for this failing?

I don't know, I had a number of strange failures, which I blame the format-patch | am construct for. Git sucks for non-Linus workflows, we just have to live with that.

>> 3) rotating disks are slow when trying to apply a few thousand patches
> 
> I think this is kind of the fault of the script in that it's the default 
> behaviour - frankly I never expected anyone to use combo-layer to build a 
> combined repo from scratch dragging across the entire history. Ideally you 
> would begin from an existing repository that you had manually combined 
> together, and combo-layer is the way of keeping it up-to-date after that 
> point. We could easily automate the initial creation within the script if 
> people think it's useful - I did think about doing that but I figured it's not 
> something you expect to do very often.

With my distro maintainer hat on, I wouldn't use a combined repo for my day-to-day development setup, but I would hand it to my downstream users. The use-case I was trying to use it for is to create a git snapshot for a release where everything is in one place.

The current result: https://github.com/koenkooi/Angstrom-integration-layer

It is missing the angstrom buildscripts and config files, but it's a start.

Phil mentioned subtree, which is also worth looking at:

https://github.com/apenwarr/git-subtree

regards,

Koen



> 
>> As for the script I only have one real complaint: The inability to set
>> branches so you can make a combo layer based on non-master (e.g. release)
>> branches.
> 
> Agreed, this is an omission, shouldn't be too difficult to fix though. It's on my 
> todo list, feel free to submit a patch if you want it fixed faster ;)
> 
> Cheers,
> Paul
> 
> -- 
> 
> Paul Eggleton
> Intel Open Source Technology Centre





More information about the Openembedded-core mailing list