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_at_2'
to
'^/branches/b1/foo_at_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_at_2'
to
'^/branches/b1/foo_at_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_at_2' to '^/branches/b1/foo_at_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_at_2' to '^/branches/b1/foo_at_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_at_2' to '^/branches/b1/foo_at_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
Received on 2016-10-13 15:02:04 CEST