-
Notifications
You must be signed in to change notification settings - Fork 9
Ss Phys
NOTE: This wiki page was converted from the [Google Code Repo Wiki] (https://code.google.com/p/vss2svn/wiki/Welcome). Some formatting may not have survived, and some links may be broken. See the README page for more info.
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
command
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,
e.g
/path/to/soursafe/archive/data/a/abaaaaaa
setting --strip 0 gives the entire file name
unmodified, --strip 1 gives
path/to/soursafe/archive/data/a/abaaaaaa
without the leading slash, --strip 6 gives
a/abaaaaaa
and not specifying --strip at all just gives you
abaaaaaa.
Formatter options:
-s [ --style ] arg (=XML) output style {XML|binary|vss|dump}