Search code examples
gitsvngit-svn

How to use git-svn to checkout only trunk and not branches and tags?


I'm working on a Java legacy project which has 20 modules connected to each other. So, each module has it's own branch and tag. The structure is like this:


/projects
   .svn
   - module1
       .svn
       -trunk
       -branch
       -tag
   - module2
       .svn
       -trunk
       -branch
       -tag

The projects folder is around 30 GB which is nearly impossible to use git-svn clone to checkout all the modules, but it's because it counts all the branches and tags.

Is it possible to just clone the project only trunk so I can start committing locally?


Solution

  • Edit: I misread the question and answered what I thought you were asking, not what you actually asked.

    To clone just the trunk

    Cloning a single Subversion directory is easy, and it actually doesn't matter which directory you clone. Just don't specify any of the "layout" arguments, and give the path to the trunk directly:

    git svn clone http://path.to.svn.repo/module1/trunk
    

    To clone a specific module, including tags and branches and so forth

    A "normal" git svn clone would look something like the following:

    git svn clone --stdlayout http://path.to.svn.repo/
    

    What you want to use instead will be thus:

    git svn clone --stdlayout http://path.to.svn.repo/module1/
    

    That will find the trunk, branch and tag subfolders of the module1 folder, and clone them for you.