Subject: git-svn tags and branches

From: Giuseppe Bilotta <[email-masked]>
Date: Mon, 27 Aug 2007 16:08:02 +0200

Hello all,

I've recently started using git and I like it so much that
I've decided to start using it also for some svn-based
projects (in particular, rbot http://linuxbrit.co.uk/rbot).

The long term goal would be to move the project to git, but
for the time being (among the other things we're waiting for
Trac to have proper support for git, which is something that
won't happen before Trac 0.12 at least) I've decided to
experiment with a dual git/svn development process, using
(of course) git-svn.

My experience with toying around with it for a couple of
hours has been extremely positive, but I've got some
questions, especially about the tags and branch management.

Currently, git-svn imports svn tags as lightweight git tags.
I was susprised when I discovered this (from 'git describe'
failing and some helpful assistance on the IRC channel), so
I'm now wondering: is there a technical reason why they
aren't converted to annotated tags? If not, would it be
possible to implement this in git-svn, possibly with some
way to 'fix' existing git-svn repository?

My second question concerns the uses of branche in git-svn,
but it might come from a not perfect understanding of the
branching mechanism in git (and yes, I've read the
documentation and Wiki pages).

If I understand correctly, svn branches are imported in
git-svn as remote branches (refs/remote/*) and are
automatically updated on git-svn fetch or git-svn fetch-all.

In my experiments, however, I've noticed the following
behaviour.

git branch --track trunk remote/trunk
<do some changes and git commit them, while still on branch master>
git svn dcommit

Now, master and remote/trunk point to the new roundtripped
changes, but the branch 'trunk' (in git) remains pointing to
the old remote/trunk head. I would have expected the --track
option to keep trunk in sync with remote/trunk ...

Or am I missing something obvious?

-- 
Giuseppe "Oblomov" Bilotta