On Fri, Apr 24, 2009 at 12:58:43AM -0400, George Spelvin wrote: > Here's something I and my co-workers would like to achieve, but are not > too sure how to arrange. > > I want to be committing to a feature branch, but always be compiling > and testing a merge of that branch and several others. (Kind of like > linux-next.) I want to be able to switch feature branches easily. > > For example, I may have a background project that I'm working on slowly in > between short-term fixes. Or I want to be running the latest kernel.org > kernel while my patches await approval. > > If it's just my own projects, I can just commit in random order and > straighten things out later. Although even that is problematic, > as I may not remember what line of development a cleanup patch is a > prerequisite for. (This is something that darcs is apparently good at.) > > But when I want to be testing something highly volatile like linux-next, > and ensuring that my work continues to merge with it cleanly, as well > as helping others with their branches, it becomes a daily pain. > > The best attempt I have so far is to rebase a lot. But that means that > I can't do any merging in my development branch lest the rebasing turn > into a mess. And forcing everything to be linear makes changing branches > a pain. And I can't share half-finished versions with co-workers. If you develop a topic, say gs/fix_bug_12345, optimally you should base it on the commit introducing the bug. Then you can have several integrating branches, say next/gs/fix_bug_12345 linus/gs/fix_bug_12345 $company_stable/gs/fix_bug_12345 and in these branches you can regularly merge in the current state of your gs/fix_bug_12345 branch. You might want to take a look on topgit, which can automate the propagation for you. And/or you might want to look into the linux-tip scripts by Ingo Molnar[1]. > ((Another really simple feature I keep wanting is "git commit -b > <newbranch>". I should probably try to write a patch...)) Well currently this can be done in two commands: git checkout -b <newbranch>; git commit AFAIK it even works if you already modified the index. Best regards Uwe [1] git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git tip:.tip -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html