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

Re: Re[2]: bug report: checkout and export ignore given command line revision number for svn:externals that haven't self a -r

From: Erik Huelsmann <ehuels_at_gmail.com>
Date: 2007-03-13 21:54:24 CET

On 3/13/07, Bernd Derer <Bernd.Derer@web.de> wrote:
> Ok, not a bug. But it's hard for my to accept that subversion lacks
> such a main feature. I agreeing with you, that my wish not work with
> links to external repositories. But subversion has no extra mechanism
> for repository internal links.

From the above I get the feeling you're not understanding what the
'switch' part of my message means. What I meant was: if you have a
repository with a MAIN-APP and modules A and B, then you'd have this
repository layout:

- MAIN-APP / trunk, tags, braches
- MOD-A
- MOD-B

Say you need both modules A and B in your MAIN-APP, at the top most
level of your checkout. This is what I'd do:

Add empty MOD-A and MOD-B directories in the MAIN-APP tree like this:

(working copy:)
 \MAIN-APP\
    SRC-MAIN-APP
    MOD-A
    MOD-B

Then, when you have that checked out, you can run:

MAIN-APP$ svn switch <url>/MOD-A/trunk MOD-A
MAIN-APP$ svn switch <url>/MOD-B/trunk MOD-B

After that, your working copy will look like this:

\MAIN-APP\
   SRC-MAIN-APP
   MOD-A\
      SRC-MOD-A
   MOD-B\
      SRC-MOD-B

Since svn knows these modules are related (and how!), it can easily
update and backdate the entire working copy to every revision in the
repository. You can even (atomically) commit changes to the app and
the modules at the same time (ie in the same revision number). By my
definition, that's all an internal link should be able to do...

> Versions control over more than one
> reporisitory is complex and thus it's ok if the handling is complex
> too. But keep simpel things simpel, with this in mind, subversion need
> a one command solition for the simpel task "check out a non HEAD
> version of my project that located in one repository". Of course,
> every nontrivial software project needs re-usable components. From
> this it follows directly that all real projects has links to common
> code.

Sure. All of the above is what you get with the 'switch-scenario' above.

> With the information got from you, I will formulate my wish more
> precise:

> The function that check out a extermal link should recognize if is a
> "internal link" into the same reporisitory and – if the link self has
> no revision number – check out the version given by the command line.

So, you're proposing an 'svn:auto-switch' property with a
'relative-to-the-local-path' path name in it?

> As a reward for this little change, for all on repository projects we
> can forget the tricky check out rules. Always on checkout command for
> the expectet result – a working copy from the project in the correct
> version.

> Ist nobody here, that dream the same dream? ;-)

Probably, but maybe they have other dreams more often? :-)

> I've already programming a work around tool, but this is not the same
> as if no work around would needed.

Ok. Well, the thing is: we need really good designs (which can be
distilled from extensively described use-cases) in order to be able to
implement the desired behaviour. Next to that, there are a number of
big changes going on at the moment, so please don't be angry when
we're not implementing immediately.

However, if you have some time to donate, you could research both the
mailing list archives and the issue tracker to find if there is
discussion about what you'd like implemented already. If not, writing
up a proposal and filing it in an issue would be a good idea.

Thanks in advance,

Erik.
Received on Tue Mar 13 21:54:44 2007

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