Re: CVS update: MODIFIED: libsvn_wc ...
Date: 2001-09-04 16:17:33 CEST
"Sander Striker" <email@example.com> writes:
> I don't know if this patch is really needed, but I do think that
-- Greg Stein <firstname.lastname@example.org> writes: > > Thus, the crawler > > is *already* sorting the targets. As Mike said, right now the targets > > are being qsorted alphabetically, which guarantees that all children > > in the same directory will be examined as a group. > > Nope. It *isn't* doing that, which is why I posted the question in the first > place. If we were doing a proper traversal, then we wouldn't need to check > whether a lock had been taken out already. Thus, Mike's change to look for > an existing lock is merely covering up a deeper issue (that was my worry). -- Statements like this make it pretty obvious that people do NOT understand what's currently going on. 1. We are not 'visiting a dir' more than once. We visit once, we do some things to children of that dir, and then we're done. Sure, some of the children of that dir are directories themselves and require some recursion, but that's irrelevant. 2. Yes, the paths are being sorted alphabetically, with attention given to path separators so that each child is only visited once, but NOT such that directory children are visited before non-directory children. In fact, such determination *could not* be made without polling the disk, which is outside the domain of knowledge this function requires, or should require. Take this example: svn ci foo baz/bie baz/bell bar Now, our sorted targets will be: bar baz/bell baz/bie foo Are they files? Are they dirs? We can safely assume that baz is a directory, but can't make any assumptions about bar or foo. *Who cares*. We visit the parent directory of bar, baz, and foo, and crawl bar, baz/bell, baz/bie, and foo. When we finish with baz/bie, we exit that recursion and yes, we've forgetting that our parent directory is already locked -- which is why we now check that fact before locking again. Will someone who actually understands the code please tell me what the problem with this scenario is? --------------------------------------------------------------------- To unsubscribe, e-mail: email@example.com For additional commands, e-mail: firstname.lastname@example.orgReceived on Sat Oct 21 14:36:39 2006
This is an archived mail posted to the Subversion Dev mailing list.