mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Kyle Moffett <mrmacman_g4@mac.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Pierre Ossman <drzeus-list@drzeus.cx>,
	Andrew Morton <akpm@osdl.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: Git training wheels for the pimple faced maintainer
Date: Fri, 20 Oct 2006 00:28:20 -0400	[thread overview]
Message-ID: <64E321FD-FD09-4962-9BF3-86104B92A74A@mac.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0610191629250.3962@g5.osdl.org>

On Oct 19, 2006, at 19:44:41, Linus Torvalds wrote:
>  - If you actually want your development tree to "track" my tree,  
> I'd suggest you have your "for-linus" branch that you put the work  
> you want to track into, and then a plain "linus" branch which  
> tracks _my_ tree. Then you can just fetch my tree (to keep your  
> "linus" branch up-to-date), and if you want your development branch  
> to track those changes, you can just do a "git rebase linus" in  
> your "for-linus" branch.

I'm no official maintainer, but I have several random local GIT trees  
I use for local development and patches which don't make a lot of  
sense outside my personal systems.  Because of this it's important  
for me to be able to migrate my changes over to newer versions  
easily, but I don't care all that much about maintaining old history,  
I just want my separate patches to work on latest Linus.

It also matters a lot to me to be able to wipe out a devel tree with  
a quick rm and create it from scratch.

As a result, I have an "upstream" tree with various "linus", "libata- 
dev", etc upstream branches that I pull from for various reasons.  I  
then have a "linux-template" tree which has no objects of its own but  
references the "upstream" tree's object directory and "pulls" from  
some branch in the upstream tree.  To create a new devel tree I just  
copy the "upsteram" tree which is the size of a single checkout, and  
start patching.  To update all my patchsets to latest linus:

### This gets the upstream tree to the latest state
$ cd ~/git/linux/upstream
$ cg-fetch linus
$ cg-fetch libata-dev
$ cg-fetch $OTHER_UPSTREAM_SRC

## Optionally repack the single copy of the upstream objects for  
better speed
$ git-repack -a -d -l -f

### Now fast-forward the patches in $MY_TREE to be based on the  
latest version of the random upstream tree
$ cd ~/git/linux/$MY_TREE
$ cg-fetch upstream
$ git-rebase upstream
### Now I resolve rebase-conflicts

When I want to export a GIT tree for somebody else to look at I just  
pull into the HTTP-accessible GIT directories from my various  
development trees, optionally merging if necessary.

This isn't "The Best Solution(TM)" for everyone, but it works really  
well for me and has the advantage of only storing one easily-repacked  
copy of the upstream sources; the rest of my dev trees have only the  
overhead of my local changesets and a single copy of the kernel  
sources.  In the event I have to wipe out a dev tree it's a very fast  
"rm -rf $OLD_TREE", and creating one is also a fast "cp -a linux- 
template $NEW_TREE"

Cheers,
Kyle Moffett


  parent reply	other threads:[~2006-10-20  4:28 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-19 21:17 Pierre Ossman
2006-10-19 22:25 ` Andrew Morton
2006-10-20  6:26   ` Pierre Ossman
2006-10-20  6:35     ` Kyle Moffett
2006-10-20  6:37     ` Andrew Morton
2006-10-25 21:50       ` Pierre Ossman
2006-10-25 22:06         ` Andrew Morton
2006-10-19 23:44 ` Linus Torvalds
2006-10-20  1:07   ` Mark Fasheh
2006-10-20  6:45     ` Pierre Ossman
2006-10-20 21:08       ` Mark Fasheh
2006-10-20  4:28   ` Kyle Moffett [this message]
2006-10-20  6:34   ` Pierre Ossman
2006-10-20  7:30     ` Kyle Moffett
2006-10-20 15:26     ` Linus Torvalds
2006-10-20 15:35       ` Linus Torvalds
2006-10-21  9:44       ` Pierre Ossman
2006-10-21 16:10         ` Linus Torvalds
2006-10-21 18:05           ` Pierre Ossman
2006-10-21 19:07             ` Linus Torvalds
2006-10-21 16:47   ` Roland Dreier
2006-10-21 18:15     ` Pierre Ossman
2006-10-21 21:27       ` Roland Dreier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=64E321FD-FD09-4962-9BF3-86104B92A74A@mac.com \
    --to=mrmacman_g4@mac.com \
    --cc=akpm@osdl.org \
    --cc=drzeus-list@drzeus.cx \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®