VSS stores all information in so called phyiscal files. These are stored under the data folder in the VSS archive. For every item there are actually two files of interest. One file is the history of the item, the other file is an exact copy of the last version of the file. The history file is named incrementally with 8 letters, starting with AAAAAAAA. The last version is always stored in a file with the same name, but with an extension ".A" or ".B".

See also: source:trunk/ssphys/ReadMe.txt or How Visual SourceSafe Tracks Files



The get command will run the history of an item in the reverse order and will apply the sored reverse deltas to the last version of the file, thereby recreating old versions. The basic get command needs the phyiscal file name as input, a version number to retrieve, and a file name for the output, e.g.

ssphys get -v 1 data/b/baaaaaaa test.txt

This command will recreate the version 1 of the phyiscal file "data/b/baaaaaaa" and will store the result in the file named test.txt.

There are a few options to control the way, in which the output is generated. Here is the ouput of the help command for more information.

  -v [ --version ] arg      Get a specific old version
  --force-overwrite         overwrite target file
  -b [ --bulk ]             bulk operation: get all intermediate files with the
                            same name as the source name
  -p [ --projects ]         Experimental: also try to rebuild project files
  --input arg               input physical file name
  --output arg              target file name.

                            You can also specify an oputput directory for the
                            output target.In that case the name of the input
                            file will be used as the output file name. With
                            this option, you can easily build a shadow
                            directory of your data, e.g. with the following

                              find data -name ???????? | xargs -n 1 ssphys get
                            -b -v 1 -s 1 --output shadowdir/

                            If you specify a relative or absolute path to the
                            phyiscal file, all non directory elements will be
                            appended to the output directory, e.g.

                              ssphys get data/b/baaaaaaa shadow/

                            will output all files to "shadow/data/b/baaaaaaa".
                            You can control the number of directories appended
                            with the --strip option
  --strip arg               Strip the smallest prefix containing num leading
                            slashes from the input path A sequence of one or
                            more adjacent slashes is counted as a single slash,


                            setting --strip 0 gives the entire file name
                            unmodified, --strip 1 gives


                            without the leading slash, --strip 6 gives


                            and  not specifying --strip at all just gives you

Formatter options:
  -s [ --style ] arg (=XML) output style {XML|binary|vss|dump} recommends CVSDude for fast, professional Subversion and Trac hosting:

These ads are automatically generated by Google. Revenue from these ads helps to pay for hosting this site; however, these ads do not constitute an endorsement by