Subject: git-svn: Branching clarifications

From: Russ Brown <[email-masked]>
Date: Fri, 07 Sep 2007 11:47:17 -0500

I have a few questions about how/when to use git branches when using
git-svn (I'm a tad confused...)

Say I've initialised and fetched a git repo involving trunk and one
branch (say branch1) from an svn repository.

If I do git branch -a, I see similar to the following:

* master
  branch1
  trunk

(branch1 and trunk are in red for me, which I figure means they're
remotely tracked or something like that?)

OK, so that's telling me that I currently have master checked out into
my working copy. My question is: where did master come from? Is it a
local branch of trunk?

Moving on, say I want to work on branch1. Can I simply issue git
checkout branch1? If I do so I get this:

$ git branch -a
* (no branch)
  master
  branch1
  trunk

Which is a bit scary. It seems my working copy is orphaned...

OK, so let's assume I'm supposed to create a local branch of each remote
branch I want to work on. So:

$ git branch local/branch1 branch1
$ git checkout local/branch1

$ git-branch -a
* local/branch1
  master
  branch1
  trunk

Am I supposed to have used --track when creating  this branch? What are
the implications for specifying or not specifying that flag when using
git-svn?

So I do some editing on this branch, commit and dcommit. The changes
appear as expected in the repo.

At this point if I checkout master, the contents look like
local/branch1, which isn't what I'd suspected (that it would be a branch
of trunk). What does master represent?

So I checkout local/trunk, and create a new file, commit and dcommit.
Umm, it's been committed to branch1 on the repo: not trunk,

So I figure I'm quite obviously doing something wrong here. Could
someone give me a hand and tell me what it is I'm getting wrong?

Thanks!

-- 

Russ