OK, now we understand. At first I assumed you were running "update" on
the root of the main working copy. When you run "update" on the
external directory itself, then I expect it to update to head. This is
because, as the book says, the external directory behaves as a separate
You suggest that the behaviour of:
should be the same as "--ignore-externals". But I don't think you want
the same behaviour that "--ignore-externals" currently has. Currently
it only ignores external definitions that it finds inside the target WC;
it doesn't check whether this target WC that it starts looking at is
already an external within some outer WC.
I think you want Subversion to notice if the target being updated is an
external inside another working copy, and to ignore this whole update if
The idea that the external should not behave like a completely separate
WC but more like it is part of the same working copy is a good idea, in
concept. The implementation could be difficult, and backward
compatibility is a concern, but this is certainly an idea that is worth
I think your set of "--externals=..." options is too complex. The UI
should be much simpler, something like just one option that says whether
the revision specified on the update command should override the
revision specified by the external definition. The idea of invoking an
interactive prompt is overkill.
On Fri, 2011-05-06 at 11:36 +0200, Stephen Butler wrote:
> On May 6, 2011, at 11:06 , Julian Foad wrote:
> > On Thu, 2011-05-05 at 23:18 +0200, Roman wrote:
> >> Hi Branko, hi Julian
> >> @Branko: I know the -r feature of the svn:externals and it worked fine
> >> on checkout (both formats <1.5 and >=1.5). But when updating the without
> >> special switches it did update to the head regardless whether the
> >> external was pinned to a revision or not.
> Hi Roman,
> What is your svn:externals value? Using TortoiseSVN (or any other client
> I've tested), the following syntax pins the externals version as expected:
> http://example.com/svn/foo/bar@99 foobar
> Changes to the "bar" directory (in the repository) after version 99 are not
> sent to the local "foobar" directory when I update it.
> >> To be honest, we did not test with the command line client but with
> >> TortoiseSVN and PushOk. Both behaved the same, which lead me to the
> >> conclusion, that it is a normal svn behaviour.
> >> @Julian:Yes, I guess so. checkout would retrieve the pinned revision,
> >> update would update to the head. At least that is what we experienced.
> >> Would you consider this a wrong behaviour?
> > Yes, I would consider that wrong behaviour.
> > I haven't tested to see what 'svn' actually does and I am not sure how
> > it was originally designed to work.
> > - Julian
> Stephen Butler | Senior Consultant
> elego Software Solutions GmbH
> Gustav-Meyer-Allee 25 | 13355 Berlin | Germany
> tel: +49 30 2345 8696 | mobile: +49 163 25 45 015
> fax: +49 30 2345 8695 | http://www.elegosoft.com
> Geschäftsführer: Olaf Wagner | Sitz der Gesellschaft: Berlin
> Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194
Received on 2011-05-06 13:14:06 CEST