You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Matthias Vorwerk <mv...@mailbox.org> on 2014/07/23 14:02:39 UTC
svn:global-ignores limited to workspace dirs?
Hi,
setting the svn property svn:global-ignores to the repository root (or some
higher level directory in the repository) - it obviously does not get inherited
if I only checkout and work in some lower-level directory (until
subversion-1.8.9) .
It looks like the parent directory containing the svn:global-ignores property
must be present in the workspace. This seems to be in contrast to e.g. the
svn:auto-props property which may not be present in the workspace - it seems to
be looked for also on the server - which is what I expect.
So the effect of the current svn:global-ignores handling is that the client
behavior depends on the hierarchy which is checked out in the workspace.
Can you reproduce this bahvior?
Regards,
Matthias
Re: svn:global-ignores limited to workspace dirs?
Posted by Matthias Vorwerk <mv...@mailbox.org>.
Hi Stefan,
> On Wed, Jul 23, 2014 at 05:50:00PM +0200, Stefan Sperling wrote:
> > On Wed, Jul 23, 2014 at 02:02:39PM +0200, Matthias Vorwerk wrote:
> > > Hi,
> > >
> > > setting the svn property svn:global-ignores to the repository root (or
> > > some
> > > higher level directory in the repository) - it obviously does not get
> > > inherited
> > > if I only checkout and work in some lower-level directory (until
> > > subversion-1.8.9) .
> > >
> > > It looks like the parent directory containing the svn:global-ignores
> > > property
> > > must be present in the workspace. This seems to be in contrast to e.g. the
> > > svn:auto-props property which may not be present in the workspace - it
> > > seems to
> > > be looked for also on the server - which is what I expect.
> > >
> > > So the effect of the current svn:global-ignores handling is that the
> > > client
> > > behavior depends on the hierarchy which is checked out in the workspace.
> > >
> > > Can you reproduce this bahvior?
> > >
> > > Regards,
> > > Matthias
> >
> > Yes, this is a bug.
> >
> > The function filter_unwanted_props() in libsvn_wc/wc_db.c seems filters out
> > the cached global-ignores prop because the property names it compares are
> > different (one is qualified with "svn:" and the other isn't), even though
> > they should be the same:
> >
> > 10240 if (strcmp(ipropname, propname) != 0)
> > (gdb) p ipropname
> > $5 = 0x21281cfda20 "global-ignores"
> > (gdb) p propname
> > $6 = 0x211f750bba6 "svn:global-ignores"
> >
> > I'm not sure off-hand how to fix this.
> > I've filed http://subversion.tigris.org/issues/show_bug.cgi?id=4515
> >
> > Thanks for your report.
>
> I tried to look into this today but I cannot reproduce this bug anymore.
> I should have written a reproduction script.
>
> Matthias, do you have a way of reliably triggering this bug? Thanks.
I again looked into this and tried to create a short script. By doing this I now
understand how it works. (So it is not a bug):
If I have checked out only a portion of the repos (with the svn:global-ignores
property set at highest level) I need to run an "svn update" in the workspace
whenever there are changes done in the repos at higher level.
So the props svn:global-ignores and svn:auto-props are stored (cached) in the
workspace copy and this is where svn add / svn status look at. Any
property-changes in the repo have to be pulled into the workspace - even if set
at higher levels which are not part of the workspace.
Here are the steps to see this:
# cd into some dir
svnadmin create /tmp/myrepos
svn mkdir -m "initial dir structure" --parents file:///tmp/myrepos/a/b/c
# create a lower level workspace
svn co file:///tmp/myrepos/a/b
cd b
touch file2.foo
svn status
# (shows: ? file2.foo)
# now add the property at file:///tmp/myrepos
cd ..
svn co --depth empty file:///tmp/myrepos
cd myrepos
svn propset svn:global-ignores '*.foo' .
svn commit -m "set svn:global-ignores on repo-root" .
svn proplist --verbose .
# back to the workspace
cd ..
cd b
svn status
# (still shows: ? file2.foo)
svn update
svn status
# nothing shown anymore: ok!
Matthias
Re: svn:global-ignores limited to workspace dirs?
Posted by Stefan Sperling <st...@elego.de>.
On Wed, Jul 23, 2014 at 05:50:00PM +0200, Stefan Sperling wrote:
> On Wed, Jul 23, 2014 at 02:02:39PM +0200, Matthias Vorwerk wrote:
> > Hi,
> >
> > setting the svn property svn:global-ignores to the repository root (or some
> > higher level directory in the repository) - it obviously does not get inherited
> > if I only checkout and work in some lower-level directory (until
> > subversion-1.8.9) .
> >
> > It looks like the parent directory containing the svn:global-ignores property
> > must be present in the workspace. This seems to be in contrast to e.g. the
> > svn:auto-props property which may not be present in the workspace - it seems to
> > be looked for also on the server - which is what I expect.
> >
> > So the effect of the current svn:global-ignores handling is that the client
> > behavior depends on the hierarchy which is checked out in the workspace.
> >
> > Can you reproduce this bahvior?
> >
> > Regards,
> > Matthias
>
> Yes, this is a bug.
>
> The function filter_unwanted_props() in libsvn_wc/wc_db.c seems filters out
> the cached global-ignores prop because the property names it compares are
> different (one is qualified with "svn:" and the other isn't), even though
> they should be the same:
>
> 10240 if (strcmp(ipropname, propname) != 0)
> (gdb) p ipropname
> $5 = 0x21281cfda20 "global-ignores"
> (gdb) p propname
> $6 = 0x211f750bba6 "svn:global-ignores"
>
> I'm not sure off-hand how to fix this.
> I've filed http://subversion.tigris.org/issues/show_bug.cgi?id=4515
>
> Thanks for your report.
I tried to look into this today but I cannot reproduce this bug anymore.
I should have written a reproduction script.
Matthias, do you have a way of reliably triggering this bug? Thanks.
Re: svn:global-ignores limited to workspace dirs?
Posted by Stefan Sperling <st...@elego.de>.
On Wed, Jul 23, 2014 at 02:02:39PM +0200, Matthias Vorwerk wrote:
> Hi,
>
> setting the svn property svn:global-ignores to the repository root (or some
> higher level directory in the repository) - it obviously does not get inherited
> if I only checkout and work in some lower-level directory (until
> subversion-1.8.9) .
>
> It looks like the parent directory containing the svn:global-ignores property
> must be present in the workspace. This seems to be in contrast to e.g. the
> svn:auto-props property which may not be present in the workspace - it seems to
> be looked for also on the server - which is what I expect.
>
> So the effect of the current svn:global-ignores handling is that the client
> behavior depends on the hierarchy which is checked out in the workspace.
>
> Can you reproduce this bahvior?
>
> Regards,
> Matthias
Yes, this is a bug.
The function filter_unwanted_props() in libsvn_wc/wc_db.c seems filters out
the cached global-ignores prop because the property names it compares are
different (one is qualified with "svn:" and the other isn't), even though
they should be the same:
10240 if (strcmp(ipropname, propname) != 0)
(gdb) p ipropname
$5 = 0x21281cfda20 "global-ignores"
(gdb) p propname
$6 = 0x211f750bba6 "svn:global-ignores"
I'm not sure off-hand how to fix this.
I've filed http://subversion.tigris.org/issues/show_bug.cgi?id=4515
Thanks for your report.