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

[RFC] UI to show a summary of problems after merge etc. (incl. tree conflicts)

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Mon, 20 Oct 2008 15:46:29 +0100

This is a proposal for a kind of status output that lists what files are
currently in conflict, and what kind of conflict each is suffering.

The reason is: When I do a merge (or update or switch), I may get a
bunch of conflicts in among all the successful changes. My next demands
might be:

  * What were those conflicts, again?
  * What happened, that you call a conflict?
  * What am I going to do to fix them?

The current "svn status" does tell me what's in conflict, but in a large
merge result it's not trivial to spot them among the other change
indications, nor a trivial expression to "grep" for.

The current "svn info" tells me verbosely about the conflict on a
particular node. Plus other info about the node. Far too verbose for
getting an overview of what happened to lots of nodes.

We need a middle ground: a command that says "Tell me all the problems
that this merge threw up."

The UI for invocation could be

  * svn conflicts
  * svn status --conflicts
  * svn info --conflicts-only
  * svn update --show-last-conflicts

or whatever. Something not too long or too obscure.

The UI for output needs to show:
  * tree conflicts, text conflicts, prop conflicts, obstructions/skips.
  * the path
  * the kind of conflict (more detail than just "a tree conflict")

(I think the word "conflict" can be used broadly to include what we call
an "obstruction". We will probably convert obstructions into conflicts
soon anyway.)

Here's what this first attempt looks like for two tree conflicts,
showing first a normal "svn status"[1].

The UI is up for comment - both the command line to invoke it, and the
output.

[[[
$ svn st
C A/D/G
? C A/D/G/rho
D C A/D/G/pi

$ svn st --conflicts)
? C (D>M) A/D/G/rho
D C (M>D) A/D/G/pi
]]]

Here, "(D>M)" means "an incoming Delete onto an existing Modified node".

In this patch, this indication is coded on the assumption that it's a
tree conflict, but I feel the command ought to show all kinds of problem
mentioned above.

Note also that a briefer summary of such problems has just been
implemented as a message at the end of an update/switch/merge command.
This ought to be complementary to that.

Comments?

- Julian

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org

Received on 2008-10-20 16:54:46 CEST

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