Re: svn commit: r1464769 - in /subversion/trunk/subversion/libsvn_client: revert.c switch.c update.c
From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Fri, 5 Apr 2013 16:11:21 +0100 (BST)
Philip Martin wrote:
>> URL: http://svn.apache.org/r1464769
The client-side operations where we were already sleeping for timestamps (before I started this sequence of changes) are: checkout, update, switch, revert and commit. The first four of those have a "use-commit-times" mode, so that's why those four are the subject of this patch. Bert points out that operations such as "status" can also update the WC recorded info, so we might consider adding a sleep in such places too, but that's out of scope for this use-commit-times patch.
I refute your claim that the commit time is a completely arbitrary time. Of course those times *can* be set to any arbitrary value, but I aim to support the following two scenarios when use-commit-times is in effect:
* Far past: The recorded commit time, compared with the client-side
- We do not need to sleep.
* Near past: The recorded commit time, compared with the client-side
- We do need to sleep.
That second scenario is likely after a commit from the local client, and when doing rapid work across multiple clients, assuming the client(s) and server clocks are sufficiently well synchronized which seems a reasonable assumption if you expect that sort of thing to work.
I *do not* aim to support the remaining possible scenario, which can be summarized as:
* The recorded commit time is in the future with respect to the client.
- Sleeping could be neutral or could avoid or create a problem.
That scenario is not easily supported in the current code (it requires support in libsvn_wc, the subject of an issue I filed the other day), and the recent changes change it but don't make it significantly better or worse, and in my opinion it is not a reasonable use case to try to support at this point.
Does this make sense now, and how can I change the log message wording to clarify and so it doesn't misrepresent you?
This is an archived mail posted to the Subversion Dev mailing list.