Microsoft KB Archive/162114

= HOWTO: How To Issue a Recursive GET Based on a Project Label =

Article ID: 162114

Article Last Modified on 2/24/2005

-

APPLIES TO


 * Microsoft SourceSafe
 * Microsoft SourceSafe
 * Microsoft Visual SourceSafe 4.0 Standard Edition
 * Microsoft Visual SourceSafe 4.0 Standard Edition
 * Microsoft Visual SourceSafe 4.0a
 * Microsoft Visual SourceSafe 4.0a
 * Microsoft Visual SourceSafe 4.0 Standard Edition
 * Microsoft Visual SourceSafe 4.0a
 * Microsoft Visual SourceSafe 5.0 Standard Edition
 * Microsoft Visual SourceSafe 6.0 Standard Edition

-



This article was previously published under Q162114



SUMMARY
There are three methods in Visual SourceSafe that you can use to "Get" files based on a project-level label. This article discusses each of these methods and describes their respective results.



MORE INFORMATION
Of the three methods mentioned above, one uses the Visual SourceSafe Explorer and the other two use the command line.

Using the Command Line
The two command line methods are: SS GET $/ /*.* -r -gf -vl -or- SS GET $/ -r -gf -vl Where is the Visual SourceSafe path to the desired project and is the project label against which the Get is executed. The -gf switch tells Visual SourceSafe to Get the files into their working directory, not the current DOS directory.

The results of these two examples are quite different. The command in the first example yields all files and subprojects in that are currently in the project. The files are returned in the state at which the label was applied. This means that any file or subproject that was deleted (and not permanently destroyed) after the label was applied will not be returned.

The command in the second example returns all files and subprojects in that were in the project at the time the label was applied, except for those files that were deleted or permanently destroyed.

The following procedure illustrates this difference:

 Open or switch to Visual SourceSafe, and create a project called Vssrocks off of the root($/). Create a subproject of Vssrocks called Vssrules. Add two files, one to Vssrocks and the other to Vssrules. Apply a project-level label called Label1 to Vssrocks.

NOTE: This level is inherited by Vssrules. Set the working directory of Vssrocks to C:\Vssrocks (create this directory if it does not already exist). Delete, but do not destroy, the project Vssrules, and then close the Visual SourceSafe Explorer. Open a DOS window and set your path to include \Vss\Win32.</li>  Type the following command in the DOS window: SS GET $/VSSROCKS/*.* -r -vlLABEL1 NOTE: Only the file added to Vssrocks is returned. </li>  Type the following command in the DOS window: SS GET $/VSSROCKS -r -vlLABEL1 The error message "File or project not found" appears, but the contents of both Vssrocks and Vssrules are returned. </li></ol>

Using the Visual SourceSafe Explorer
The following procedure describes how to use a recursive Get on a label to return all files and subprojects in a project that were in the project at the time the label was applied, except for those projects that have been deleted or permanently destroyed.


 * 1) Open or switch to Visual SourceSafe and create a project called Vssrocks off of the root($/).
 * 2) Create a subproject of Vssrocks called Vssrules.
 * 3) Add two files, one to Vssrocks and the other to Vssrules.
 * 4) Apply a project-level label called Label1 to Vssrocks.

NOTE: This level is inherited by Vssrules.
 * 1) Set the working directory of Vssrocks to C:\Vssrocks (create this directory if it does not already exist).
 * 2) Delete, but do not destroy, the project Vssrules.
 * 3) Right-click the Project Vssrocks and click Show History.
 * 4) Select the version that the label was applied to and click Get.
 * 5) Select the Recursive check box and click OK (do not select the Build Tree check box). Note that the contents of both Vssrocks and Vssrules are returned.

<div class="references_section">