git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: Embedded Linux development with GIT
@ 2007-07-05 12:31 linux
  0 siblings, 0 replies; 6+ messages in thread
From: linux @ 2007-07-05 12:31 UTC (permalink / raw)
  To: svk.sweng; +Cc: git

> Is it possible then to see our 400 odd commits then in the Local
> branch on top of 2.6.17 so that we can see not only our history but
> also the history that came before?  Then as Master advances we can see
> about backporting and bringing our code close enough to mainline
> kernel to actually be able to contribute back to the community and
> submit patches.  Is this realistic approach.  I am unsure of the GIT
> commands that I need to do this?

Yes.  There are two ways to do this:

1) Use the grafts feature.  You can put a line in your repository's
   .git/info/grafts which lists your initial commit and the ancestors you
   want it to have.
   E.g. note that Linus's v2.6.17 is 427abfa28afedffadfca9dd8b067eb6d36bac53f, with
   parent ce221982e0bef039d7047b0f667bb414efece5af.  So you can just include
   <your initial checkin> ce221982e0bef039d7047b0f667bb414efece5af
   in git/info/grafts, and boom.

   The advantage is that you don't have to change anything.

   The disadvantge here is that this is NOT automatically propagated
   by pull operations (it would be a security breach if it were), so
   everyone pulling from you has to do the same thing manually.
   (If you're only sending out patches, it doesn't matter as much.)

2) Rebase your changes.

   Import a standard Linux kernel into the repository, and rebase your
   changes from your original root import onto Linus' 2.6.17.

   The advantage here is that the commit IDs will be preserved when you
   share your changes, so if you have your changes pulled into the kernel
   mainline, it'll be easier to merge them and for you to merge back.

   The disadvantage is that everyone who has cloned from you has to manually
   re-fetch once.

Basically, option 1 has less immediate pain, but has an ongoing cost.
Option 2 gets it out of the way all at once.

^ permalink raw reply	[flat|nested] 6+ messages in thread
* Embedded Linux development with GIT
@ 2007-07-05  5:50 Sean Kelley
  2007-07-05  6:06 ` Dan Chokola
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Sean Kelley @ 2007-07-05  5:50 UTC (permalink / raw)
  To: git

Hi,

I have a situation where we have a local GIT repository that is based
on v2.6.17.  We initially added the source tarball to an empty
repository and then started applying changes to it.  Looking back,
that might not have been the best idea 400 commits later.

My goal is to eventually bring our repository closer to mainline
revisions so as to make it easier to actually contribute back to the
community.  So how can I fix my repository so as to give it visibility
to Linus' kernel?

Here is my initial thoughts:

1) Clone kernel.org kernel and it is Master
2) Create a local Head based on 2.6.17 and call it Local
3) Pull my existing heavily patched repository into the Local branch and merge

Is it possible then to see our 400 odd commits then in the Local
branch on top of 2.6.17 so that we can see not only our history but
also the history that came before?  Then as Master advances we can see
about backporting and bringing our code close enough to mainline
kernel to actually be able to contribute back to the community and
submit patches.  Is this realistic approach.  I am unsure of the GIT
commands that I need to do this?

Thanks,

Sean

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2007-07-05 13:19 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-05 12:31 Embedded Linux development with GIT linux
  -- strict thread matches above, loose matches on Subject: below --
2007-07-05  5:50 Sean Kelley
2007-07-05  6:06 ` Dan Chokola
2007-07-05  6:53 ` Alex Riesen
2007-07-05  7:10 ` Johannes Sixt
2007-07-05 12:00   ` Johannes Schindelin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).