views:

739

answers:

2

Using the linux command line and subversion, is it possible to take a directory and add version control to it? Basically, I want to import the directory into a newly created repo, but also have the directory be a working copy without having to check it out.

+5  A: 

lets say you've used svnadmin to create a repo at /svn/foo/mydirname, and you want to version control /home/user/mydirname. (is that what you mean?)

then do the following:

cd /home/user/mydirname
svn co file:///svn/foo/mydirname   #this only creates the ".svn" folder for version control
svn add ./*                        #tell svn you want to version control all files in this dir
svn ci                             #check the files in

you directory is now version controlled!

DaedalusFall
hmmm, its using c-style comments there for the highlighting. How annoying.
DaedalusFall
A: 

Yes, you can import an existing directory (with contents) into an svn repository, and use the current location as your version controlled working copy. Go at it as follows:

suppose your (un-versioned) project sources are in /home/user/projectx, and your repository is ready at file:///svnrepo

  1. first, create an empty directory somewhere outside of your project tree, say, /tmp/empty. Import that empty directory in your subversion repository.

    cd /tmp/empty

    svn import . file:///svnrepo/projectx

  2. go into your populated project directory. Now checkout the repository location you created in step 1.

    cd /home/user/projectx

    svn checkout file:///svnrepo/projectx .

This will add the .svn files to your populated project directory, but it will not do anything else, so your existing files are safe.

  1. Next, add the directory with your files to the repository

    svn add *

    svn commit -m 'initial commit'

Done.

Pieter V