Max Bowsher wrote:
> IIUC, a big part of getting out-of-date errors on directories, is that
> we are very strict in our server-side transaction-merging code about
> fully up-to-date.
>
> I think there is scope to loosen the restrictions, if done carefully.
>
> Currently, we disallow a propchange on a directory unless it is
> up-to-date in the WC with the last revision made anywhere below it in
> the repository (due to bubble-up). We do this (IIRC) because post-commit
> rev-bumping of a directory which was not fully up to date *could*
> involve addition or removal of children of the directory.
>
> Therefore, the first relaxation we could do, would be to explicitly
> check whether a given merging involves a change in the child list of a
> directory, instead of simply noting that it *might*, and stopping
> immediately.
So long as we could perform this check both during the editor drive (for
early-out in the failure case) and in the final merge, I think this makes
sense.
Of course, we'll need to make sure our check for a change in the child list
is done right. It's early, and I'm only halfway through my coffee, but I
think the criteria would be:
* the entries list for the "old" and "new" directories would be identical
from an entry name perspective.
* for each name in one list, the child associated with that name must
be related-to-and-not-a-copy-of the child associated with that name
in the other list.
It's that second requirement that strikes me as non-trivial in the case of
child node's lazily growing different copy-IDs after the copy of the
directory. Here's what I'm thinking about:
$ svn cp http://.../trunk http://.../branches/my-branch
$ svn co http://.../branches/my-branch
$ vi my-branch/some-file
$ svn ci -m "Modify some-file in my-branch." my-branch
$ svn propset svn:ignore '*.rej' my-branch
$ svn ci -m "Ignore files ending in .rej in my-branch." my-branch
cmpilato awaits one much more awake to smack his concerns into oblivion.
--
C. Michael Pilato <cmpilato@collab.net>
CollabNet <> www.collab.net <> Distributed Development On Demand
Received on Thu Aug 3 15:34:42 2006