I played racquetball yesterday against a Web developer who sometimes works as a vendor at Microsoft (a V-Dash in Microspeak). After he beat me soundly in three straight games, he asked me what a "programmer/writer" does on a daily basis. He had seen my job title in my Outlook personnel properties. I explained that a programmer/writer writes documentation. Specifically, I write the documentation for Visual SourceSafe and source control integration features in Visual Studio .NET.  I took a deep breath and prepared myself for the normal barrage of questions. Alas, my racquetball partner asked some questions that I can answer.  In fact, I have answered many of his questions in this weblog. He asked questions like,

Q: How can I move a database from one computer to another?
A: Literally drag and drop the entire database directory.

Q: How can I work on my laptop and synchronize with the VSS database when I go back online.
A: In VS.NET, checkout the project and then click File|Source Control|Change Source Control, select your solution and click Disconnect. Go offline. Upon reconnecting, repeat steps above, click Connect in the Change Source Control dialog box, and then check in your project.

And then he said something funny (at least I think it's funny:).  When discussing how to take his projects offline he mentioned that somebody on his team had suggested Shadow Folders.  Whoa!

Stop right there.

Q: What is a Shadow Folder?
A: A Shadow folder is a read-only copy of the tip version* of all files in a given VSS project folder. It is regularly updated, or at least it should be.

Q: When should I use Shadow Folders?
A: I use shadow folders to give non-team members a glimpse into the latest state of my source files and projects.  Shadow folders are great for managers and the members of related teams because they aren't tempted to checkout (and screw up) your source files.

Q: Is there anything I can do to make Shadow Folders more usable?
A: Yes! When naming your VSS project folders and when creating any file that might be added to the VSS database, create filenames that contain no whitespaces. I use underscores instead (eg, My_Project_1.csproj in $/Projects_2/SourceFiles). Doing so allows me to embed live UNC links to the shadow copies of my source controlled files in emails and other documents (eg, //mycomputer/Projects_2/SourceFiles/My_Project_1.csproj).

Q: How can I setup Shadow Folders for my database?
A: You can do so on a project by project basis using VSS Administrator. Click Tools|Options, select the Shadow Folders tab, click the Browse button and select a desired VSS project folder. Then, click the 2nd Browse button and specify the path on physical disk where you'd like to save the shadow copies of the files in this VSS project folder. To shadow the entire database, select $/.

*The "Tip Version" is the version of a file in a VSS database that sits atop its version stack. It is the most recently created version. The Tip Version is not necessarily the Latest Database Version however. If you pin a file at a particular version (say v5 of 10 vers), that version (v5) becomes the Latest Database Version.

Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho.