Re: [RFC] Subversion command line UI for interactive conflict resolution
On 13 October 2016 at 15:23, Stefan Sperlingwrote: > On Thu, Oct 13, 2016 at 03:01:39PM +0200, Ivan Zhakov wrote: >> 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: >> ]]] > > +1 > > It might also be nice to show a detailed conflict description only > if the user asks for help: > > 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. > > By default we could show an abbreviated version of this description. Good idea. But we need short_description API to implement this :) -- Ivan Zhakov
Re: [RFC] Subversion command line UI for interactive conflict resolution
Ivan Zhakovwrites: > 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 I'd love to see the layout like this: Resolution options: (p) Postpone (r) Mark as resolved (m) Move and merge (h) Help (q) Postpone all remaining conflicts Which changes to this, if the user selects "Help": 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 '^/subversion/trunk/subversion/libsvn_client/foo' to 'subversion\libsvn_client\bar' and merge) (h) Help (q) Postpone all remaining conflicts Regards, Evgeny Kotkov
Re: [RFC] Subversion command line UI for interactive conflict resolution
On Thu, Oct 13, 2016 at 03:01:39PM +0200, Ivan Zhakov wrote: > 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: > ]]] +1 It might also be nice to show a detailed conflict description only if the user asks for help: 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. By default we could show an abbreviated version of this description.
[RFC] Subversion command line UI for interactive conflict resolution
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