Hi

Did some more testing and found the following:

Setup. folder "withexternals" has prop svn:externals with a number of 
revisioned and un-revisioned externals files.

What happens:

checkout folder "withexternals" -> all revisioned externals on external 
revision
update file "revisioned-externals" -> revisioned externals file on HEAD
update folder "withexternals" -> all revisioned externals files on external 
revision again.
update file "revisioned-externals" to external revison -> not possible with 
simple switch but have to look up the 'external revision' in svn:externals 
of folder "withexternals" and then update filen with command line parameter 
-r 'external revision', this is rather cumbersome with a large number of 
external files.

I found that the external revision and the external location is stated in 
the .svn/entries file. 
 I guess the info was available in the WC.

---Roman


>         
> -------- Original-Nachricht --------
> Datum: Fri, 06 May 2011 13:56:43 +0200
> Von: "Roman Kellner" <muzu...@gmx.net>
> An: Julian Foad <julian.f...@wandisco.com>, sbut...@elego.de
> CC: dev@subversion.apache.org, br...@e-reka.si
> Betreff: Re: Feature wish/request: [--externals MODE] switch on update
> 
>         Please see in your text.
> 
> ---Roman
> 
> >             
> > -------- Original-Nachricht --------
> > Datum: Fri, 06 May 2011 12:13:30 +0100
> > Von: Julian Foad <julian.f...@wandisco.com>
> > An: Stephen Butler <sbut...@elego.de>
> > CC: Roman <muzu...@gmx.net>, "Branko Čibej" <br...@e-reka.si>, 
> > dev@subversion.apache.org
> > Betreff: Re: Feature wish/request: [--externals MODE] switch on update
> > 
> >             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
> > working copy.
> We have a non-external directory with a number of non-external files and 
> external revisioned files in it.
> 
> The revisioned externals generally serve as source libraries. But if the 
> "library" file needs new features or bugfixes, the external file will be 
> unpinned, changed, commited and pinned to the commited revision again.
> 
> > 
> > 
> > You suggest that the behaviour of:
> > 
> >   update --externals=ignore
> > 
> > should be the same as "--ignore-externals".  But I don't think you want
> > the same behaviour that "--ignore-externals" currently has. 
> update --externals [MODE]
> 
> update --externals=ignore     substituting update --ignore-externals
> update --externals=interactive-revisioned
>  update --externals=ignore-revisioned
>  update --externals=to-revision
>   update --externals=interactive-to-revision
>   
> I defined update --externals=ignore only to have the format consistent.
> 
> I guess program command --switch switchValue is a rather common syntax 
> and 
> was derived from the same svn commands switches.
> 
> --accept ACTION
> --depth ARG
>             --diff3-cmd CMD
> --editor-cmd CMD
> --quiet (-q)
> --revision (-r) REV
>              I found and find it rather logical to have a switch that 
> addresses the externals behaviour and different modes that N specific 
> externals switches.
> e.g.
> 
> update --ignore-externals
>  update --interactive-revisioned-externals
> update --ignore-revisioned-externals
>   update --to-revision-externals
>    update --interactive-to-revision-externals
>    
> If or since I can update files one by one the 
> --externals=interactive-to-revision and 
> --externals=interactive-revisioned 
> are overkill. You are right.
> 
> >  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
> > so.
> > 
> > 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
> > thinking about.
> > 
> > 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.
> > 
> > - Julian
> > 
> > 
> > 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.
> > > 
> > > Regards,
> > > Steve
> > > 
> > > >> 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
> > > 
> > > 
> > 
> > 
> > 
>         
> -- 
> Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
> belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de
> 
    
-- 
Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de

Reply via email to