Visual SourceSafe (VSS) is a client/server application which acts as a storage system for files.A file stored in a VSS server is not available via the standard file system, instead, it must beaccessed through the VSS client tools - the VSS windows client, the VSS command-line tool,or else some application which integrates with or emulates these client tools.The following discussion refers to version 6.0d. It contains three types of section:- Discussions of important concepts, headed like
.- Walk-throughs of development scenarios, headed like
.- Practical advice and best-practice, which......appears in shaded boxes.
A VSS Database is a single instance of a VSS server - it's the big black box into which files getplaced. All commands to VSS are directed towards a particular VSS Database, and wachdatabase maintains a SRCSAFE.INI file which contains configuration information.
A VSS Database is organised as a tree structure, with each of the nodes of the tree being aVSS Project. Each database contains a single root project, which can branch (to a depth of 15nodes) into sub-projects.VSS Projects are misleadingly named; instead they should be thought of as directly analagousto filesystem directories, being unordered collections of up to 8000 files of any type. Toillustrate this, note that where an application's source-code is organised into files that live insubdirectories off the main directory, these subdirectories have to be mapped onto subprojectsof the application's main project directory.Don't confuse Visual Studio 'projects' with Visual Sourcesafe 'projects'. The latter are morelike directories, or folders. In fact, if you just think Visual Sourcesafe 'folder' where thedocumentation says Visual Sourcesafe 'project', it will be easier to follow.
Because the files stored in VSS are not directly exposed as files, development work on thesefiles takes place on local copies, which are first checked out of VSS, changed, then checked inagain. While a file is checked out of VSS, it is can be locked to other developers, preventingfile overwriting. VSS also retains historical information about a file's changes, so it is possibleto extract and use old versions of a file, or roll back unsuccessful changes.The folder in which a user manipulates his local copy of VSS project files is known as his'working folder'. Each user will often have a distinct, local working folder for each VSS project,the details of which are held by the VSS client in its SS.INI file.Each working folder also gets populated with a VSSVER.SCC file, which contains versioninformation about the files in that folder. This allows VSS quickly to determine whether or notlocal files are synchronised with those stored in the VSS database.