[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