threads / discuss / 23862

Migrate an svn repo to git - Where did all the branches got? and tags?

Subject: Migrate an svn repo to git - Where did all the branches got? and tags?

## tl;dr

4 messages between May 21, 2010 and May 21, 2010.

replies: 3people: 3as markdown or json

Jack Moore· May 21, 2010, 04:20 UTC · lore
All,
I have a subversion repository with the usual structure
svn-repo
  |
  +-branches
      +-release1
      +-release2
  +-tags
      +-r1dev
      +-r1test
      +-r2dev
      +-r2test
  +-trunk
that I want to migrate to git.
I cloned the svn repo with
   git svn clone --no-metadata -t tags -b branches -T trunk <repo-url>
I used the example in the Pro Git book.
the cloned repo has files 
  git-repo/.git/refs/heads/master
  git-repo/.git/refs/remotes/trunk
directory
  git-repo/.git/refs/tags
is empty.
Directories git-repo/.git/logs/... have files corresponding to the branches and tags, but they do not appear to reference git objects.
There are unhandled.log.gz files in the .git/svn directory for each branch and tag.
If I do a 
	git branch -r

the branches and tags show up as remote branches. gitk appears to show all of the commits, but I do not see any of the branches and tags.

I would like to make the branches and tags to appear al local to git repo.
Is there a way to do this?
Thomas Rast· May 21, 2010, 09:41 UTC · re: Jack Moore · lore

Re: Migrate an svn repo to git - Where did all the branches got? and tags?

Jack Moore wrote:
>    git svn clone --no-metadata -t tags -b branches -T trunk <repo-url>
[...]
>   git-repo/.git/refs/tags
> 
> is empty.
[...]
Show 5 quoted lines
> If I do a 
> 
> 	git branch -r
> 
> the branches and tags show up as remote branches.
That's how git-svn currently works.

To turn all remote branches into local branches you can use the following trick (don't do this in any repo other than a fresh git-svn clone unless you understand what it does!):

  git fetch . 'refs/remotes/*:refs/heads/*'

To further clean up history and turn svn tagging commits into real tags, you can refer, e.g., to the last section of

  http://kb.curseforge.com/repositories/convert-svn-to-git/
-- 
Thomas Rast
trast@{inf,student}.ethz.ch
Ævar Arnfjörð Bjarmason· May 21, 2010, 16:11 UTC · re: Jack Moore · lore

Re: Migrate an svn repo to git - Where did all the branches got? and tags?

On Fri, May 21, 2010 at 13:57, Jack Moore <jhmoore719@verizon.net> wrote:
> Thx, Thomas

If your history isn't too crazy you might want to try converting with snerp-vortex instead of git-svn.

It isn't always better (or indeed, often), but might be in your case.

← back to recent threads