Microsoft Visual Source Safe (MVSS) Presented By: Rachel Espinoza Microsoft Visual Source Safe 6.0 1 WHAT IS MS VISUAL SOURCESAFE 6.0? The version control system that enables you to manage your individual and team projects easier than ever before! Developer 1 Function A Developer 2 Dependency Function B Developer 3 Dependency Function C Project Microsoft Visual Source Safe 6.0 2 VERSION CONTROL • Team coordination — making sure, by default, that only one person at a time is modifying a file. • Version tracking — archiving and tracking old versions of source code and other files, which can be retrieved for bug fixing and other purposes. Microsoft Visual Source Safe 6.0 3 TRACKING VERSIONS OF FILES/PROJECTS • Version numbers: These are internal numbers maintained by VSS. The user has no control over these numbers. The version number is always a whole number and always increases. • Labels: These are user-defined strings that can be applied to any version of a project or file. A label is a free-form string of up to 31 characters. • Date/Time stamp: These tell when a file was last modified, or when a file was checked in. VSS supports both 12-hour format (with "a" or "p" suffix) and 24-hour format. Microsoft Visual Source Safe 6.0 4 PURPOSE • Don’t want to lose or overwrite files! • Want to restore to an old version! • Have to merge changes with another developer! • Need to compare differences! • Need to find out who’s been messing with your code! • Have a shared component but it’s in several different places! Microsoft Visual Source Safe 6.0 5 FEATURES • Project Oriented – Share files – Synchronize changes – Project history: view version info, comments, general details • Reverse Delta Storage: In VSS, the current version of a file is used as the baseline, and changes from the previous versions are saved. – Restore past versions • Any Type Content – Source code – Application components – Web content – Documents Microsoft Visual Source Safe 6.0 6 SOURCESAFE ADMINISTRATOR CONTD… • Administrator tasks: – Creating databases – Creating and maintaining userlists – Set Default Security Rights: Read-Write, Read-Only – Enable Project-Security: Rights by Project, Rights by User, Copy user rights (Read, Check Out, Add, Destroy) • Other tasks: – Enabling / Disabling Exclusive / Multiple Checkouts – Archive / Restore/ Lock Databases – Creation of Web Projects – Creation of Shadow Folders Microsoft Visual Source Safe 6.0 7 KEY SOURCESAFE COMPONENTS • All files are stored in a centralized database on the server • Any kind of files can be stored in SourceSafe: code, DLLs, graphics, documents, help files, icons, … • Files are stored in projects in the VSS database analogous to files stored in a windows folder. • Each user is provided with a local copy of the file to read or change in the user's working folder. Microsoft Visual Source Safe 6.0 8 SOURCESAFE EXPLORER Microsoft Visual Source Safe 6.0 9 FOUR KEY COMMANDS • Get: Gives a local copy of a file or project in the working folder (read-only) to view or to compile. • Check Out: Gives a local copy of a file or project, (writable) to edit. (*May or may not be exclusive!) • Check In: Copies edited file back into database making it available to other users. (Stores old versions with reverse deltas) • Undo Check Out: Cancels check out, voiding all the changes made. Microsoft Visual Source Safe 6.0 10 OTHER IMPORTANT COMMANDS • Create Project: Creates a new project • Add Files: Adds files to a project • Delete: Deletes a file or project • Difference: Shows what changed in this file or project • Share: Copies files from other projects into the current project • History: Shows all the versions of this file or project Microsoft Visual Source Safe 6.0 11 ADVANCED SOURCESAFE FEATURES • Sharing • Branching/Merging • Shadowing Microsoft Visual Source Safe 6.0 12 SHARING • Sharing is how you track reusable files. $/A • Technically, sharing means that one file is in multiple projects at the same time • All updates are automatically propagated, since there is only one file $/B 5 Foo.cpp 4 3 2 • There is no “master project”: all sharing projects are peers Microsoft Visual Source Safe 6.0 1 13 BRANCHING • Branching a file breaks the shared link, making the file in that project independent of all other projects. • The changes made in the file are not reflected elsewhere, and vice versa. • Once a branch is created; two files (the file in the project, and its counterpart in other projects) have a shared history up to a certain point, and divergent histories after that time. Release 1.0 Release 2.0 Release 1.1 (bugfix) Microsoft Visual Source Safe 6.0 merge 14 MERGING • Merging is the process of combining differences in two or more changed copies of a file into a single, new version of the file. • In VSS, a merge can occur in three different circumstances: when using multiple checkouts, when explicitly merging previously branched files, and when getting a file. • There are two methods that can be used for viewing and resolving merge conflicts: visual merge and manual merge. Microsoft Visual Source Safe 6.0 15 VISUAL MERGE Microsoft Visual Source Safe 6.0 16 SHADOWING • Central, optional folder that contains current versions of all the files in a project. • The shadow folder does not contain the master copy of a file or the local copy of a file. • It provides a central location from which to view the overall structure of the project and serves as a convenient place to build or compile the project. Microsoft Visual Source Safe 6.0 17 INTEGRATION INTO EDITING ENVIRONMENTS • Integration means you can execute SourceSafe commands directly inside your editing environment like VC++/VB. • SourceSafe commands are added to the application’s menus. • Developers can perform checkouts / checkins and other operations without leaving the development environment. • Some less commonly used commands still require the SourceSafe Explorer. Microsoft Visual Source Safe 6.0 18 SUMMARY • Data are not lost in any case • Any type of file can be protected • Team productivity is increased • Version control is transparent Microsoft Visual Source Safe 6.0 19