Jeff King <peff@xxxxxxxx> wrote: > On Mon, Dec 12, 2011 at 08:33:15AM +0100, Stefan Haller wrote: > > > > Local branches can track each other. So the script needs to toposort > > > the branches, or to loop until either nothing was done or an error > > > happened. (The latter to prevent an eternal loop on error.) > > > > Is this just theoretical, or are there real use cases for this? What > > would be a workflow with such a local tracking branch? > > I use this all the time. > > In git.git, we use a topic branch workflow (i.e., every feature gets its > own topic branch, and topics graduate independently to master as they > are deemed stable). And we use a patch-submission workflow, which means > it's OK for me to rebase my topics locally, because the end-product is a > series of patches sent to the list. > > Typically I branch off of "origin/master", so the topic is independent > of anything else. For example, the "jk/credentials" branch in my git > repo is branched from "origin/master" (Junio's master). But sometimes > there is a topic that depends on another topic, but should not be part > of the same series (because the the first topic can graduate to master, > but the second one may still need more time for discussion and cooking). > In that case, I'll set the upstream to the other local topic branch. An > example of this is the "jk/prompt" series, which depends on > "jk/credentials" for infrastructure, but is really a separate issue. > > Having the upstream set is convenient, because I can get _just_ the > commits in jk/prompt with "git log @{u}..". Or I can rebase _just_ the > commits in that topic with "git rebase -i". If my upstream were set to > origin, I would accidentally also rebase all of the commits pulled in > from jk/credentials, too. I see, thanks. For my script, I'm wondering then if the most sensible thing to do is to just skip any branch whose upstream doesn't start with refs/remotes/. For a future "git pull --all" feature, it would probably only work on those branches whose upstream is on the remote being pulled from, anyway. -- Stefan Haller Berlin, Germany http://www.haller-berlin.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