Hi All,

NODES.dav_cache in wc.db is always set to NULL in serf.

Is it intentional?

If not attached patch would fix it.

Why I am concerned?

I was testing one scenario(master-slave setup) which failed becuase of NODES.dav_cache being NULL.

Scenario:

I was trying to understand r900797(Commit where subsequent commits(from same WC) to the same out-dated proxy(out-dated only after the first commit) was made to succeed via <D:apply-to-version/>)

For some time I could see it fail with trunk binary later reduced with the following cases,

Case 1:
svn ci -m "first mod" file --config-option servers:global:http-library=neon
echo "second mod" >> file
svn ci -m "second mod" file --config-option servers:global:http-library=neon

Case 1 succeeds.

Case 2:
svn ci -m "first mod" file --config-option servers:global:http-library=serf
echo "second mod" >> file
svn ci -m "second mod" file --config-option servers:global:http-library=serf

Case 2 succeeds

Case 3
svn ci -m "first mod" file --config-option servers:global:http-library=neon
echo "second mod" >> file
svn ci -m "second mod" file --config-option servers:global:http-library=serf

Case 3 succeeds.

Case 4
svn ci -m "first mod" file --config-option servers:global:http-library=serf
echo "second mod" >> file
svn ci -m "second mod" file --config-option servers:global:http-library=neon

Case 4 *fails*

Case 5
svn ci -m "first mod" file --config-option servers:global:http-library=neon
echo "second mod" >> file
svn ci -m "second mod" file --config-option servers:global:http-library=serf
echo "third mod" >> file
svn ci -m "third mod" file --config-option servers:global:http-library=neon

Case 5 *fails*.


Effectively once your working copy is used with serf you can not go back to neon for this particular *CASE*.

Regards,
Arwin Arni
Index: subversion/libsvn_ra_serf/merge.c
===================================================================
--- subversion/libsvn_ra_serf/merge.c   (revision 1095083)
+++ subversion/libsvn_ra_serf/merge.c   (working copy)
@@ -308,8 +308,7 @@
           /* We now need to dive all the way into the WC to update the
            * base VCC url.
            */
-          if ((! SVN_RA_SERF__HAVE_HTTPV2_SUPPORT(ctx->session))
-              && ctx->session->wc_callbacks->push_wc_prop)
+          if (ctx->session->wc_callbacks->push_wc_prop)
             {
               svn_string_t checked_in_str;
               const char *checked_in;
* subversion/libsvn_ra_serf/merge.c
  (end_merge) : Remove extra check

Patch by : Arwin Arni
          <arwin_{AT}_collab.net>

Reply via email to