Max Bowsher <maxb1@ukf.net> wrote on 08/03/2006 07:31:55 AM:
> 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.
>
>
> The second, more complex, relaxation would be to enhance the RA
> protocols to the point where the server can allow a propchange on a
> directory even if it has changes to its child list, but can then say to
> the client "OK, you've committed the directory itself, but now you must
> mark it as incomplete in your working copy, since your knowledge of its
> children is now no longer correct."
Stuff like this would help a lot and is certainly a less hackish.
I was going to write this next paragraph, but before I clicked send I
decoded to try it:
"I think the "move/rename/delete" problem could use some work too. Say
you have a folder checked out and then various commits of modifications to
files in the folder takes places. Whether by you or another user. Your
copy of the folder is now out of date. This prevents you from committing
a delete to a file in the folder. It seems like this could be enhanced to
relax this restriction if no files have been added/deleted to the folder
since the revision you have locally."
Of course when I tried it, I did not get any problems. Now I am
thoroughly confused about this. I checked out a project in Subclipse,
modified and committed files, deleted files, renamed files, even renamed
child folders. I was always able to commit without getting an error and I
never did any updates. Of course this is all good, but I expected to get
out of date messages. Is there a good explanation somewhere of how this
works and when you do and do not get these errors? Maybe property changes
are the only time this is really an issue and something like what Max
suggested would therefore go a long ways towards reducing the problems.
Mark
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Aug 3 15:45:45 2006