Version Control Tools

Classic+

The version control tools for each active version control system can be shown by selecting them from the Tools menu or as a side effect of selecting operations from any of the version control menus.

When initially shown, the version control tool contains a Project Status view that shows the file status for the entire project. It summarizes which files have been modified, and can also show unregistered files when the Show Unregistered option in the right-click context menu is enabled. For Git and Mercurial, the current branch is shown after each top-level directory, followed by the number of changesets that have been committed but not yet pushed to the default remote repository, if any, as N outgoing. Click that to open a view listing those changesets with their messages and changed files. The Show Unpushed Changes item in the branch menu on the toolbar opens the same view.

Click Push Changes after the count, or use Push Changes in the toolbar's branch menu or its Push tool, to push those changesets to the default remote repository. When the remote repository has changes that are not in your local one, Wing first asks the AI agent to rebase your changesets onto them, or merge them, resolving any conflicts, and then pushes. Wing asks before doing this, since you don't see the result of the merge before it is pushed. To review it yourself, cancel and pull, merge, and push by hand. The Version Control preferences set whether to rebase or merge, and whether to ask. When no AI agent is set up, Wing pushes anyway, which fails until you bring in the remote's changes yourself.

To merge another branch into the current one, choose it from Merge From Branch in the toolbar's branch menu, for Git and Mercurial. Wing pulls from the default remote repository, updates the working directory to the current branch's newest changes if it can do so without merging, then merges the branch and commits the merge. The merge is not pushed. When your local changes on the current branch have diverged from new changes pulled from the remote, Wing offers to merge those first and commit that merge too, so the branch is left with one head. It starts only from a working directory with no uncommitted changes, and waits for AI agent sessions writing in it to finish their turns. When the merge has conflicts, Wing asks the AI agent to resolve them and then commits. When no AI agent is set up, or it does not resolve them all, the merge is left uncommitted for you to resolve and commit, or abort.

The tool also has a Project Log view for them, which shows the history of the repository holding the project once you select Project Log from the version control menu.

Each operation invoked for a version control system displays an additional view within the version control tool. These views collect any parameters for the operation and display the result of the operation. Use the menu in the top of the version control tool to switch between operations or to return to the Project Status view. Clicking on the X icon closes the view for the current operation.

The Options menu (the ⋯ button) can be used to access the version control preferences, documentation, and a console that displays the version control invocations that Wing is making.