Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upGitHub is where the world builds software
Millions of developers and companies build, ship, and maintain their software on GitHub — the largest and most advanced development platform in the world.
Ignore this PR, do not merge, it's a test PR for github #327
Conversation
For concurrent ui flows, we register the connection of the current flow which is immediately picked up by the viewmodel. Another ui flow might run and register a connection to be picked up by its viewmodel, and by the time the first ui flow is done and tries to remove the iconnection registration, that iconnection is not the one it registered any more. So we're not removing registrations any more, and we just let the UIController replace the IConnection any time it needs to launch a new viewmodel.
We already support showing a separate dialog for authentication, but it only worked when the selected ui flow was either authentication or the clone/create flows, which reuse the same dialog window. It also worked for publish, but that one is actually cheating by running two separate ui flows (the auth and then the publish) Since we now support long running ui flows that switch to subflows when needed, we need to be able to show a view in either the pane or in the dialog, basically popping up the dialog whenever needed and then shutting it down without stopping the ui flow.
Fixes #282 We were getting into a state when loading the pane for the first time where `Reload` would be called once as a result of the `RepoChanged` call, which triggers when `Initialize(ServiceProvider)` runs, and then `Reload` would run again as a result of the `Initialize(ViewWithData)` call, because the Pull Requests button was clicked, which causes the pane to reset itself. These two `Reload` calls would be executing concurrently, causing a race condition that would crash randomly if the controller was stopped and restarted at just the right point. Need to make sure that nothing else can happen while `Initialize(ServiceProvider)` is running, and that `Initialize(ServiceProvider)` is run serially (no asyncs here!).
Polish Pull Request list view
[WIP] Add Pull Request Creation View
Replace hardcoded fontsizes with proportional text styles
Bump feature/pr/views version to latest alpha
Pull Request list view and viewmodel
Nothing to see here, move along