VCP::Dest::vss(3p)

NAME
VCP::Dest::vss - vss destination driver

SYNOPSIS
   vcp <source> vss:module
   vcp <source> vss:SSDIR:module
   vcp <source> vss:SSUSER@SSDIR:module
   vcp <source> vss:SSUSER:PASSWORD@SSDIR:module

where module is a module or directory that already exists within VSS.

SSDIR is the value to set the SSDIR environment variable to before running SS.EXE and is a path to the sourcesafe directory.

This destination driver will check out the indicated destination in a temporary directory and use it to add, delete, and alter files.

DESCRIPTION
Experimental. See NOTES for details.

This driver allows vcp to insert revisions in to a VSS repository. There are no options at this time.

OPTIONS

--dont-recover-deleted-files
    VSS, at least as of V6, does not allow you to repeatedly delete and recover a file. So VCP::Dest::vss normally forces VSS to recover a deleted file when a new revision shows up, which is close as it can get to CVS or p4 semantics.

    However, when coming from a VSS repository, it's ok to leave deleted files lie. Use this option in that case.

--mkss-ssdir
    Make a new VSS database in directory named in the SSDIR portion of the vss: specification. The directory must be nonexistant or empty. The database is created using the MKSS, DDCONV, and DDUPD commands.

    NOTE: you need to use the SSUSER "Admin" to use this option (or tell me how to add users from the command line).

--delete-ssdir
    This option causes the --mkss option to delete the SSDIR if it exists (including any contents). THIS IS DANGEROUS AND SHOULD ONLY BE USED IN TEST ENVIRONMENTS.

TODO
This module is here purely to support the VCP test suite, which must import a bunch of files in to VSS before it can test the export. It works, but is not field tested.

While I'm sure there exist pressing reasons for importing files in to VSS from other repositories, I have never had such a request and do not wish to invest a lot of effort in advance of such a request.

Therefore, this module does not batch checkins, cope with branches, optimize comment settings, etc.

Patches or contracts welcome.

NOTES
VSS does not flag individual revisions as binary vs. text; the change is made on a per-file basis. This module does not alter the filetype on "Checkin", however it does set binary (-B) vs. text (-B-) on "Add".

VSS allows one label per file, and adding a label (by default) causes a new versions of the file. This module adds the first label it receives for a file (which is first may or may not be predictable depending on the source repository) to the existing version unless the existing version already has a label, then it just adds new versions as needed.

This leads to the backfilling issue: when backfilling, there are no labels to request, so backfilling always assumes that the most recent rev is the base rev for incremental imports.

The "ss Delete" and "ss Share $file" commands do not allow a comment.

Files are recalled from deleted status when added again if they were deleted.

LIMITATIONS
Built and tested against VSS v6.0 only.

AUTHOR
Barrie Slaymaker <barries@slaysys.com>

COPYRIGHT
Copyright (c) 2000, 2001, 2002 Perforce Software, Inc. All rights reserved.

See VCP::License ("vcp help license") for the terms of use.