PDA

View Full Version : Recursive Checkout?


ross
05-27-2003, 08:01 PM
I am trying to checkout about 45 .NET AssemblyInfo.cs files from SourceSafe in different locations. I have supplied the location of all 45 files under "Projects and/or files to process, one per line". I checked the "Perform operation recursively on all subdirectories" box. I want to checkout all these files to their respective folders that they are structured in SourceSafe, so when I do a build, it updates the version number and then I can check them back in with the changes.

The problem seems to be with the "Path for local files". I have left this blank and supplied a path and I still get the same error. If I leave it blank when I run this checkout process it checks out the 1st file on the list to were my local project exists and gets to the second and errors. It appears that it is trying to check out the second file to the exact same location and since all these files have the same name: AssemblyInfo.cs, it bombs. I figured if I left this field blank it would check out these files to were ever I have set for my working directory in SourceSafe (which would be great), but this does not seem to be the case. When I supply the path in this field it does the same process - it checks out the 1st file and then bombs when it gets to the second.

How can a check out these 45 files with exactly the same names but in different location in one operation? Do I have create this process 45 times or run some sort of loop feeding a macro for the file location in SourceSafe and the destinationpath to check it out too? When I Get latest it pulls everything out of SourceSafe correctly and into the correct folders. How can I do the same thing during a CheckOut and not check everything out to one folder but to the proper folder that these files exits in SourceSafe?

kinook
05-28-2003, 04:17 PM
The VSS command-line tool (which the SourceSafe action wraps) requires all projects/files entries to be specified at the same project level when performing recursive operations because it only supports a single destination path.

You can recursively checkout all AssemblyInfo files by using a mask (i.e., $/AssemblyInfo.*) in the files/projects field (the 'Check Out Source Files' step in the VStudio.bld sample demonstrates this), but if you want to explicitly name multiple files in different paths, you would need a separate step for each one.

Li Song
06-15-2004, 12:44 PM
Isn't the whole point of having Visual Build Pro to eliminate such VSS limitations?

kinook
06-15-2004, 11:25 PM
We do provide our fair share of workarounds and extensions for missing functionality in MS products, although I wouldn't consider that the primary reason for using VBP. In this case, there are multiple workarounds, and the work required for such a small gain was not deemed worth the effort.

Using a single recursive step using wildcards seems to be adequate for most users (and I would argue is preferable, as it results in a build process that is less brittle, since you don't have to remember to update the build when a new file is added). You may also be able to specify multiple individual files in different paths by using the Force_Dir variable [1].

[1] http://www.kinook.com/Forum/showthread.php?threadid=354