[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

[PATCH] completing the data flow of tmp text base paths in commit

From: Julian Foad <julian.foad_at_wandisco.com>
Date: Mon, 29 Mar 2010 18:10:45 +0100

The attached patch is an attempt to close the gap between "transmit text
deltas" and commit post-processing, by passing the temporary new text
base file paths around. It succeeds in that, at least it looks right
and passes the test suite.

The part of this patch that I haven't finished is with back-compat of
svn_wc__process_committed_internal(), and what is the difference between
its 'queue' parameter and its checksum/recurse/no_unlock/etc.
parameters, being values which are alternatively available in the queue.

svn_wc__process_committed_internal() is called by
svn_wc_process_committed_queue2() which passes the 'queue' param, and
also by the deprecated svn_wc_process_committed4() with QUEUE=NULL. I
had been assuming that if QUEUE==NULL then all the parameters that are
available in the queue (checksum for one) are not available, but that's
not how the back-compat wrapper wants to work. I'll need to fix that.
I think the right thing to do is to re-write the wrapper
(svn_wc_process_committed4()) to construct a new queue with one item and
pass that, and stop having the other parameters (checksum etc.) passed
as separate parameters. I'll look at that tomorrow. I may already have
committed changes that break that back-compat; I'll check.

The internal recursion of svn_wc__process_committed_internal() is
confusing me: it passes NO_UNLOCK=TRUE to itself when recursing,
regardless of what no_unlock value was passed in or what is in the queue
item. Yet it passes the received value of KEEP_CHANGELIST. For the
NEW_DAV_CACHE and CHECKSUM arguments it passes NULL, which is half
explained by them only having meaning in connection with a single node:
the same ones cannot be applicable to a child node.


- Julian

Received on 2010-03-29 19:11:22 CEST

This is an archived mail posted to the Subversion Dev mailing list.