On Wednesday 24 October 2012 02:33 AM, Ben Reser wrote:
On Tue, Oct 23, 2012 at 9:58 AM, vijay <vi...@collab.net> wrote:
Hi,

I am working on patch to add '--include-externals' option to 'svn list'
[Issue #4225].

Let me try to answer few questions in the issue comment [1].
Please correct me if I am wrong.

1. What happens with externals inside of externals? Are they also listed?
Does
recursion stop at some point?

No. Externals inside of externals are not listed which is similar in
behavior
like other commands checkout, export. My code will read all the externals
set
under given path or URL and call svn_client_list() recursively for all
external URLs, explicitly turning off the flag 'include_externals'.
Does it make more sense to make --include-externals behave something
more like --depth rather than a simple boolean?

E.G. it'd behave like so:

No option: current behavior externals are not processed.
--include-externals or --include-externals=infinity : Fully recursive.
--include-externals=immediate : Only externals defined in the repo for
the target.


Yes. It makes sense and it is easy to implement.

But will it be compatible with 'svn commit' which has the same option?

We have to make sure that end users will not get confused with --depth's depth level and --include-externals' depth level. Our documentation should help for users to understand
all of the following cases.

$ svn list --depth=immediates --include-externals=immediates
$ svn list --depth=immediates --include-externals
$ svn list --depth=infinity --include-externals=immediates
$ svn list --depth=infinity --include-externals
$ svn list --depth=files --include-externals=immediates
$ svn list --depth=files --include-externals

Thanks & Regards,
Vijayaguru

P.S: We can even avoid infinite recursion problem (when an svn:external directly or indirectly includes its parent) with 'svn list --include-externals=immediates'.

Reply via email to