• Getting Data into your Repository

    There are two ways to get new files into your Subversion repository: svn import and svn add. We'll discuss svn import here and svn add later in this chapter when we review a typical day with Subversion.

    svn import

    The svn import command is a quick way to copy an unversioned tree of files into a repository, creating intermediate directories as necessary. svn import doesn't require a working copy, and your files are immediately committed to the repository. This is typically used when you have an existing tree of files that you want to begin tracking in your Subversion repository. For example:

    $ svnadmin create /usr/local/svn/newrepos
    $ svn import mytree file:///usr/local/svn/newrepos/some/project \
                 -m "Initial import"
    Adding         mytree/foo.c
    Adding         mytree/bar.c
    Adding         mytree/subdir
    Adding         mytree/subdir/quux.h
    
    Committed revision 1.
    

    The previous example copied the contents of directory mytree under the directory some/project in the repository:

    $ svn list file:///usr/local/svn/newrepos/some/project
    bar.c
    foo.c
    subdir/
    

    Note that after the import is finished, the original tree is not converted into a working copy. To start working, you still need to svn checkout a fresh working copy of the tree.

    Recommended repository layout

    While Subversion's flexibility allows you to layout your repository in any way that you choose, we recommend that you create a trunk directory to hold the “main line” of development, a branches directory to contain branch copies, and a tags directory to contain tag copies, for example:

    $ svn list file:///usr/local/svn/repos
    /trunk
    /branches
    /tags
    

    You'll learn more about tags and branches in Chapter 4, Branching and Merging. For details and how to set up multiple projects, see the section called “Repository Layout” and the section called “Planning Your Repository Organization” to read more about “project roots”.


    The Version Control with Subversion book is licensed under the Creative Commons Attribution License v2.0.
    To submit comments, corrections, or other contributions to the text, please visit http://www.svnbook.com.