Hi, I'm thinking new conflict resolution should look like in Subversion command line client. Currently 'svn resolve' works like the following: [[[ $ svn resolve Searching tree conflict details for 'D:\ivan\svn\test-wc\add-versus-add\foo' in repository: Checking r5... done Tree conflict on 'D:\ivan\svn\test-wc\add-versus-add\foo': File merged from '^/trunk/foo@2' to '^/branches/b1/foo@16' was moved to '^/branches/b1/bar' by ivan in r5. A file which differs from the corresponding file on the merge source branch was found in the working copy. Select: (p) postpone, (r) accept current working copy state, (m) move 'foo' to 'bar' and merge, (h) help, (q) quit resolution: ]]]
Then when user types 'h' it will see expanded conflict resolutions options with one option on each line: [[[ File merged from '^/trunk/foo@2' to '^/branches/b1/foo@16' was moved to '^/branches/b1/bar' by ivan in r5. A file which differs from the corresponding file on the merge source branch was found in the working copy. (p) - skip this conflict and leave it unresolved [postpone] (r) - accept current working copy state [working] (m) - move 'foo' to 'bar' and merge (h) - show this help (also '?') (q) - postpone all remaining conflicts Words in square brackets are the corresponding --accept option arguments. Select: (p) postpone, (r) accept current working copy state, (m) move 'foo' to 'bar' and merge, (h) help, (q) quit resolution: ]]] I suggest to change behavior to something like the following: [[[ $ svn resolve Searching tree conflict details for 'D:\ivan\svn\test-wc\add-versus-add\foo' in repository: Checking r5... done Tree conflict on 'D:\ivan\svn\test-wc\add-versus-add\foo': File merged from '^/trunk/foo@2' to '^/branches/b1/foo@16' was moved to '^/branches/b1/bar' by ivan in r5. A file which differs from the corresponding file on the merge source branch was found in the working copy. Resolution options: (p) - postpone (r) - mark as resolved (m) - move and merge (h) - help (q) - postpone all remaining conflicts Select: ]]] When user types 'h' the some prompt will be shown, but with more detailed description: [[[ Tree conflict on 'D:\ivan\svn\test-wc\add-versus-add\foo': File merged from '^/trunk/foo@2' to '^/branches/b1/foo@16' was moved to '^/branches/b1/bar' by ivan in r5. A file which differs from the corresponding file on the merge source branch was found in the working copy. Resolution options: (p) - postpone skip this conflict and leave it unresolved [postpone] (r) - mark as resolved accept current working copy state [working] (m) - move and merge move 'foo' to 'bar' and merge (h) - help (q) - postpone all remaining conflicts Select: ]]] Alternative layout: [[[ Tree conflict on 'D:\ivan\svn\test-wc\add-versus-add\foo': File merged from '^/trunk/foo@2' to '^/branches/b1/foo@16' was moved to '^/branches/b1/bar' by ivan in r5. A file which differs from the corresponding file on the merge source branch was found in the working copy. Resolution options: (p) - Postpone: skip this conflict and leave it unresolved. [postpone] (r) - Mark as resolved: accept current working copy state. [working] (m) - Move and merge: move 'foo' to 'bar' and merge. (h) - Help (q) - Postpone all remaining conflicts Select: ]]] -- Ivan Zhakov