Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fetch/pull/push dance: when your local branches are out of sync upon pushing #8090

Open
slothelle opened this issue Aug 9, 2019 · 3 comments
Labels
design-input-needed Issues that require design input from the core team before the work can be started enhancement

Comments

@slothelle
Copy link

slothelle commented Aug 9, 2019

HELLO FRIENDS!

It's lovely to see you. Let's chat about a scenario:

  1. A tiny baby sloth has a local branch where she's done some work
  2. Using Desktop, she commits that work and pushes it up. She creates a PR on dotcom
  3. The tiny baby sloth realizes her PR is out of date with the master branch and she needs the updates for her tests to run, so she clicks the lovely "update" button in the dotcom UI for her PR
  4. Meanwhile, in her local dev, the sloth makes some small changes that she totally forgot to do before creating her PR. She commits them with Desktop and goes to push (action 1)
  5. 🚨 OH NO 😱 , a wild dialog appears!

image

To resolve this, the tiny baby sloth must:

  1. Click fetch, wait
  2. Pull, wait
  3. finally push

That final push is actually her fourth action taken to get her local and remote branches synced up. That's a lot of actions!

I think we could make some improvements when this scenario happens! Perhaps additional dialog options, so we could have more than just fetch or cancel:

  • fetch
  • cancel
  • pull and push

Ty 💓

@billygriffin billygriffin added enhancement design-input-needed Issues that require design input from the core team before the work can be started labels Aug 9, 2019
@billygriffin
Copy link
Contributor

Thanks @feministy for so clearly laying out that tiny baby sloth's scenario! 😭

We totally agree that this could be simpler - I think my biggest question right now is where this should be prioritized. Like how many people are experiencing this friction, and how often? We don't have a great way to know that, but given that all that needs to happen to trigger it is an "Update from master" and we have seen the previous iteration's error message cause significant confusion, I think it's fair to say that it does happen in the wild, if not super frequently.

I want to make sure that whatever we think about for a solution here would keep the happy path as simple and intuitive as possible. My initial inclination is to have a single button that gets you up to date by pulling and then pushing, but I could see someone saying, "Why won't you let me look at the changes prior to pulling them down?"

@slothelle
Copy link
Author

slothelle commented Aug 9, 2019

I will say that tiny baby sloth has also experienced this when forgetting that she applied suggested changes to her remote branch!

I want to make sure that whatever we think about for a solution here would keep the happy path as simple and intuitive as possible.

💯 - and I will admit this is happening maybe 5% of the time for me.

Other times, the fetch has happened in the background, so I do a different dance. This 💃 dance happens with probably 75% of my PRs:

  1. push, fail
  2. dismiss dialog
  3. pull, wait
  4. push

but I could see someone saying, "Why won't you let me look at the changes prior to pulling them down?"

We just want to have our 🍰 cake and eat it too, Billy.

@floele-ww
Copy link

I have this issue on a daily basis. Since Github Desktop does not allow configuring the frequency of how often the remote repository is fetched, it is outdated most of the time in my case with multiple developers working on the same branch and repository.

So every time that happens I click:

  • Click push...wait
  • Confirm message to fetch...wait
  • Click button again to pull...wait
  • Finally click button to push...wait again (though this time it's the final action so that's OK).

Sometimes I remember to just use Ctrl+Shift+P before trying to push, but that's not ideal because I need to use it (and wait for it) without knowing whether or not it's necessary.

The very least I am hoping for is an option to allow "fetch and pull" in that message box mentioned intially. Or even fetch, pull and push. Or an option to allow checking more frequently to avoid that message box in the first place.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design-input-needed Issues that require design input from the core team before the work can be started enhancement
Projects
None yet
Development

No branches or pull requests

3 participants