[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

RE: svn commit: r39091 - in trunk/subversion: libsvn_client libsvn_wc

From: Bert Huijben <rhuijben_at_sharpsvn.net>
Date: Thu, 3 Sep 2009 02:10:54 +0200

> -----Original Message-----
> From: Stefan Sperling [mailto:stsp_at_elego.de]
> Sent: donderdag 3 september 2009 1:20
> To: dev_at_subversion.tigris.org
> Subject: Re: svn commit: r39091 - in trunk/subversion: libsvn_client
> libsvn_wc
>
> On Wed, Sep 02, 2009 at 03:28:46PM -0700, Bert Huijben wrote:
> > Author: rhuijben
> > Date: Wed Sep 2 15:28:45 2009
> > New Revision: 39091
> >
> > Log:
> > Take a few small steps towards removing access batons and entries
> > from the status walker.
>
>
> > @@ -730,43 +739,44 @@ is_external_path(apr_hash_t *externals,
>
> > - svn_boolean_t ignore_me = svn_wc_match_ignore_list(name, patterns,
> pool);
>
> > + ignore =
> svn_wc_match_ignore_list(svn_dirent_basename(local_abspath, NULL),
> > + patterns, pool);
>
> Is it correct to always match svn:ignore on the basename of a path?
>
> Could the path not have been entered as a relative path with
> a few subdirectories in it, like "foo/bar/baz"? Will just matching
> "baz" always yield the correct result?

Before this change 'name' was always the name of a node inside the directory
to which it is now joined, so this transformation doesn't change behavior

See the documentation of this function:
   NAME is the basename of the unversioned file whose status is being
   requested. PATH_KIND is the node kind of NAME as determined by the
   caller. PATH_SPECIAL is the special status of the path, also determined
   by the caller. ADM_ACCESS is an access baton for the working copy path.
   PATTERNS points to a list of filename patterns which are marked as
   ignored. None of these parameter may be NULL. EXTERNALS is a hash
   of known externals definitions for this status run.

Besides, we don't support setting svn:ignore fields that apply on more than
node names. (We /can/ set svn:externals containing subdirectory paths).

I sometimes see examples of ignore patterns containing 'subdirectory/file'
like formats on the users list and StackOverflow, but those are never
matched by subversion. Our code just checks the filename with
svn_wc_match_ignore_list(); a wrapper around apr_fnmatch().

(Changing/'fixing' that would introduce a lot of strange behavior.. like
'svn status' showing more unversioned files when called from a subdir then
when called from the parent directory)

        Bert

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2390478
Received on 2009-09-03 02:10:42 CEST

This is an archived mail posted to the Subversion Dev mailing list.