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

Re: current tree-conflicts branch status

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Wed, 16 Jan 2008 18:31:35 +0100

Stefan Sperling wrote:
[snip]
> This is what happens on the tree conflict branch instead (new behaviour):
>
> The update will apply A's modifications to Foo.c in the
> repository to Foo.c in B's working copy. It will also put
> the directory containing Foo.c into a state of conflict.
>
> $ svn update
> U Foo.c
> C .
> Updated to revision 2.
>
> Note again that Foo.c is marked for deletion in B's working copy.
> So A's modification has been applied to a file marked as locally deleted.
>
> B now tries to do a commit, but the commit fails.
>
> $ svn ci -m "renamed Foo.c to Bar.c"
> svn: Commit failed (details follow):
> svn: Aborting commit: '/tmp/wcB' remains in conflict
>
> (Here, /tmp/wcB happens to be the working copy root, but a tree conflict
> may be anchored at any directory in the working copy.)
>
> B can now run "svn info" on the tree-conflicted directory to inquire
> about the conflict, and decide what action to take to resolve it, possibly
> discussing the proper fix with A.
>
> $ svn info /tmp/wcB
> Path: /tmp/wcB
> URL: file:///tmp/repo
> Repository Root: file:///tmp/repo
> Repository UUID: eb86d84e-d4f0-407f-a0df-a893da9c5563
> Revision: 2
> Node Kind: directory
> Schedule: normal
> Last Changed Author: stsp
> Last Changed Rev: 2
> Last Changed Date: 2008-01-16 16:31:37 +0100 (Wed, 16 Jan 2008)
> Tree conflicts:
> The update edited the file 'Foo.c'.
> You have deleted 'Foo.c' locally.
> Maybe you renamed it?
>
> Note the last few lines in the output. (Whether this is the right
> place to put this information, and whether it has the right format
> is still open for debate. See http://svn.haxx.se/dev/archive-2008-01/0098.shtml)

Why does only 'svn info' show the hint? I would prefer if that hint
would be shown in the failed commit. After all, that's what the user
wanted to do and failed, and showing the user *why* it failed should be
done in the commit error message.

I guess I could do that in TSVN by calling svn_client_info() after a
failed commit, but I think most clients would want that info in the
error message, so IMHO it should be done in the svn library.

[snip]
> This is what happens on the tree conflict branch instead (new behaviour):
>
> The update will add Bar.c (with the same content as the original Foo.c)
> to B's working copy, and delete Foo.c from B's working copy.
>
> The directory containing Foo.c will be put in a state of conflict.
>
> Since B made local modifications to Foo.c, it will not be deleted from
> disk but left behind unversioned.
>
> B's source tree in the working copy likely builds fine because Foo.c
> is still present on disk.
>
> B now tries to do a commit, but the commit fails because of the
> tree-conflicted directory.
>
> B can now run "svn info" on the tree-conflicted directory to inquire
> about the conflict, and decide what action to take to resolve it.

Again, why not just show the hint text of 'svn info' in the commit error
message?

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.net
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-01-16 18:32:04 CET

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