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

Re: Can we use relative paths in svn:externals propset?

From: Itamar O <itamarost_at_gmail.com>
Date: Fri, 30 Apr 2010 12:14:32 +0300

On Fri, Apr 30, 2010 at 5:00 AM, David Weintraub <qazwart_at_gmail.com> wrote:
> On Thu, Apr 29, 2010 at 5:14 PM, David Bartmess <dingodave_at_edingo.net> wrote:
>> Thanks, that explains what I needed to know... Relative paths using a parent
>> (..) or absolute paths aren't handled. So it won't work with my system,
>> since all the build files point to a parent "sandbox" directory, not the
>> current directory, for the dependencies...
>
> You can use relative paths, but they are relative to the repository.
> For example if I had a directory at svn://repos/foo/bar/barfoo and it
> had svn:externals = ../foobar, it would be referring to
> svn://repos/foo/bar/foobar.
>
> Maybe you should read up on the book a bit. It sounds like you're
> confused about what svn:externals do.
>
> They check out a repository directory that is located elsewhere in the
> repository into your current working directory. Let's take the above
> project. It would checkout in your working directory the directory
> svn://repos/foo/bar/foobar under directory barfoo in your working
> directory.
>
> What it sounds like you have is a build issue. That is, you have your
> build referring to code that is not in your current working directory,
> but happens to be located in a parent directory. That has nothing to
> do with the svn:external property.
>
> --
> David Weintraub
> qazwart_at_gmail.com
>

There's still something you can do with svn:externals that might do the trick.
If your repository structure is currently:
/ (repository-root)
- proj-a
  - trunk
- proj-b
  - trunk

and your build system expects this:
/ (local-root-for-build)
- trunk-of-proj-a
- trunk-of-proj-b

you can add a repository directory "build-me" under proj-a:
/ (repository-root)
- proj-a
  - trunk
  - build-me
- proj-b
  - trunk

set the svn:externals on "build-me" to:
../trunk trunk-of-proj-a
^/proj-b/trunk trunk-of-proj-b

this way, when you checkout build-me into your local-root-for-build,
you will get the desired layout.

(this will also work if you have proj-a and proj-b in different repositories,
if you use different svn:externals syntax (e.g. fully-qualified or
server-relative))

Itamar.
Received on 2010-04-30 11:15:07 CEST

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.