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