Author: rhuijben
Date: Fri Jul  2 09:10:44 2010
New Revision: 959923

URL: http://svn.apache.org/viewvc?rev=959923&view=rev
Log:
* subversion/libsvn_wc/node.c
  (svn_wc__node_get_info_bits): Retrieve these bits the WC-NG way.

Modified:
    subversion/trunk/subversion/libsvn_wc/node.c

Modified: subversion/trunk/subversion/libsvn_wc/node.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/node.c?rev=959923&r1=959922&r2=959923&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/node.c (original)
+++ subversion/trunk/subversion/libsvn_wc/node.c Fri Jul  2 09:10:44 2010
@@ -1421,26 +1421,60 @@ svn_wc__node_get_info_bits(apr_time_t *t
                            apr_pool_t *result_pool,
                            apr_pool_t *scratch_pool)
 {
-  const svn_wc_entry_t *entry;
+  svn_boolean_t conflicted;
 
-  SVN_ERR(svn_wc__get_entry_versioned(&entry, wc_ctx->db, local_abspath,
-                                      svn_node_unknown, TRUE, FALSE,
-                                      result_pool, scratch_pool));
-
-  if (text_time)
-    *text_time = entry->text_time;
+  SVN_ERR(svn_wc__db_read_info(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+                               NULL, NULL, NULL, NULL, text_time, NULL, NULL,
+                               NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+                               &conflicted, NULL,
+                               wc_ctx->db, local_abspath,
+                               scratch_pool, scratch_pool));
 
   if (conflict_old)
-    *conflict_old = entry->conflict_old;
-
+    *conflict_old = NULL;
   if (conflict_new)
-    *conflict_new = entry->conflict_new;
-
+    *conflict_new = NULL;
   if (conflict_wrk)
-    *conflict_wrk = entry->conflict_wrk;
-
+    *conflict_wrk = NULL;
   if (prejfile)
-    *prejfile = entry->prejfile;
+    *prejfile = NULL;
+
+  if (conflicted
+      && (conflict_old || conflict_new || conflict_wrk || prejfile))
+    {
+      const apr_array_header_t *conflicts;
+      int j;
+      SVN_ERR(svn_wc__db_read_conflicts(&conflicts, wc_ctx->db, local_abspath,
+                                        scratch_pool, scratch_pool));
+
+      for (j = 0; j < conflicts->nelts; j++)
+        {
+          const svn_wc_conflict_description2_t *cd;
+          cd = APR_ARRAY_IDX(conflicts, j,
+                             const svn_wc_conflict_description2_t *);
+
+          switch (cd->kind)
+            {
+            case svn_wc_conflict_kind_text:
+              if (conflict_old)
+                *conflict_old = apr_pstrdup(result_pool, cd->base_file);
+
+              if (conflict_new)
+                *conflict_new = apr_pstrdup(result_pool, cd->their_file);
+
+              if (conflict_wrk)
+                *conflict_wrk = apr_pstrdup(result_pool, cd->my_file);
+              break;
+
+            case svn_wc_conflict_kind_property:
+              if (prejfile)
+                *prejfile = apr_pstrdup(result_pool, cd->their_file);
+              break;
+            case svn_wc_conflict_kind_tree:
+              break;
+            }
+        }
+    }
 
   return SVN_NO_ERROR;
 }


Reply via email to