Understanding VisualSVN

Why Visual Studio integration?

There is a powerful cross-platform command line interface to all Subversion commands. It's very suitable for tasks such as writing build scripts. Moreover, there is a mature and stable graphical user interface for most of Subversion operations provided by TortoiseSVN. TortoiseSVN provides a very usable context dependent access to Subversion directly from the Windows Explorer.

However, most software developers work in an integrated development environment such as Visual Studio forcing them to work in two loosely coupled contexts: Visual Studio and Windows Explorer, for example. In addition to losing focus by frequent context switching, you can be faced with the following problems:

  • Daily-cycle routine errors

    For example: The developer adds a new file to the project but forgets to mark the file as an “added file” in the working copy. During the commit this new file will not be sent to the repository, which causes failed builds.

  • Complicated file management

    In modern software development cycles you often need to change the project layout and move a file from one project to another. To do this without losing the history you need to perform several operations in the Visual Studio and in the Windows Explorer. In addition to significant loss of time, the process is also error prone.

  • Dirty commits

    It's easy to forget to check the status of the working copy before the starting a new task. This often causes dirty commits, when a single physical commit contains changes from several logical tasks.

VisualSVN provides transparent and comfortable access to Subversion directly from the Visual Studio and you get all the advantages of Subversion without facing the problems mentioned above.

Design principles of VisualSVN

The main goal of the VisualSVN is to transparently integrate Subversion into the Visual Studio. All Subversion functionality should be integrated smoothly and without significant limitations.

The main design principles of the VisualSVN are as follows:

  • Transparent source control

    VisualSVN automatically and transparently reflects to Subversion all operations from Visual Studio that occur during daily software development cycles.

  • Genuine Subversion

    VisualSVN doesn't introduce a new version control system, but makes the standard Subversion easy to access for Visual Studio developers.

  • Intuitive status display

    VisualSVN displays the status of all versioned items to allow developers to instantly determine the necessity of performing Subversion operations.