Add section for "Conflict/overwrite decision algorithm" and label substeps so that we can refer to them from the code.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
Daira Hopwood 2015-11-04 13:56:49 +00:00
parent 71c65125d7
commit d013262101

View File

@ -768,6 +768,9 @@ metadata. This will have the effect of making other clients treat
this change as a conflict whenever they already have a copy of the
file.
Conflict/overwrite decision algorithm
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Now we are ready to describe the algorithm for determining whether a
download for the file ``foo`` is an overwrite or a conflict (refining
step 2 of the procedure from the `Earth Dragons`_ section).
@ -792,11 +795,11 @@ may be absent). Then the algorithm is:
* 2c. If any of the following are true, then classify as a conflict:
* there are pending notifications of changes to ``foo``;
* the last-uploaded statinfo is either absent (i.e. there is no
entry in the database for this path), or different from the
* i. there are pending notifications of changes to ``foo``;
* ii. the last-uploaded statinfo is either absent (i.e. there is
no entry in the database for this path), or different from the
current statinfo;
* either ``last_downloaded_uri`` or ``last_uploaded_uri``
* iii. either ``last_downloaded_uri`` or ``last_uploaded_uri``
(or both) are absent, or they are different.
Otherwise, classify as an overwrite.