Greg Hudson <ghudson@MIT.EDU> writes:
> So, if I may rephrase the problem, when the user types:
> svn update foo/a/b foo/c/d foo/e
> the edit will start at "foo", but foo/a and foo/c should not have
> their revision numbers bumped even though there is a
> replace_directory() call for them.
Yup, that's exactly the problem.
> > I think this system is fundamentally better than the old idea --
> > whereby the client is the thing that ultimately decides which items
> > to bump after the update completes.
> I disagree. It puts the editor driver in the position of needing to
> replace a directory even if has no changes to report, just to bump the
> wc's version number. Ugly.
The trick is to stop thinking of "replace_directory" as "I'm going to
make a change to this directory". Sometimes, it just means "I need
the baton for this directory, so I can change some children."
Remember, even in the filesystem, when a parent directory changes, it
doesn't necessarily mean that some drastic dir-entry addition or
deletion has occurred; sometimes they just change because a child
"bubbled up". I feel like this is the same scenario; we're not
*really* changing a directory -- we're just "bubbling down" the batons
to get to the real change we care about.
What we *don't* want to do is do a complete editor-session on each
update target. That's got to be inefficient.
So the solution (in your example above) is to start at the common
parent directory "foo", so that the whole update can happen within a
single edit session.
> Also, even if "whether to bump the target revision" is a parameter of
> a particular replacement, the value of the target revision is a
> parameter of the update as a whole. It seems confusing to respecify
> that value for each call. Perhaps it would be too gooey to pass in
> the value early on in the edit and then use a flag in each replace
> saying whether to use it, but it still leaves me feeling like the
> design is subtly wrong.
Hmm, yeah, that would be gooey. :)
Can you be more specific about why your spidey sense is tingling?
Received on Sat Oct 21 14:36:21 2006