I got an add-vs-add tree conflict during update, after applying a patch
which I had also separately committed to the repo from a different WC.
Here is how it looked:
$ svn up
Updating '.':
G subversion/svn/svn.c
C subversion/svn/shelve-cmd.c
Updated to revision 1801596.
Summary of conflicts:
Tree conflicts: 1
Searching tree conflict details for 'subversion/libsvn_client/shelve.c' in
repository:
Checking r1801595... done
Tree conflict on 'subversion/libsvn_client/shelve.c':
A new file appeared during update to r1801596; it was added by julianfoad in
r1801595.
A file scheduled to be added to the repository in the next commit was found in
the working copy.
Select: (p) Postpone, (r) Mark as resolved, (m) Merge the files, (h) Help,
(q) Quit resolution: r
Tree conflict at 'subversion/libsvn_client/shelve.c' marked as resolved.
$ svn st
M subversion/svn/svn.c
RM subversion/svn/shelve-cmd.c
The "Replaced" status is a possible resolution, but not the one I
wanted, and I could not tell that is what I was going to get.
An improvement would be to show the pending status, perhaps like this:
...
A file scheduled to be added to the repository in the next commit was found in
the working copy.
Pending status of the file is:
RM subversion/svn/shelve-cmd.c
Select: (p) Postpone, (r) Mark as resolved, (m) Merge the files, (h) Help,
...
Certainly for tree conflicts I expect seeing the pending status would
always be useful; also for non-tree conflicts I expect it would often be
useful.
(Other improvements might include that the default resolution for
add-vs-add during update should not be "replaced", but I'd like to
discuss that elsewhere and keep this thread focused on showing the
pending status.)
- Julian