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

Re: Re: Merge dialog

From: Simon Large <simon.tortoisesvn_at_googlemail.com>
Date: 2007-10-19 01:08:28 CEST

On 18/10/2007, Geoff Rowell <Geoff.Rowell@varolii.com> wrote:
> On Thursday, October 18, 2007 3:17 PM Kari Grano wrote:
> > On 2007-10-18, Stefan Küng wrote:
> > > I thought of maybe implementing a wizard style dialog which guides the
> > > user through the necessary steps. But I hit a wall here: what shall we
> > > ask the user on the first page?
> >
> > Having a wizard sounds like a good idea to reduce the complexity of the
> > UI.
> > How about:
> >
> > - page 1 would be used to select the merge style
> >
> > A. merge all changes from branch origin
> > (this is the 'automerge', or 'svn merge -g' option)
> >
> > B. merge a set of revisions from another branch
> > (this would be the old merge dialog with 'Use From URL' checked in To:
> > field.
> > Maybe this could be enhanced so that the revision set need not be
> > contiguous
> > - is it supported in 1.5?)
> >
> > C. merge the difference between two URLs
> > (this would be the old merge dialog with 'Use From URL' unchecked in To:
> > field)
> >
> > - page 2 would only be shown for selection B. On that page, the user would
> > enter branch URL and select a set of revisions.
> >
> > - page 3 would only be shown for selection C. On that page, the user would
> > enter two URLs and two revisions
> >
> > - page 4 would be used to select merge options. On that page there would
> > also be buttons for
> > 'dry run', 'diff' and 'unified diff' along with 'Finish', which would be
> > same as 'merge'.
> >
> > The problem is where to display the working copy target of the merge.
> > Could
> > it be shown on page 1?
> >
> > So there would be either a 2 or 3 page wizard, depending on page 1 choice.
> >
> From a real estate point of view it may not be possible, but I'd like to see the working copy, URLs and revisions selected on subsequent pages. Otherwise, when distracted, you'd have to be using that "Back" button to recover your train of thought.
>

Page 1 should include 2 radio buttons:
( * ) Merge a range of revisions from one source

( ) Merge two trees

and a large text area underneath which gives a description of the two
use cases when the mouse hovers over the buttons.

[ Next ]

Page 2 is for selection of the URL(s) and revisions. How it looks
depends on which option you selected.

2a. Merge a range of revisions:
[ Combo box for the From: URL ]
[ Edit box for the revisions to merge ]
[ Show log button for URL ]
[ Show log button for WC ]
[ ] Checkbox for auto merge
[ ] Checkbox for reverse merge ???

The revision range is in svn -c style (rather than -r) and can be a
list of revisions and ranges. Use the Show Log for URL dialog as an
alternative means of populating this box.
The Show Log for WC is useful for pre-1.5 systems where the WC log
(hopefully) shows which revisions have been merged in the log
messages.
If the auto merge box is checked, the other controls are greyed out,
but there should be a big fat warning somewhere (tooltip?) that this
will be *very* slow on a pre-1.5 server. It would be useful to
remember the state of this checkbox on a per-repository basis.

I don't think we need to offer HEAD as a separate control, although we
could permit HEAD in the edit box.

Reverse merge is questionable. If revision lists are supported, as I
think they are, then there is no easy way to specify this any more,
particularly from the Show Log dialog. Recent posts on the svn dev
list have been using this term, so it does have some official meaning.

2b. Merge two trees
[ Combo box for From: URL ]
[ Edit box for @revision ] [ Show Log ]

[ Combo box for To: URL ]
[ Edit box for @revision ] [ Show Log ]

HEAD may be a valid option here, although we recommend against it in
the docs. A better option than HEAD could be "WC update revision" but
that needs a crawl.

No need for the 'Use from URL' checkbox any more.
Merge tracking doesn't work for 3-way merge, so no need for any of
that here either.

I don't like the "From:" and "To" names because they appear to be the
wrong way round, but I don't know what else to call them. And neither
of them has to refer to the WC URL, which is yet another use case (eg.
Vendor branches).

In both these cases, an info pane at the bottom would show the WC path and URL.

[Back ] [ Next]

3. Select merge settings.
This is the bottom groupbox of the current merge dialog.

The action buttons can also appear on this page. They won't all be
relevant all of the time so some may be greyed out. There should be a
[ Back ] button too.

I don't think there is any need to show all the URLs again. All the
path selection is done on page 2 and you don't need to review that
when selecting settings. Even if you do, it's only a Back button away.

This doesn't reduce merging to idiot level single steps, but I don't
think that will ever be possible. I think splitting the 2 use cases
should reduce the confusion a lot, and the dialog space is reduced by
about 1/3 from current usage, while giving the new tracking options.

Simon

-- 
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Fri Oct 19 01:08:33 2007

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.