[prev in list] [next in list] [prev in thread] [next in thread] 

List:       subversion-issues
Subject:    [Issue 4412]  report_context_t.lock_token_paths don't match
From:       philip () tigris ! org
Date:       2014-03-26 11:23:04
Message-ID: 20140326112304.52EFB5400D1 () sc157-tigr ! sjc ! collab ! net
[Download RAW message or body]

http://subversion.tigris.org/issues/show_bug.cgi?id=4412






------- Additional comments from philip@tigris.org Wed Mar 26 04:23:04 -0700 2014 -------
Patch below fixes causes the broken lock to be reported by the client, but it
introduces a new bug: the lock gets reported as broken when it is still present.
Did this code ever work?

Index: ../src/subversion/libsvn_ra_serf/update.c
===================================================================
--- ../src/subversion/libsvn_ra_serf/update.c	(revision 1581775)
+++ ../src/subversion/libsvn_ra_serf/update.c	(working copy)
@@ -642,6 +642,7 @@
   dir_baton_t *parent = ctx->cur_dir;
   apr_pool_t *file_pool;
   file_baton_t *file;
+  const char *report_relpath;
 
   file_pool = svn_pool_create(parent->pool);
 
@@ -663,8 +664,12 @@
   file->base_rev = SVN_INVALID_REVNUM;
   file->copyfrom_rev = SVN_INVALID_REVNUM;
 
-  file->lock_token = svn_hash_gets(ctx->lock_path_tokens,
-                                   file->relpath);
+  /* We need to query with the same relpath passed to set_path. */
+  report_relpath = svn_relpath_skip_ancestor(ctx->update_target,
+                                             file->relpath);
+  if (report_relpath)
+    file->lock_token = svn_hash_gets(ctx->lock_path_tokens,
+                                     report_relpath);
 
   *new_file = file;

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=463&dsMessageId=3075256

To unsubscribe from this discussion, e-mail: [issues-unsubscribe@subversion.tigris.org].
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic