[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Externals with a different directory name?

From: Tom Malia <tommalia_at_ttdsinc.com>
Date: 2007-03-09 14:45:24 CET

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?

 

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

 

 
Received on Fri Mar 9 14:45:15 2007

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.