Closing dialogs after pull fails
Asked by Paul Mc Galey:

I can't count the number of times I've gone through this sequence in SourceTree:

* I attempt to pull from origin
* Pull fails, usually because of uncommitted local changes ("Completed with errors, see above")
* I hit enter to close this dialog
* I automatically hit enter to dismiss the underlying dialog, which is the "Pull" dialog, but...
* Default action is still "OK", so failed Pull starts again

Everyone I've asked here has the same experience, and finds it irritating.

I'm not sure what the best solution solution would be, but changing the default action to "cancel" when returning from a failed pull would be a good start I guess.

EDIT: actually, I think the better solution would be for the initial pull dialog to close when you hit "OK", so that only the progress/error dialog is shown, and needs to be dismissed.

EDIT #2: unfortunately, using the escape key for both dialogs is not an option because escape doesn't dismiss the progress/error dialog. @Seth I can't add any more comments because I don't have enough points, but yes, at least on Mac, escape doesn't close that dialog (probably because there's no cancel button).

EDIT #3: can't post an answer due to insufficient points, but I've created a ticket here <https://jira.atlassian.com/browse/SRCTREE-2649>

Or is there another solution that's already available?


Answers:
author: Ken Taylor
body: The current behaviour is a desirable feature.

When you indicate to the program that you want to initiate a pull it prompts you for the parameters. You choose the parameters and tell it to proceed. It alerts you that the pull has failed with the given parameters. When you clear the alert you are returned to the pull dialog where you can change the parameters and proceed again or you can cancel.

If you choose to proceed again with the same parameters and expect different results (which has been used as the definition of insanity) that is your prerogative.

An example of this being a benefit is when you have the "Use rebase instead of merge" option enabled: a pull will fail the first time if you have local changes because the rebase option is checked; you then simply deselect the rebase option and click OK.


author: Seth
body: Personally, I'd never expect the default action to change, or for enter to close the underlying dialog without performing the action.

Why don't you try to get in the habit of closing both dialogs with the escape key?

Re Edit #2: Seriously? Seems to me ESC should close any dialog with no further action.

comments: author: Paul Mc Galey
body: There's zero point in having the default action being to repeat the failed pull (unless you have a really unreliable network or something). It doesn't happen often enough for me to build up a new habit for this specific case ( while happening often enough to be annoying), contrary to standard patterns in all other applications (error happens, error dialog is shown, enter closes dialog). However, having thought about it some more, I think the better solution would be for the initial dialog to close before the progress dialog (which becomes the error dialog) opens. Then dismissing the error wouldn't bring you back to what is now a completely useless dialog. So I'll edit that into the question. Thanks for the suggestion anyway!


author: Paul Mc Galey
body: Oh and as I mentioned it's not just me experiencing this exact same phenomenon. And if any significant proportion of users are experiencing something in a UI that feels wrong and/or irritates, even if the UI isn't doing something strictly "wrong", the chances are there's something in the UI should be changed, rather than asking the users to change their behaviour.


author: Seth
body: I like the idea of closing the pull dialog before the progress window pops up. Enter would close the error dialog (as expected), and then you'd be in a state to fix whatever prevented the pull.The main reason I can see for keeping it around is if there are common errors that occur during the progress that can be fixed by changing options in the pull dialog.I don't know of any way to achieve this on the user end. If you don't get a satisfactory response here, follow up with a feature request at jira.atlassian.com, and post a link to it here as an answer.