Tutorial: Version Control Systems

Wing provides integrations with the Mercurial, Git, Subversion,
Perforce, Bazaar, and CVS revision control systems. These
auto-enable based on the contents of your project.

If you have a code base that is in revision control you might want to try
this out now, by creating a project for your code base. To make this easier,
you can launch a second instance of Wing by running it from the command line
with the --new option.

Once you have added files to the project and saved it, Wing should
auto-detect the revision control system and add a menu to the menu bar. You
can now select ProjectStatus from that menu or use the Tools menu to
bring up the appropriate revision control tool. Right click on the tool or
use the menu bar menu to initiate operations.

If you have a project with files in multiple revision control systems or
want to keep a particular system active at all times, you can do this
from the VersionControl preferences group.

When a revision control system is active, you can right click on items in the
appropriate revision control tool or on the editor or Project tool
to initiate graphical comparison of changes relative to the repository.

This tool can also be used to compare two files, two directories, and
an unsaved file with the disk:

Try it now by making several changes to example1.py without saving them
to disk. Then click on the Difference/Merge icon in the toolbar
to CompareBufferWithDisk:

Wing will split the editor area to show two editors side by side and will
show additional icons in the toolbar to control the difference and merge
session:

Use the previous/next buttons in the Difference/Merge toolbar group to
move forward and backward between the differences, and then the A->B tool
to undo each unsaved change.

When comparing directories, Wing will show the Diff/Merge tool while the
session is active, and will highlight the current file being compared as you
move through the session. You can also click on files in this tool to move
to a specific comparison.

Difference/Merge is particularly useful for reviewing changes before
committing to a revision control repository, so you can avoid committing
unintended changes and can undo any spurious or whitespace-only changes.