You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2012/10/11 15:50:26 UTC

svn commit: r1397052 - in /subversion/trunk/subversion/libsvn_wc: conflicts.c entries.c info.c tree_conflicts.c wc.h

Author: rhuijben
Date: Thu Oct 11 13:50:25 2012
New Revision: 1397052

URL: http://svn.apache.org/viewvc?rev=1397052&view=rev
Log:
Make the creation of temporary files for inclusion in
svn_wc_conflict_description2_t optional to avoid creating
the property tempfiles when just reading a tree conflict.

* subversion/libsvn_wc/conflicts.c
  (read_prop_conflicts,
   svn_wc__read_conflicts): Make creating property tempfiles optional.
  (conflict_status_walker): Update caller.

* subversion/libsvn_wc/entries.c
  (read_one_entry): Update caller.

* subversion/libsvn_wc/info.c
  (build_info_for_node,
   svn_wc__get_info): Update caller.

* subversion/libsvn_wc/tree_conflicts.c
  (svn_wc__get_tree_conflict): Update caller.

* subversion/libsvn_wc/wc.h
  (svn_wc__read_conflicts): Update prototype.

Modified:
    subversion/trunk/subversion/libsvn_wc/conflicts.c
    subversion/trunk/subversion/libsvn_wc/entries.c
    subversion/trunk/subversion/libsvn_wc/info.c
    subversion/trunk/subversion/libsvn_wc/tree_conflicts.c
    subversion/trunk/subversion/libsvn_wc/wc.h

Modified: subversion/trunk/subversion/libsvn_wc/conflicts.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/conflicts.c?rev=1397052&r1=1397051&r2=1397052&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/conflicts.c (original)
+++ subversion/trunk/subversion/libsvn_wc/conflicts.c Thu Oct 11 13:50:25 2012
@@ -1912,13 +1912,19 @@ svn_wc__conflict_invoke_resolver(svn_wc_
 
 /* Read all property conflicts contained in CONFLICT_SKEL into
  * individual conflict descriptions, and append those descriptions
- * to the CONFLICTS array. Allocate results in RESULT_POOL.
- * SCRATCH_POOL is used for temporary allocations. */
+ * to the CONFLICTS array.
+ *
+ * If NOT create_tempfiles, always create a legacy property conflict
+ * descriptor.
+ *
+ * Allocate results in RESULT_POOL. SCRATCH_POOL is used for temporary
+ * allocations. */
 static svn_error_t *
 read_prop_conflicts(apr_array_header_t *conflicts,
                     svn_wc__db_t *db,
                     const char *local_abspath,
                     svn_skel_t *conflict_skel,
+                    svn_boolean_t create_tempfiles,
                     apr_pool_t *result_pool,
                     apr_pool_t *scratch_pool)
 {
@@ -1939,7 +1945,7 @@ read_prop_conflicts(apr_array_header_t *
                                               conflict_skel,
                                               scratch_pool, scratch_pool));
 
-  if (apr_hash_count(conflicted_props) == 0)
+  if ((! create_tempfiles) || apr_hash_count(conflicted_props) == 0)
     {
       /* Legacy prop conflict with only a .reject file. */
       svn_wc_conflict_description2_t *desc;
@@ -2061,6 +2067,7 @@ svn_error_t *
 svn_wc__read_conflicts(const apr_array_header_t **conflicts,
                        svn_wc__db_t *db,
                        const char *local_abspath,
+                       svn_boolean_t create_tempfiles,
                        apr_pool_t *result_pool,
                        apr_pool_t *scratch_pool)
 {
@@ -2093,6 +2100,7 @@ svn_wc__read_conflicts(const apr_array_h
 
   if (prop_conflicted)
     SVN_ERR(read_prop_conflicts(cflcts, db, local_abspath, conflict_skel,
+                                create_tempfiles,
                                 result_pool, scratch_pool));
 
   if (text_conflicted)
@@ -2575,7 +2583,7 @@ conflict_status_walker(void *baton,
 
   iterpool = svn_pool_create(scratch_pool);
 
-  SVN_ERR(svn_wc__read_conflicts(&conflicts, db, local_abspath,
+  SVN_ERR(svn_wc__read_conflicts(&conflicts, db, local_abspath, TRUE,
                                  scratch_pool, iterpool));
 
   for (i = 0; i < conflicts->nelts; i++)

Modified: subversion/trunk/subversion/libsvn_wc/entries.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/entries.c?rev=1397052&r1=1397051&r2=1397052&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/entries.c (original)
+++ subversion/trunk/subversion/libsvn_wc/entries.c Thu Oct 11 13:50:25 2012
@@ -455,6 +455,7 @@ read_one_entry(const svn_wc_entry_t **ne
 
           SVN_ERR(svn_wc__read_conflicts(&child_conflicts,
                                          db, child_abspath,
+                                         FALSE /* create tempfiles */,
                                          scratch_pool, scratch_pool));
 
           for (j = 0; j < child_conflicts->nelts; j++)

Modified: subversion/trunk/subversion/libsvn_wc/info.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/info.c?rev=1397052&r1=1397051&r2=1397052&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/info.c (original)
+++ subversion/trunk/subversion/libsvn_wc/info.c Thu Oct 11 13:50:25 2012
@@ -281,6 +281,7 @@ build_info_for_node(svn_wc__info2_t **in
   if (conflicted)
     SVN_ERR(svn_wc__read_conflicts(&wc_info->conflicts, db,
                                    local_abspath,
+                                   TRUE /* ### create tempfiles */,
                                    result_pool, scratch_pool));
   else
     wc_info->conflicts = NULL;
@@ -526,6 +527,7 @@ svn_wc__get_info(svn_wc_context_t *wc_ct
 
       SVN_ERR(svn_wc__read_conflicts(&info->wc_info->conflicts,
                                      wc_ctx->db, this_abspath,
+                                     TRUE /* ### create tempfiles */,
                                      iterpool, iterpool));
 
       if (! info->wc_info->conflicts || ! info->wc_info->conflicts->nelts)

Modified: subversion/trunk/subversion/libsvn_wc/tree_conflicts.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/tree_conflicts.c?rev=1397052&r1=1397051&r2=1397052&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/tree_conflicts.c (original)
+++ subversion/trunk/subversion/libsvn_wc/tree_conflicts.c Thu Oct 11 13:50:25 2012
@@ -472,7 +472,7 @@ svn_wc__get_tree_conflict(const svn_wc_c
   SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
 
   SVN_ERR(svn_wc__read_conflicts(&conflicts,
-                                 wc_ctx->db, local_abspath,
+                                 wc_ctx->db, local_abspath, FALSE,
                                  scratch_pool, scratch_pool));
 
   if (!conflicts || conflicts->nelts == 0)

Modified: subversion/trunk/subversion/libsvn_wc/wc.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc.h?rev=1397052&r1=1397051&r2=1397052&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc.h (original)
+++ subversion/trunk/subversion/libsvn_wc/wc.h Thu Oct 11 13:50:25 2012
@@ -708,6 +708,8 @@ svn_wc__write_check(svn_wc__db_t *db,
  *
  * Victim must be versioned or be part of a tree conflict.
  *
+ * If CREATE_TEMPFILES is TRUE, create temporary files for property conflicts.
+ *
  * Allocate *CONFLICTS in RESULT_POOL and do temporary allocations in
  * SCRATCH_POOL
  */
@@ -715,6 +717,7 @@ svn_error_t *
 svn_wc__read_conflicts(const apr_array_header_t **conflicts,
                        svn_wc__db_t *db,
                        const char *local_abspath,
+                       svn_boolean_t create_tempfiles,
                        apr_pool_t *result_pool,
                        apr_pool_t *scratch_pool);