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

Issue #3322, branch tc_url_rev

From: Neels J. Hofmeyr <neels_at_elego.de>
Date: Thu, 20 Nov 2008 06:14:32 +0100

Julian Foad wrote:
> I have made a start on this. See attached. If you'd like to work on it
> tonight that would be great.

I've been doing other stuff until now, so I'm not going to get far. I've
created a branch for it: tc_url_rev.

Some comments:

[[[
- /** The node type of the path being operated on */
+ /** The node type of the path being operated on (for a tree conflict,
+ * ### which version?) */
   svn_node_kind_t node_kind;
]]]

I was thinking recently that we should actually have all sides.

+ /** The node type of the path being operated on, on the source's
+ * merge-left side of the operation. @see .... */
+ svn_node_kind_t node_kind_source_left;
+
+ /** The node type of the path being operated on, on the source's
+ * merge-right side of the operation. @see .... */
+ svn_node_kind_t node_kind_source_right;
+
+ /** The node type of the path being operated on, on the target side
+ * of the operation, usually the working copy. @see node_kind_... */
+ svn_node_kind_t node_kind_target;

There is be a conflict when the merge-left is not the same kind as the
target, currently.

There also is a conflict when the merge-right side is obstructed, e.g. by a
different node kind. ... can that happen ? ... yes, it can, right?

[[[
   /** If not NULL, an open working copy access baton to either the
    * path itself (if @c path is a directory), or to the parent
- * directory (if @c path is a file.) */
+ * directory (if @c path is a file.) For a tree conflict,
+ * ### to what? */
   svn_wc_adm_access_t *access;
]]]

Currently, definitely always to the parent dir, even for dirs. If we're
going to have TCs on the victims, then this would be as the comment says.

[[[
+ * NODE_KIND must the the node kind of "old" and "theirs" and "mine";
]]]
fixed typo.

[[[
+ * this function cannot cope with node kind clashes.
]]]
Could, if we reported all node kinds. But as below, this might become quite
complex...

[[[
Index: subversion/libsvn_wc/update_editor.c
===================================================================
--- subversion/libsvn_wc/update_editor.c (revision 34272)
+++ subversion/libsvn_wc/update_editor.c (working copy)
@@ -1391,18 +1391,21 @@ check_tree_conflict(svn_wc_conflict_desc
                     svn_wc_conflict_action_t action,
                     apr_pool_t *pool)
 {
+ svn_node_kind_t their_node_kind = svn_node_unknown;
   svn_wc_conflict_reason_t reason = (svn_wc_conflict_reason_t)(-1);

   switch (action)
     {
     case svn_wc_conflict_action_edit:
       /* Use case 1: Modifying a locally-deleted item. */
+ /* ### their_node_kind = ?; */
]]]

Hmm! That's a good question.

I'm sorry, my time's up for today. So let's all use the branch and schaukel
this baby.

~Neels

Received on 2008-11-20 06:14:47 CET

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.