First, a couple operating parameters:
- .NET development using Visual Studio 2005/2008
- TortoiseSVN client
I've only primarily worked with Visual Source Safe and SourceGear Vault source control systems. In each, I map the root of the repository to a local working directory. For example:
$/ --> C:\source
As long as the local directory exists, I've got my "working copy" (svn) or "working folder" (VSS) set up.
To work on a new project that is already in the source code repository I need to "get the latest" (VSS) version of that project's directory.
When I go into any child directory in the repository and "Get Latest" (i.e. svn checkout) the client will automatically create the complete directory hierarchy for me, mirroring the structure on my local disk. Thus when I get latest of
$/foo/bar/project1
it is created on the drive at
C:\source\foo\bar\project1
In subversion, when I check out a directory, I must specify the working copy directory location. If I want to properly mirror my working copy directory structure to match the repository I have to either manually construct every child directory in the path or do a checkout of the repository root to the working copy root, getting everything in the repository.
Is there a way to get a repository directory down in the hierarchy such that it will be created in a matching local working copy directory structure without all the manual intervention?
This isn't a problem with a small repository, but in most cases, I don't need a large percentage of the source repository. It's imperative that the physical structure is maintained in order for file references to projects and resources not to break. Plus the disk cost of SVN is twice the actual source size given all the working base copies of the files.
I'm currently using Tortoise. Is it possible there are other SVN clients that will do what I'm looking for?