# How to use git-svnimport without trunk, tags and branches?

5 messages from 2007-03-11 to 2007-03-12. Participants: Georg Lohrer, Karl Hasselström, pacco@tropezien.de.
Thread: https://gitlist.dev/t/7192

## Georg Lohrer, 2007-03-11 11:38

Subject: How to use git-svnimport without trunk, tags and branches?
Message-ID: <45F3EA37.2080502@tropezien.de>
URL: https://gitlist.dev/e/45F3EA37.2080502%40tropezien.de

```
Hi,

I have searched the archive but did not found any hint for my problem.
Perhaps I did not have the right search pattern, but see yourself:

The most important thing prior of using git was to import my subversion
repositories. It seems to be quite easy if the SVN-repositories are of
common structure using the trunk, tags and branches structure.

But times ago I have had the idea of not using the traditional structure
of subversion for some of my repositories but using the repository
directly as single directory - no trunk, no tags, no branches. That was
because I thought only a geek would have the "complicated" way for only
a few files without any need for tags and branches.
And now the git-svnimport does not seem to be able to handle a SVN-repos
structure like mine:

~/svnrepos/
      |------- projectA
                  |---- foo.cpp
                  |---- foo.h

I want to import projectA into git _with_ the commit-history (there are
of course no tags and no branches).
Is there a way to do that with git-svnimport? Or do I have to throw away
all the details, checkout projectA and reimport it as initial version
with git?

Any hints are warmly appreciated.

Ciao, Georg

```

## Karl Hasselström, 2007-03-11 14:36

Subject: Re: How to use git-svnimport without trunk, tags and branches?
Message-ID: <20070311143638.GA7822@diana.vm.bytemark.co.uk>
URL: https://gitlist.dev/e/20070311143638.GA7822%40diana.vm.bytemark.co.uk
In-Reply-To: <45F3EA37.2080502@tropezien.de>

```
On 2007-03-11 12:38:31 +0100, Georg Lohrer wrote:

> But times ago I have had the idea of not using the traditional
> structure of subversion for some of my repositories but using the
> repository directly as single directory - no trunk, no tags, no
> branches. That was because I thought only a geek would have the
> "complicated" way for only a few files without any need for tags and
> branches. And now the git-svnimport does not seem to be able to
> handle a SVN-repos structure like mine:
>
> ~/svnrepos/
>      |------- projectA
>                  |---- foo.cpp
>                  |---- foo.h
>
> I want to import projectA into git _with_ the commit-history (there
> are of course no tags and no branches). Is there a way to do that
> with git-svnimport? Or do I have to throw away all the details,
> checkout projectA and reimport it as initial version with git?

You could try something like this:

  trunk: svnrepos/projectA
  tags: svnrepos/dummytags
  branches: svnrepos/dummybranches

I haven't tested, but I think that kind of maneouver should work.

-- 
Karl Hasselström, kha@treskal.com
      www.treskal.com/kalle

```

## Georg Lohrer, 2007-03-11 16:57

Subject: Re: How to use git-svnimport without trunk, tags and branches?
Message-ID: <45F434E9.7040003@tropezien.de>
URL: https://gitlist.dev/e/45F434E9.7040003%40tropezien.de
In-Reply-To: <20070311143638.GA7822@diana.vm.bytemark.co.uk>

```
Hi Karl,

Karl Hasselström schrieb:
  > You could try something like this:
> 
>   trunk: svnrepos/projectA
>   tags: svnrepos/dummytags
>   branches: svnrepos/dummybranches
> 
> I haven't tested, but I think that kind of maneouver should work.

yes, that does the trick. I use:

$ cd ~/tmp/git-test
$ tar xvfj fooRepos.tar.bz2
$ mv fooRepos foorRepos.svnrepos
$ svn mkdir file:///home/georg/tmp/git-test/fooRepos.svnrepos/dummytags
$ svn mkdir file:///home/georg/tmp/git-test/foorRepos.svnrepos/dummybranches
$ mkdir fooRepos.git; cd fooRepos.git
$ git-svnimport -b dummybranches -t dummytags -T projectA 
file:///home/georg/tmp/git-test/fooRepos.svnrepos

Unfortunately there was a bunch of directories  instead of a single 
projectA-directory. Do I have to repeat the above mentioned sequence for 
every directory (projectA, projectB, ...) or is there a simple way of 
git-svnimport'ing into an existing git-repository?

Nevertheless, if that is not possible, I could extract with your way 
the desired directories separately and keep the histories intact.

Regards, Georg

```

## Karl Hasselström, 2007-03-11 20:26

Subject: Re: How to use git-svnimport without trunk, tags and branches?
Message-ID: <20070311202620.GB15336@diana.vm.bytemark.co.uk>
URL: https://gitlist.dev/e/20070311202620.GB15336%40diana.vm.bytemark.co.uk
In-Reply-To: <45F434E9.7040003@tropezien.de>

```
On 2007-03-11 17:57:13 +0100, Georg Lohrer wrote:

> Karl Hasselström schrieb:
>
> > You could try something like this:
> >
> >  trunk: svnrepos/projectA
> >  tags: svnrepos/dummytags
> >  branches: svnrepos/dummybranches
>
> yes, that does the trick. I use:
>
> $ cd ~/tmp/git-test
> $ tar xvfj fooRepos.tar.bz2
> $ mv fooRepos foorRepos.svnrepos
> $ svn mkdir file:///home/georg/tmp/git-test/fooRepos.svnrepos/dummytags
> $ svn mkdir file:///home/georg/tmp/git-test/foorRepos.svnrepos/dummybranches
> $ mkdir fooRepos.git; cd fooRepos.git
> $ git-svnimport -b dummybranches -t dummytags -T projectA file:///home/georg/tmp/git-test/fooRepos.svnrepos

Did you try importing without creating the dummy* directories? I think
it may work even if they don't exist.

> Unfortunately there was a bunch of directories instead of a single
> projectA-directory. Do I have to repeat the above mentioned sequence
> for every directory (projectA, projectB, ...) or is there a simple
> way of git-svnimport'ing into an existing git-repository?

You could try this:

  trunk: dummy
  tags: dummy
  branches: svnrepos

That should turn svnrepos/projectA into the branch projectA,
svnrepos/projectB into the branch projectB, and so on.

-- 
Karl Hasselström, kha@treskal.com
      www.treskal.com/kalle

```

## pacco@tropezien.de, 2007-03-12 15:10

Subject: Re: How to use git-svnimport without trunk, tags and branches?
Message-ID: <1173712232.45f56d6851a5f@secure.konsole-h.de>
URL: https://gitlist.dev/e/1173712232.45f56d6851a5f%40secure.konsole-h.de
In-Reply-To: <20070311202620.GB15336@diana.vm.bytemark.co.uk>

```
Zitat von Karl Hasselström <kha@treskal.com>:

> You could try this:
> 
>   trunk: dummy
>   tags: dummy
>   branches: svnrepos
> 
No, it does not do that. Instead I got a huge amount of errors as with giving no
details at all (passing only the non-standard svn-repository).

But, I fixed the way around now, by scrutinizing through the history and looking
for essential parts. I checkedout the specific versions seperately and rebuild
the history by cg-add'ing the file-versions one after the other. The hard way,
but there were not many really important files.

So, thank you a lot for passing me your help.

Ciao, Georg

```
