You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Achim Spangler <Ac...@mnet-online.de> on 2008/03/26 20:16:30 UTC
Too early svn up/co abort if one item of svn:external resource list is not accessible
Hi,
in my project http://www.isoaglib.org, we use svn:external properties to
achieve access control for parts of an anonymous accessible repository.
We have several "svn:externals" properties distributed over some directories,
so that a "svn co" or "svn up" sequence is finished with a list
of "svn:externals" retrievals.
Some users have only access right for a subset of
the "svn:externals"-connected resources.
Example Structure:
Root
| |
| -- dir1 - external1
| |
| -- dir1.2
|
-- dir2 - external2
|
-- dir2.2
User FOO has only access right for external2.
Problematic current (Version: 1.4.3) SVN behaviour:
svn co/up aborts as soon as the first resource is not accessible, so that the
later defined svn:externals are not even tried.
In example: User FOO does not get access to external2, as svn up/co aborts at
external1 due to missing access rights.
Wanted behaviour:
Each svn:externals should be tried, and all unsuccessful entries should be
reported at the end.
In example: User FOO should get checkout and update including external2, and
a final report should state failed access to external1
This is from my understanding a svn-client problem.
Question:
1) Has this been fixed since Version 1.4.3?
2) Is there some reason for the current behaviour?
3) Am I the only user with such a setup?
( I found already some comparable results - but not yet any response or
plan for solving of this issue )
Thanks,
Achim
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: Too early svn up/co abort if one item of svn:external resource
list is not accessible
Posted by "C. Michael Pilato" <cm...@collab.net>.
Achim Spangler wrote:
> Problematic current (Version: 1.4.3) SVN behaviour:
> svn co/up aborts as soon as the first resource is not accessible, so that the
> later defined svn:externals are not even tried.
> In example: User FOO does not get access to external2, as svn up/co aborts at
> external1 due to missing access rights.
>
>
> Wanted behaviour:
> Each svn:externals should be tried, and all unsuccessful entries should be
> reported at the end.
> In example: User FOO should get checkout and update including external2, and
> a final report should state failed access to external1
>
> This is from my understanding a svn-client problem.
>
> Question:
> 1) Has this been fixed since Version 1.4.3?
I dunno. I don't recall fixes in this area, but that means nothing -- 1.5.0
has been underway since the parting of the Red Sea.
> 2) Is there some reason for the current behaviour?
The default error handling paradigm in the Subversion codebase is to bubble
errors up to the top of the call stack. Chances are good that the behavior
you are seeing is just the result of some coder not anticipating or valuing
the use case.
> 3) Am I the only user with such a setup?
> ( I found already some comparable results - but not yet any response or
> plan for solving of this issue )
You certainly aren't the only user using svn:externals, and the problems you
describe aren't necessarily unique to your situation anyway. A fetch of an
external location could fail for any reason, such as a working copy on a
not-connected-to-the-net laptop checked out from a local repository that has
externals definition pointing to some remote repository. The question
becomes, "What do we do when a checkout/update of an external working copy
fails?"
I personally think you've a point here -- reporting the error but moving on
to attempt further externals checkouts might be the kinder thing to do,
especially if the logic is able to gracefully subsequent retries of the same
update where the externals checkouts *don't* fail (considering again the
laptop, who is now connected to the 'Net).
--
C. Michael Pilato <cm...@collab.net>
CollabNet <> www.collab.net <> Distributed Development On Demand