If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

suggestions for VSS integration

I'm trying to figure out a way to easily sync up with VSS. I use the modify-then-merge technique, because I have no idea in advance which files I'll need to modify, so checking out first is impractical.

When I'm ready to sync up, I use an SS command to create a temporary reference directory, then I use a BC Saved Session to see the differences. When I set it to "show differences only", I get a beautiful display showing me everything I need. The cases to get stuff from VSS are easy:

1) A file had been deleted by someone else in VSS. I simply delete my copy.

2) A file had been added by someone else in VSS. I simply copy the file from Left to Right.

3) A file had been change by someone else in VSS. I simply copy the file from Left to Right.

But how do you suggest going the other way?

I tried setting my directory to use VSS in BC, but then I can't do #3 above because it wants me to check it out.

I tried setting the reference directory to use VSS in BC, and that worked a little better, but not perfect:

1) I added a file: If I copy the file from Right to Left when in the "show differences" mode, then the file disappears because they aren't different. If I am in "show all" mode, then I get a kazillion files and I can't find the one I want easily. But once I get to it, I can right click and add it in BC.

2) I deleted a file: I'm not sure how I would do this except to open VSS explorer and find the file. That is the pain I'm trying to avoid.

3) I changed a file: This is the same as case #1. I can check it out easily, but if I then copy the new file to the Left, then it disappears and I have to hunt for it. This is particularly bad when I want to check in multiple files in different folders with the same comment.

Does anyone have any suggestions about how to use BC effectively in this case?

What I wish is that I could right click on the files I've changed and get the items:

"Copy the file to the Reference directory and add it to VSS"
"Check out the Reference copy, copy this file to the Reference directory and check it in (prompt for comment)"

Re: suggestions for VSS integration

We use Subversion for our in-house version control, so I apologize if I'm not clear on your workflow with SourceSafe.

Are you using VSS with the Copy-Modify-Merge model, or the Lock-Modify-Unlock (default) model?

As I understand it, with files under VSS version control, files should never be changed without checking them out first.

Even with VSS set to Copy-Modify-Merge mode, aren't you still supposed to check out a file before modifying it? I think with Copy-Modify-Merge mode enabled, it allows multiple checkouts of the same file, but files that aren't checked out still shouldn't be changed.

If a file has changed in VSS, rather than using copy, it might work better to use the Source Control|Get Latest Version command to update the file.

Again, for adding files, using Source Control|Add To Source Control might work better than copying a file.

Same thing for modifying a file. Rather than copying it, why not directly do a check in from the Source Control menu?

Re: suggestions for VSS integration

The way I work is that I have a copy of the code that is in source safe and I modify the files I need to. When I'm finished modifying files, I want to sync up with Source Safe. At that point I want to check out the files I've changed and replace them with my changes. I can't check out all 7000 files in advance, just in case I want to modify one! I really don't know in advance which files I'll be modifying.

The great thing about BC2 is that I can get a copy of all files from Source Safe to a different directory and just do a comparison and I get a very convenient color-coded tree of what files are different. At a glance I can see:

1) All new files in Source Safe
2) Files that are newer in Source Safe
3) Files that are newer in my "sandbox"
4) Files that are new in my "sandbox"

Copying the files that are new or newer in Source Safe is a snap.

Unfortunately, going the other way is a pain. I can easily check out the files that I want to check in, but I can't easily check in my new file. (Note: I've set BC2 to attach Source Safe to the reference directory, not my sandbox. That means that I can check out files by right clicking the file in the reference side.)

This is the best I've been able to do:

To modify a file:

1) right click the copy in the reference directory and check it out.

2) Change the view to "show all files" from "show just differences"

3) Right click the file in my sandbox and copy it to the reference.

4) Right click the file in the reference and check it in.

5) Change the view to "show just differences" so I can find the next one.

Although that works, it would be nice to trim a couple of mouse clicks off of that. For instance, if there were a "lock the set of files now visible" I wouldn't have to do step #2 and #5 over and over. Or if there were a "copy and check in" option I could do most of that in one step.

Re: suggestions for VSS integration

If your reference folder is setup as an SCC folder in BC, you can avoid step 1.

If you copy from sandbox to the reference folder, BC will automatically prompt you to check out the files before copying to them.

To determine which files need to be checked in after you've copied to the reference directory, select View|Columns|Status to see which files are checked out. If you click on the column, you can sort to just files that are checked out, then select them and check them into VSS.

Re: suggestions for VSS integration

Wow, thanks! That helps a lot.

There is still a problem, though. Is there anyway to get the folder view to not sort first on folders? I added the Status field and sorted on it, but it only sorts within the folder, so I still have to search each page and there are a lot of pages.

Is there a way for me to customize the "display filters" to filter out all the "Status: controlled" files? That would be the ideal solution for me.

Also, when I add new files by copying them over, their status is blank, so they are a little hard to pick out. I wish they had a status of "not controlled" or something so I could see them easier.