Subject: Standard "git svn init ; git svn fetch" behavior

From: "Peter Valdemar Mørch (Lists)" <[email-masked]>
Date: Tue, 15 Jul 2008 13:24:00 +0200

Hi,

I've now converted my svn repos to git with

$ git-svn init -T trunk -t tags -b branches file://some/path
$ git svn fetch

Wonderful!

I have two questions about the result:

1) It seems the svn tags were converted into git branches such as 
"tags/mytag". Is that normal?

2) Why does master end up being off of tags/mytag instead of off of trunk?

###################################
Re: 1) It seems the svn tags were converted into git branches such as 
"tags/mytag". Is that normal?
###################################

$ git tag -l
returns nothing and
$ git branch -a
returns all my svn tags as "tags/<tag>" git branches and all my svn 
branches as expected in "the root".

Is that by design? Are there any downsides of creating a script that

foreach $tag ( m|tags/(.*)| ) {
   git tag $tag $tag
   git branch -r -D $tag
}

I'm cool with doing that, I just wanted to know if this is the expected 
behaviour, and/or whether I'll run into trouble later because of a 
wierdly converted subversion repository.

###################################
Re: 2) Why does master end up being off of tags/mytag instead of off of 
trunk?
###################################

I would have expected, that "master" ended up tracking "trunk", and not 
tags/mytag. Why track an obscure tag instead of trunk?

The tail of the fetch:

Successfully followed parent
W: +empty_dir: tags/mytag/probe/userHomedir/foo/cache/zlcache
W: +empty_dir: tags/mytag/probe/userHomedir/foo/pna_menu_items
r7375 = 5d3012afabccd348a5a5b81c5cf28532d324ea1b (tags/mytag)
Checking out files: 100% (2184/2184), done.
Checked out HEAD:
   file:///home/pvm/cm/repos/tags/mytag r7375

("mytag" and "foo" replaced internal identifiers present in real output...)

$ git log --pretty=oneline --decorate -n 1

5d3012afabccd348a5a5b81c5cf28532d324ea1b (refs/remotes/tags/mytag, 
refs/heads/master) Tag mytag

I rectified it with simply

$ git branch -m master old
$ git checkout -b master trunk
$ git branch -d old

Just wondering: Why is this behaviour the default? Is it a bug?

Is there a smarter way to find out what branchpoint was used to create 
"master"? (I'm new to git, and find it difficult to see what my branches 
were "made from")

Peter

-- 
Peter Valdemar Mørch
http://www.morch.com