threads / discuss / 22482

Linux Kernel based project in git

Subject: Linux Kernel based project in git

## tl;dr

4 messages between Feb 2, 2010 and Feb 6, 2010.

replies: 3people: 3as markdown or json

git@eisendle.net· Feb 2, 2010, 09:05 UTC · lore
Hi,

I'm rather new to this mailing list so I hope this is the right place for my question :-)

We recently moved one of our projects over from SVN to git. This project is basically a Linux BSP for an ARM9 based processor using Kernel 2.6.22.

For release we always generate 3 patches:
- BSP patch
- USB patch (since USB part is an external patch comming from a 3rd party)
- WiFi patch (same as for USB)

So my question is: What's the best way for handling this inside the git repository?

IMHO it would make sense to have 3 branches (BSP, USB, WiFi) each based on unmodified 2.6.22 Kernel. USB and WiFi branch is used for generating the patch and for applying possible fixes. BSP branch for actual BSP related feature development and fixes. The changes in these branches are merged into the master branch which is used for compiling/testing the whole BSP.

Is this a useful approach or are there other, better ways for generating the three patches and compiling testing the whole thing?

Thanks! Christian.

Avery Pennarun· Feb 2, 2010, 19:53 UTC · re: git@eisendle.net · lore

Re: Linux Kernel based project in git

On Tue, Feb 2, 2010 at 4:05 AM,  <git@eisendle.net> wrote:
Show 14 quoted lines
> For release we always generate 3 patches:
> - BSP patch
> - USB patch (since USB part is an external patch comming from a 3rd party)
> - WiFi patch (same as for USB)
>
> So my question is:
> What's the best way for handling this inside the git repository?
>
> IMHO it would make sense to have 3 branches (BSP, USB, WiFi) each based on
> unmodified 2.6.22 Kernel. USB and WiFi branch is used for generating the
> patch and for applying possible fixes. BSP branch for actual BSP related
> feature development and fixes.
> The changes in these branches are merged into the master branch which is
> used for compiling/testing the whole BSP.

Are you planning to submit these patches upstream at any point? If not, it might be easiest to just jam them all together in one branch and not look back. Since it seems like they probably affect quite different parts of the code, you could always extract a clean set of patches *later* and submit those patches upstream.

But that's just my lazy advice :) The disadvantage to maintaining them in separate branches is that probably none of the three branches will work on its own anyway, since you don't have a physical device that only has the new USB device, or only the new WiFi device, or only needs the BSP but doesn't have updated USB or WiFi. Putting them in separate branches is therefore a bit artificial and won't buy you much.

Have fun,
Avery
Christian Eisendle· Feb 3, 2010, 08:32 UTC · re: Avery Pennarun · lore

Re: Linux Kernel based project in git

Show 22 quoted lines
>> For release we always generate 3 patches:
>> - BSP patch
>> - USB patch (since USB part is an external patch comming from a 3rd
>> party)
>> - WiFi patch (same as for USB)
>>
>> So my question is:
>> What's the best way for handling this inside the git repository?
>>
>> IMHO it would make sense to have 3 branches (BSP, USB, WiFi) each based
>> on
>> unmodified 2.6.22 Kernel. USB and WiFi branch is used for generating the
>> patch and for applying possible fixes. BSP branch for actual BSP related
>> feature development and fixes.
>> The changes in these branches are merged into the master branch which is
>> used for compiling/testing the whole BSP.
>
> Are you planning to submit these patches upstream at any point?  If
> not, it might be easiest to just jam them all together in one branch
> and not look back.  Since it seems like they probably affect quite
> different parts of the code, you could always extract a clean set of
> patches *later* and submit those patches upstream.
For BSP I plan to upstream eventually.

The basic idea was to divide the project in three different patches since USB and WiFi comes from a third party and is not released under GPL (well, different story...) Keeping them in three different branches would make patch creation easier especially if fixes are checked in into the USB/WiFi branch.

Show 8 quoted lines
>
> But that's just my lazy advice :)  The disadvantage to maintaining
> them in separate branches is that probably none of the three branches
> will work on its own anyway, since you don't have a physical device
> that only has the new USB device, or only the new WiFi device, or only
> needs the BSP but doesn't have updated USB or WiFi.  Putting them in
> separate branches is therefore a bit artificial and won't buy you
> much.

At least the BSP could work on its own but for WiFi and USB you are right - it's hard to test them seperately. I just thought that there is a convenient way for handling such kind of project.

Thanks, Christian.

Stephen Kelly· Feb 6, 2010, 11:43 UTC · re: Christian Eisendle · lore

Re: Linux Kernel based project in git

Christian Eisendle wrote:
Show 19 quoted lines
>>> IMHO it would make sense to have 3 branches (BSP, USB, WiFi) each based
>>> on
>>> unmodified 2.6.22 Kernel. USB and WiFi branch is used for generating the
>>> patch and for applying possible fixes. BSP branch for actual BSP related
>>> feature development and fixes.
>>> The changes in these branches are merged into the master branch which is
>>> used for compiling/testing the whole BSP.
>>
>> Are you planning to submit these patches upstream at any point?  If
>> not, it might be easiest to just jam them all together in one branch
>> and not look back.  Since it seems like they probably affect quite
>> different parts of the code, you could always extract a clean set of
>> patches *later* and submit those patches upstream.
> 
> For BSP I plan to upstream eventually.
> 
> The basic idea was to divide the project in three different patches since
> USB and WiFi comes from a third party and is not released under GPL (well,
> different story...)
Do you distribute this kernel?

← back to recent threads