On 3/9/2007 8:45 AM, Tom Malia wrote:
> Please accuse the newbie questions (but I'm afraid there may be a bunch more
> coming.sorry)
>
>
>
> Is it possible to "map" the contents of a directory in my repository to a
> different directory name in my working folder via externals?
I don't know the answer to that question, but I'd suggest a simpler
approach. Keep your first two repositories as described below (or even
make them different parts of the same repository), but don't bother with
externals. Just check out your source code into a working copy
directory named something like Project_Nbr1_SolomonVer55, and check out
the appropriate branch of the Solomon source into a subdirectory named
Solomon. I'd also suggest making notes or even a script to do the
checkouts properly, since you're not using Subversion to set up the
structure properly.
Subversion won't mind having one working copy as a subdirectory of
another. When you ask the status of the first, it will ignore the
nested one, treating it as an unversioned item.
Duncan Murdoch
>
>
>
> Here's my scenario:
>
>
>
> Given:
>
> A) I've got VB6 projects that use source code files from a 3rd party vendor
> product.
>
> B) I need to create different version of my programs that support different
> versions of the 3rd party product.
>
> C) VB6 using a "project" file to maintain the set of source files needed to
> create an EXE and that file uses relative file paths to locate the source
> files.
>
> D) The source code for my projects are exactly the same for all supported
> version of the 3rd party product except that the correct version of the 3rd
> party files (which are all named the same in each version) need to be
> compiled in.
>
>
>
> My Plan:
>
> I was hoping to create:
>
> 1) A repository for the 3rd party product source files with tags for each
> version. For example (note, the 3rd party product is called "Solomon"):
>
> VENDOR_REPO_ROOT
>
> |_Solomon
>
> |_versions
>
> |_V55
>
> | |_{Version 55 source files}
>
> |_V60
>
> | |_{Version 60 source files}
>
> |_V65
>
> | |_{Version 65 source files}
>
>
>
> 2) A repository of my source code that is common across all version of the
> 3rd party product. For example:
>
> Note that in this code, I would include the VB "Project" file which is where
> the relatively pathed list of source files is located. All "Solomon" source
> code would be assumed to be located in a subdirectory of the project
> directory named "Solomon".
>
> MY_SOLOMON_PROJ_REPO_ROOT
>
> |_Project_Nbr1
>
> |_{Common Code and Project file}
>
>
>
> 3) A Version specific repository made up of all externals. For example:
>
> MY_SOLOMON_PROJECT_VERSPEC_ROOT
>
> |_Project_Nbr1_SolomonVer55
>
> | |_{svn:externals MyProject_Nbr1
> svn://localhost/MY_SOLOMON_PROJ_REPO_ROOT/Project_Nbr1}
>
> | |_ {svn:externals Solomon
> svn://localhost/VENDOR_REPO_ROOT/Solomon/Version/V55}
>
> |_Project_Nbr1_SolomonVer60
>
> | |_{svn:externals MyProject_Nbr1
> svn://localhost/MY_SOLOMON_PROJ_REPO_ROOT/Project_Nbr1}
>
> | |_ {svn:externals Solomon
> svn://localhost/VENDOR_REPO_ROOT/Solomon/Version/V60}
>
> |_ etc. Etc.
>
>
>
> When I "check out" a version specific project I want to end up with a
> directory structure that looks like:
>
>
>
> |_Project_Nbr1
>
> |_ {My source code files}
>
> |_Solomon
>
> |_ {The source code files for the particular version of Solomon I need}
>
>
>
> My problem is, when I define my externals for the 3rd party files and I
> check them out, it always creates a directory with the name of the directory
> it came from. So for example, what I end up with is:
>
> |_Project_Nbr1
>
> |_ {My source code files}
>
> |_Solomon
>
> |_V55
>
> |_ {The source code files for the particular version of Solomon I
> need}
>
>
>
>
>
> Isn't there some way that I can check out the files in a particular
> directory in the repository to a directory with a different name in my
> working folder? Or am I going to have to have my third party repository
> look something like this instead?
>
>
>
> VENDOR_REPO_ROOT
>
> |_Solomon
>
> |_versions
>
> |_V55
>
> | |_Solomon
>
> | |_{Version 55 source files}
>
> |_V60
>
> | |_Solomon
>
> | |_{Version 60 source files}
>
> |_V65
>
> | |_Solomon
>
> | _{Version 65 source files}
>
>
>
>
>
>
>
> And then create my "virtual" projects like this:
>
>
>
> MY_SOLOMON_PROJECT_VERSPEC_ROOT
>
> |_Project_Nbr1_SolomonVer55
>
> | |_{svn:externals MyProject_Nbr1
> svn://localhost/MY_SOLOMON_PROJ_REPO_ROOT/Project_Nbr1}
>
> | |_ {svn:externals Solomon
> svn://localhost/VENDOR_REPO_ROOT/Solomon/Version/V55/Solomon}
>
> |_Project_Nbr1_SolomonVer60
>
> | |_{svn:externals MyProject_Nbr1
> svn://localhost/MY_SOLOMON_PROJ_REPO_ROOT/Project_Nbr1}
>
> | |_ {svn:externals Solomon
> svn://localhost/VENDOR_REPO_ROOT/Solomon/Version/V60/Solomon}
>
> |_ etc. Etc.
>
>
>
> Thanks in advance,
>
> Tom Malia
>
>
>
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Fri Mar 9 14:58:09 2007