You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Daniel Becroft <dj...@gmail.com> on 2014/12/02 05:44:06 UTC

svn status & external definitions

Hi,

On a fresh checkout from a repository, an 'svn status' will return the
following:

X       alpha
X       beta\B
X       beta\C

These are the folders created by svn:externals properties. No problem here.

However, using an 'svn status --ignore-externals' command does not change
the output - the external folders continue to be listed.

The help text for this switch just says '--ignore-externals : ignore
externals definitions'.

Is this intended behaviour? If so, is what scenario will this switch do
something?

Using: svn 1.8.8
---
Daniel Becroft

Re: svn status & external definitions

Posted by Daniel Becroft <dj...@gmail.com>.
On Mon, Dec 8, 2014 at 5:07 AM, Branko Čibej <br...@wandisco.com> wrote:

> On 06.12.2014 14:59, Bert Huijben wrote:
> >
> >> -----Original Message-----
> >> From: Daniel Shahaf [mailto:d.s@daniel.shahaf.name]
> >> Sent: zaterdag 6 december 2014 12:28
> >> To: Daniel Becroft
> >> Cc: subversion
> >> Subject: Re: svn status & external definitions
> >>
> >> Daniel Becroft wrote on Tue, Dec 02, 2014 at 14:44:06 +1000:
> >>> Hi,
> >>>
> >>> On a fresh checkout from a repository, an 'svn status' will return the
> >>> following:
> >>>
> >>> X       alpha
> >>> X       beta\B
> >>> X       beta\C
> >>>
> >>> These are the folders created by svn:externals properties. No problem
> > here.
> >>> However, using an 'svn status --ignore-externals' command does not
> > change
> >>> the output - the external folders continue to be listed.
> >>>
> >>> The help text for this switch just says '--ignore-externals : ignore
> >>> externals definitions'.
> >>>
> >>> Is this intended behaviour?
> >> Not sure..
> > Are we looking at a file external or at a directory external?
>
> Doesnt' matter. The status tells you that alpha, beta/B and beta/C are
> roots of external working copies. This information is pertinent to the
> top-level working copy, not the contents of the external WCs. So, status
> is not descending into the external trees; it's effectively just
> reporting the contents of svn:externals properties defined in your
> top-level working copy.
>
> This becomes clearer in the case where the external tree is actually in
> a state where status would have something to report. For example, using
> a test setup with an external directory and a locally added file inside it:
>
>     $ svn proplist --verbose
>     Properties on '.':
>       svn:externals
>         ^/top/a ext
>
> By default, "svn status" will descend into the external tree:
>
>     $ svn status
>     X       ext
>
>     Performing status on external item at 'ext':
>     A       ext/c/foo
>
> With the added option, it won't:
>
>     $ svn status --ignore-externals
>     X       ext
>
> But it will report the external definition in the top-level working copy.
>

​Okay, this all makes sense. I guess it was strange that, from my
perspective, whether something is an external or not would also have been
included when ignoring externals. If there are 10 externals, and one
modified file, it is difficult to see the modification without manually
looking through each one.

Cheers,
Daniel B.​

Re: svn status & external definitions

Posted by Branko Čibej <br...@wandisco.com>.
On 06.12.2014 14:59, Bert Huijben wrote:
>
>> -----Original Message-----
>> From: Daniel Shahaf [mailto:d.s@daniel.shahaf.name]
>> Sent: zaterdag 6 december 2014 12:28
>> To: Daniel Becroft
>> Cc: subversion
>> Subject: Re: svn status & external definitions
>>
>> Daniel Becroft wrote on Tue, Dec 02, 2014 at 14:44:06 +1000:
>>> Hi,
>>>
>>> On a fresh checkout from a repository, an 'svn status' will return the
>>> following:
>>>
>>> X       alpha
>>> X       beta\B
>>> X       beta\C
>>>
>>> These are the folders created by svn:externals properties. No problem
> here.
>>> However, using an 'svn status --ignore-externals' command does not
> change
>>> the output - the external folders continue to be listed.
>>>
>>> The help text for this switch just says '--ignore-externals : ignore
>>> externals definitions'.
>>>
>>> Is this intended behaviour?
>> Not sure..
> Are we looking at a file external or at a directory external?

Doesnt' matter. The status tells you that alpha, beta/B and beta/C are
roots of external working copies. This information is pertinent to the
top-level working copy, not the contents of the external WCs. So, status
is not descending into the external trees; it's effectively just
reporting the contents of svn:externals properties defined in your
top-level working copy.

This becomes clearer in the case where the external tree is actually in
a state where status would have something to report. For example, using
a test setup with an external directory and a locally added file inside it:

    $ svn proplist --verbose
    Properties on '.':
      svn:externals
        ^/top/a ext

By default, "svn status" will descend into the external tree:

    $ svn status
    X       ext

    Performing status on external item at 'ext':
    A       ext/c/foo

With the added option, it won't:

    $ svn status --ignore-externals
    X       ext

But it will report the external definition in the top-level working copy.

-- Brane


RE: svn status & external definitions

Posted by Bert Huijben <be...@qqmail.nl>.

> -----Original Message-----
> From: Daniel Shahaf [mailto:d.s@daniel.shahaf.name]
> Sent: zaterdag 6 december 2014 12:28
> To: Daniel Becroft
> Cc: subversion
> Subject: Re: svn status & external definitions
> 
> Daniel Becroft wrote on Tue, Dec 02, 2014 at 14:44:06 +1000:
> > Hi,
> >
> > On a fresh checkout from a repository, an 'svn status' will return the
> > following:
> >
> > X       alpha
> > X       beta\B
> > X       beta\C
> >
> > These are the folders created by svn:externals properties. No problem
here.
> >
> > However, using an 'svn status --ignore-externals' command does not
change
> > the output - the external folders continue to be listed.
> >
> > The help text for this switch just says '--ignore-externals : ignore
> > externals definitions'.
> >
> > Is this intended behaviour?
> 
> Not sure..

Are we looking at a file external or at a directory external?

	Bert


Re: svn status & external definitions

Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
Daniel Becroft wrote on Tue, Dec 02, 2014 at 14:44:06 +1000:
> Hi,
> 
> On a fresh checkout from a repository, an 'svn status' will return the
> following:
> 
> X       alpha
> X       beta\B
> X       beta\C
> 
> These are the folders created by svn:externals properties. No problem here.
> 
> However, using an 'svn status --ignore-externals' command does not change
> the output - the external folders continue to be listed.
> 
> The help text for this switch just says '--ignore-externals : ignore
> externals definitions'.
> 
> Is this intended behaviour?

Not sure..

> If so, is what scenario will this switch do something?

It prevents svn from recursing into the external:

[[[
% svn st
X       A2

Performing status on external item at 'A2':
A       A2/D
]]]

[[[
% svn st --ignore-externals
X       A2
]]]

Daniel