Community
Participate
Working Groups
Created attachment 194873 [details] First page of described wizard workflow with predefined configurations First of all the current implementation of synchronize wizard isn't fully functional comparing to sync-dialog available from project's 'Team' menu. It doesn't allow to select source branch and enable/disable showing local changes. Both UI should offer same functionality for the user. Secondly launching synchronization via sync-wizard requires lots of mouse clicks. IMHO we should reduce amount of required click by providing easily available synchronize configurations like: * synchronize workspace * compare with remote tracking branch Apart from that we should also give possibility to launch custom synchronization where user would have full control of source and destination branch and workspace changes IMHO synchronize wizard should contain two pages. On first user can choose between two described above predefined configurations. When one of those configuration would be selected he should be able to immediate finish wizard and launch synchronization. When none of this configuration fits his needs he should select 'custom' option and go to the next wizard page where he can fill proper configuration
Created attachment 194874 [details] Second wizard page with custom configuration
I think the wizard should be project driven with a project per row in the table. Then the Synchronize... action on project selections would just open the wizard with those projects initially checked. I would be happy to submit an extension of your current patch with what I am proposing.
(In reply to comment #2) > I think the wizard should be project driven with a project per row in the > table. Why do you think it should be 'project driven' ? IMHO this can be some times miss leading, because user expect to synchronize only project that he selected not whole repository. But from the second hand we already have similar approach in package explorer where synchronization initially launched from project's context menu displays changes in repository (not only in selected project); but in this case we didn't have any choice. > Then the Synchronize... action on project selections would just open the wizard > with those projects initially checked. This seams to be a good idea to have one UI for 'custom' synchronization configuration. > I would be happy to submit an extension of your current patch with what I am > proposing. TBH yours proposition with 'project driven' wizard doesn't fits me, but I'm not a regular user ;) Of course feel free to modify my changes.
Maybe the approach Mathias took by replacing a complicated branch dialog by a dynamic "Switch to" menu could also help here for the most common source/target combinations. We could have a similar menu listing the newest n branches and tags (including not yet committed modifications) and providing a dialog for the less frequently used options: "Synchronize workspace with" | --- master --- foo --- bar --- origin/master --- origin/stable-0.12 --- origin/stable-0.11 --- tags/v0.12.1 --- tags/v0.12.0 --- tags/v0.10.1 --- Other...
The reason I am suggesting project-driven is that other team providers display projects in their wizards so users are familiar project-driven synchronization. Also, doesn't the synchronize view only display files that are in projects?
Created attachment 194892 [details] Project-driven sync wizard page.
I would expect the Synchronize... from a project selection to open the Sync wizard with Source being HEAD and Destination being the name of my currently checked out branch with the "include local resources" option checked. When opened from the Synchronize view drop-down menu I would expect all projects to be checked, with the source branch being HEAD, the Destination being the name of the currently checkout branch for that project's repository and the "include local resources" option checked.
Another reason to go with project-driven would be to support a Scope section in the wizard where workspace, working sets, or selected resources are radio options similar to the CVS synchronize wizard page.
(In reply to comment #4) > Maybe the approach Mathias took by replacing a complicated branch dialog by a > dynamic "Switch to" menu could also help here for the most common source/target > combinations. This sounds like a good idea. But maybe we could also leave a shortcut for comparing with HEAD eg: Synchronize Workspace Synchronize... | --- master --- foo --- bar --- origin/master --- origin/stable-0.12 --- origin/stable-0.11 --- tags/v0.12.1 --- tags/v0.12.0 --- tags/v0.10.1 --- Other... Maybe we should also always use current HEAD branch as a source and don't allow users to change this? (this approach can simplify some things) (In reply to comment #5) > The reason I am suggesting project-driven is that other team providers display > projects > in their wizards so users are familiar project-driven synchronization. OK, this seams reasonable. > Also, doesn't the synchronize view only display files that are in projects? By default it doesn't display non-workspace files ... but 'Git Change Set' model can display non-workspace files and even show compare view for them ;)
(In reply to comment #7) > I would expect the Synchronize... from a project selection to open the Sync > wizard with Source being HEAD > and Destination being the name of my currently checked out branch with the > "include local resources" option checked. Actually I would reduce as much as we can the number of clicks between showing context menu and showing sync results. Ideally IMHO this action in 80% of cases should be started by one click therefore (currently) I'm huge fan of having 'Synchronize Workspace' option in context menu.
(In reply to comment #10) > (In reply to comment #7) > > I would expect the Synchronize... from a project selection to open the Sync > > wizard with Source being HEAD > > and Destination being the name of my currently checked out branch with the > > "include local resources" option checked. > > Actually I would reduce as much as we can the number of clicks between showing > context menu and showing sync results. Ideally IMHO this action in 80% of cases > should be started by one click therefore (currently) I'm huge fan of having > 'Synchronize Workspace' option in context menu. That sounds good, the fewer clicks the better.
(In reply to comment #11) > That sounds good, the fewer clicks the better. So I would think that we should also remove 'Source' column from the wizard and always use current branch as source. Such approach would also simplify things in context-menu-actions in synchronize view.
I like that idea as well.
Here is sync-wizard implementation based on our discussion: http://egit.eclipse.org/r/#change,3392
I hate the page where I have to select the synchronization type, can't this be left out in some way ?
(In reply to comment #14) > Here is sync-wizard implementation based on our discussion: > http://egit.eclipse.org/r/#change,3392 merged as c568a6a61ac0b11aedbd399807401496957a0c83 can we close this now ?
Yes I think we can close it.