git/list[1] front-page[2] threads[3] people[4] search[5] about
 

git-svn: creating tags from a subdirectory of trunk

From
THTom Huybrechts <tom.huybrechts@gmail.com>
Date
Mar 15, 2009, 21:18 UTC
Message-ID
<632a37a0903151418u483ca6cal1582518b9120da8e@mail.gmail.com>
Hi,

I'm trying to setup a git mirror of a svn repository. The tags in this repository are not created trunk it self, but from subdirectories of trunk. The tags and branches are in the standard places. e.g: /trunk/main -> tags/main-1 /trunk/plugins/foo -> tags/foo-1 /trunk/plugins/bar -> tags/bar-1

I run 'git svn clone -s svn-url target'. It starts going over the history nicely until it reaches the first branch. It calls this branch something like tags/tag-name@revision, and starts retrieving the entire project history again from r1. This is repeated for every branch.

I've created a very small standalone shell script that demonstrates the problem:

===== #!/bin/bash

REPO=`pwd`/svn-repo WC=`pwd`/svn-wc svnadmin create $REPO REPO=file://$REPO svn co $REPO $WC SUBDIR=$WC/trunk/subdir

mkdir $WC/tags $WC/trunk $WC/branches $SUBDIR svn add $WC/* svn commit -m "structure" $WC svn cp -m "create a tag" $REPO/trunk/subdir $REPO/tags/1

git svn clone -s $REPO git-repo =====

When you run this, the output of git-svn is:
=====
Initialized empty Git repository in /home/tom/experiment/git-repo/.git/
W: +empty_dir: trunk/subdir
r1 = 3b90e67a4d8e9a2d32d4389b0f6ac93e23f38a46 (trunk)
Found possible branch point:
file:///home/tom/experiment/svn-repo/trunk/subdir =>
file:///home/tom/experiment/svn-repo/tags/1, 1
Initializing parent: tags/1@1
r1 = 0ad93ba4a7f6c43de30ab4dd05161662b75a6adb (tags/1@1)
Found branch parent: (tags/1) 0ad93ba4a7f6c43de30ab4dd05161662b75a6adb
Following parent with do_switch
Successfully followed parent
r2 = ce47fc7b4e21000c84da63ad5f643c18118d1918 (tags/1)
Checked out HEAD:
  file:///home/tom/experiment/svn-repo/tags/1 r2
=====
Note the tags/1@1 and then starting over again from r1.

It's not so bad in this little example, but try this on a repository with 200 tags and 16000 revisions... So my question: is this normal or a bug ? Can I do something to import this repository correctly ?

Thanks,
Tom
Next: Eric Wong
Message 1 of 5 in “git-svn: creating tags from a subdirectory of trunk”
  1. Tom HuybrechtsMar 15, 2009
  2. Eric WongMar 15, 2009
  3. Tom HuybrechtsMar 16, 2009
  4. Eric WongMar 16, 2009
  5. Michael J GruberMar 17, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.