Github: Add GitHub for Mac's sync button

Created on 16 May 2017  ·  11Comments  ·  Source: atom/github

Description

Add GitHub for Mac's sync button

Additional Information

I like the sync button GitHub for Mac (and Windows) that simplifies fetching/pushing/pulling and I would like to see it in Github for Atom.

enhancement

Most helpful comment

For this package I personally prefer to keep our vocabulary as close to git's as possible, partially because one of my goals for it is for it to act as a tool for gently teaching git novices git concepts. The sync button is super handy, but it also conceals the operations it performs behind an abstraction that doesn't exist in other clients or on the command-line. If a developer first encounters git with this package, but is able to follow instructions written for general git users in an open-source project's contributing guide, I'll be very happy.

Part of my Evil Plan :tm: for this package is to expose a variety of services that other packages can consume to overlay higher-level workflows on top of the basic operations provided directly. For example, you could install a package that adds useful commands and controls for GitHub flow, a different one for git flow, or even something homegrown for whatever bespoke git branching models are used in some internal project. To me, that's where compound actions like "sync" would live.

_Caveat: evil plan is as of yet somewhat vague, largely unprioritized, and exists mostly within @smashwilson's head._

All 11 comments

Aye

@stevemoser any thoughts on preferred location?

I feel like it would be best place within the existing remote actions status bar popout and exposed via a github:sync command.

sync

Agreed.
On Fri, May 19, 2017 at 7:33 PM Craig Bovis notifications@github.com
wrote:

@stevemoser https://github.com/stevemoser any thoughts on preferred
location?

I feel like it would be best place within the existing remote actions
status bar popout and exposed via a github:sync command.

[image: sync]
https://cloud.githubusercontent.com/assets/34132/26270596/6ccdffb0-3d3f-11e7-8d80-ab47b68e474c.png


You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub
https://github.com/atom/github/issues/808#issuecomment-302833253, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAFffUpHTP-WbBjBVFKrC09m-t3hamQIks5r7ibkgaJpZM4Nc1iW
.

>

Steve Moser || [email protected]

For this package I personally prefer to keep our vocabulary as close to git's as possible, partially because one of my goals for it is for it to act as a tool for gently teaching git novices git concepts. The sync button is super handy, but it also conceals the operations it performs behind an abstraction that doesn't exist in other clients or on the command-line. If a developer first encounters git with this package, but is able to follow instructions written for general git users in an open-source project's contributing guide, I'll be very happy.

Part of my Evil Plan :tm: for this package is to expose a variety of services that other packages can consume to overlay higher-level workflows on top of the basic operations provided directly. For example, you could install a package that adds useful commands and controls for GitHub flow, a different one for git flow, or even something homegrown for whatever bespoke git branching models are used in some internal project. To me, that's where compound actions like "sync" would live.

_Caveat: evil plan is as of yet somewhat vague, largely unprioritized, and exists mostly within @smashwilson's head._

That makes a lot of sense @smashwilson. I do remember starting out with git years ago via the Github desktop app and finding it a little confusing that the sync terminology didn't extend to the rest of the git ecosystem.

Interestingly, the new GitHub Desktop moved away from the "Sync" button and now has a single button with a label that adapts to different situations: https://github.com/desktop/desktop/issues/598.

The sync button is super handy, but it also conceals the operations it performs behind an abstraction that doesn't exist in other clients

Tower has something similar, and both Tower and GitKraken have an 'auto-fetch' feature (and actually, I recently implemented this in the _git-plus_ package also)

Part of my Evil Plan ™️ for this package is to expose a variety of services that other packages can consume to overlay higher-level workflows on top of the basic operations provided directly.

Solid plan!

For now, this isn't something I want to add to the package. I agree with @smashwilson that a good service API (see https://github.com/atom/github/issues/1089) would be perfect for supporting community packages that would want to implement this.

  • imo the status bar should not be interactive, it should only contain the status of things like branch and commits
  • buttons like push/pull and switching branches would make much more sense inside the git sidebar
  • especially if like you say this package is to get novices started with git @smashwilson
  • this is a bit confusing the way it is ui-wise cc @simurai

@Superpencil buttons like push/pull and switching branches would make much more sense inside the git sidebar

It used to be like that https://github.com/atom/github/pull/276, but when switching to a staged and unstaged list, these actions got moved into tooltips to save space.

I also like the idea of a package specially made for people new to Git. Maybe more like a "step by step" tutorial: Fetch/Pull -> create branch -> make changes -> commit -> push -> create PR

For a purely UI user:

  • In order to Push changes, you'll need to open the git panel to add changes and commit. So the panel will already be open before Push.
  • Without opening the git panel, the only use for the status bar buttons is Pull.

To conclude:

  • There is a discoverability issue
  • There is an extra step in opening the little panel in the bottom to click the button
  • This split in the git UI elements makes it harder to understand these things belong to the same system
  • The panel currently only serves those who want to pull changes and use commands to do the rest

@simurai A little wizard would be nice, perhaps start with a copy of Github Flow?

Was this page helpful?
0 / 5 - 0 ratings