svnsvn-checkout

svn checkout depth


I have an SVN project with tree like this:

/project
    /dir1
        /subdir1
           -file1
           -file2
            .....
        -file1
        -file2
        .....
    /dir2
        -file1
        -file2
        .....
    /dir3
        /subdir1
           -file1
           -file2
            .....
        /subdir2
           -file1
           -file2
            .....
        /subdir3
           -file1
           -file2
            .....
        /subdir4
           -file1
           -file2
            .....
    /dir4
        -file1
        -file2
        .....
-file1
-file2

I need to checkout

Can I checkout these files/folders using svn commandline with some kind of depth? If so how can I do it? Can I add subdir2 to dir3 after a checkout? How can I update working copy created this way? Will normal "svn up" command update only these folders or full update of project will be performed?


Solution

  • What you need is called sparse checkout.

    In your case you can:

    svn co --depth files file:///project project
    cd project
    svn up --set-depth infinity dir1 dir2 dir4
    svn up --set-depth empty dir3
    svn up --set-depth infinity dir3/subdir1 dir3/subdir3
    

    Can I add subdir2 to dir3 after a checkout?

    Yes: svn up --set-depth infinity dir3/subdir2

    How can I update working copy created this way? Will normal "svn up" command update only these folders or full update of project will be performed?

    Yes, svn up will update only these files and folders, that is update depth will be preserved.