The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Correct way to arrange projects in SourceSafe?

I have a couple of products but there are many files are shared. I am using "share" in SourceSafe so that multiple projects shared the same file. Problem is, when I have to roll back a shared file, the sourcesafe prompts that i must branch it first.
How do you manage your projects in the SSafe?
Tuesday, August 23, 2005
The only winning move is not to play.
Mark Bessey Send private email
Tuesday, August 23, 2005
I second mark. The correct way is "Don't". SourceSafe is the kind of tool that gets in your way all the time, and doesn't really provide what it's supposed to be providing. Switch to a tool that gets out of your way and does deliever on the sales pitch (Perforce, SVN, Darcs, Monotone, ... - all but the first are free).
Ori Berger
Wednesday, August 24, 2005
The repository needs to fit your working style. VSS is geared towards "my source file, your source file" kind of working. As you found out the "shared" option is there, but it does not work well - apart from any bugs the product has.

My advise: free your team from the angst of sharing *all* source files. Fly high without locking edits. Use a tool that supports this - the only thing not mentioned above is CVS.
icing Send private email
Wednesday, August 24, 2005

"Sharing" in VSS refers to the same file or files appearing under multiple different source trees. Edits in a tree would reflect everywhere.

When I use shared files, I make it a point to update only one copy - the original from which I shared. Since I don't modify the shared files in any other projects, VSS never asks me to branch them.

VSS has problems. The biggest is that the documentation vacuums. The second biggest is that people who don't know jack sh*t about it criticise it.
Raj Chaudhuri Send private email
Wednesday, August 24, 2005
VSS is not ideal, but I believe you can get a single-developer licence of SourceGear Vault for free: if it is just you.
Wednesday, August 24, 2005
Second for Vault. I've never used it, but support Eric - he's one of the good guys :)

Wednesday, August 24, 2005
I have to stick to SSafe for a while.
Let's make things simpler. Suppose you have a product started with 1.0.1. It procceeds to 1.0.2, 1.0.3 and 1.0.4. After 1.0.4 is released you find that 1.0.4 has many problems and decide to go back 1.0.3 on product level. What's the best way to achieve this (considering that this product also shares many files with other products)? Thanks
Wednesday, August 24, 2005
The third biggest problem with SourceSafe is that it's really hard to do anything useful, like see a list of all the files you have checked out or submit multiple files at once and have that atomic submission viewable after the fact.
Same person, new name Send private email
Wednesday, August 24, 2005
By the way, Microsoft have announced that the new source control system in Visual Studio Team System will be accessible to older versions of Visual Studio too (specfically VS 2003, dunno about anything else).  So, if you're doing you're MFC coding in a recent MS IDE, that might be a solution (soon).

Like Vault (and unlike many other tools) Team System will be able to import your existing SourceSloth projects.
John Rusk Send private email
Thursday, August 25, 2005
I've only worked with VSS for a couple of months now, but I feel that shared source files is not a good idea if you are using them instead of creating libraries. What you will find is that your projects fill up with low level classes so that you can't see the wood for the trees.

A guy I work with likes them because you can keep track of which source files are used in which projects by following the links. Personally I have no trouble searching source code for the same information and SourceSafe isn't especially fast at showing the links anyway.

So far I like VSS better than ClearCase, but less than Perforce.  ClearCase is slower, much more difficult to use and configure. It also makes exclusive (locked) check-outs the default.

For Perforce I can't quite put my finger on what I like better about it. Maybe just that it's faster. And easy to install. Maybe I'm just in a transition period.
Chris Steinbach Send private email
Thursday, August 25, 2005
Using your example of returning to product version 1.03 :

 1) Undo checkout on all files in said product/project

 2) Get version 1.03 of product/project files

 3) a) For unshared product/project files whose new changes will replace current version 1.04, checkout these files without getting latest

    b) For SHARED product/project files whose changes you'll want shared to all other products, checkout these files without getting latest

    c) For SHARED product/project files whose changes you do NOT want to be shared to all other products, branch these shared files & then checkout without getting latest
Ian Johns
Friday, August 26, 2005
Same Person, New Name

Agreed on point one, but it's just a case of my own first point. The fact that you can do this by typing "SS Status" on the command line is buried deep in the documentation, which sucks.

More than agreed on point two. It's not just difficult, but impossible to do atomic commits on plain ol' SourceSafe.  The fact that the poster child of alternative systems, CVS, also lacks have this feature does not make this a forgivable offense.

In fact, let me add another major disadvantage: VSS uses SMB/CIFS file sharing as the remote access mechanism. This makes it extremely unwieldy over large networks.

Still, I find that VSS's bad rep is worse than it actually deserves.
Raj Chaudhuri Send private email
Monday, August 29, 2005

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz