locked
Adding (and editing) .suo files to source control

    Question

  • Hi,

    I hope I've asked the question at the right place. Our project uses a different than default working directory, so this has to be set in Debugging > Working Directory for the clients. The problem is the working directory is saved in the hidden .suo file which one cannot edit by hand so easily.
    Is there a way of creating a new .suo file with only the binary data for the working directory in it, add that to source control? I presume on checkout VS will then reconstruct all other paths and stuff in there for the users. Solutions either for VS2003 or VS2005 would be great.

    Donnu why that file has to be binary though, if it were like the .sln or .vcproj files it would've worked.

    Thursday, September 14, 2006 10:16 PM

Answers

  • Tompom,

    I don't know why your project stores the DebuggingWorkingDirectory in the suo file. If that is a user specific setting you should consider storing that in the *.proj.user filename. If that setting is shareable between all users working on the project you should consider storing it in the project file itself.

    Don't even think of adding the suo file to source control! The SUO (soluton user options) file is meant to contain user-specific settings, and should not be shared amongst users working on the same solution. If you'd be adding the suo file in the scc database I don't know what other things in the IDE you'd break, but from source control point of view you will break web projects scc integration, the Lan vs Internet plugin used by different users for VSS access, and you could even cause the scc to break completely (VSS database path stored in suo file that may be valid for you may not be valid for another user).

    Alin

     

    Friday, September 15, 2006 10:08 AM
    Moderator
  • Unless you've written your own project types, it should all be handled by the IDE automatically.  Just use the built-in "Add solution to SCC" feature.
    Friday, September 22, 2006 2:24 AM
    Moderator

All replies

  • Tompom,

    I don't know why your project stores the DebuggingWorkingDirectory in the suo file. If that is a user specific setting you should consider storing that in the *.proj.user filename. If that setting is shareable between all users working on the project you should consider storing it in the project file itself.

    Don't even think of adding the suo file to source control! The SUO (soluton user options) file is meant to contain user-specific settings, and should not be shared amongst users working on the same solution. If you'd be adding the suo file in the scc database I don't know what other things in the IDE you'd break, but from source control point of view you will break web projects scc integration, the Lan vs Internet plugin used by different users for VSS access, and you could even cause the scc to break completely (VSS database path stored in suo file that may be valid for you may not be valid for another user).

    Alin

     

    Friday, September 15, 2006 10:08 AM
    Moderator
  • I wasn't sure myself of adding the .suo file as it was a big binary 'mess' and seemed full of personal paths. Can you tell me a bit more about these proj.user files? I cannot find any information about them and I think they're only used in VS2005? It also is of the form project_name.machinename.user.proj. Would it work if were just name project_name.proj as clearly all users who check out the project would be named differently.

    I don't know if I have any influence over where the DebuggingWorkingDirectory is, but the fact is that when I delete the .suo file the next time I open the solution my working directory is reset.

    Could you perhaps point me somewhere on how to 'store it in the project file itself'? Eg should I just add a line like this somewhere in the .vcproj file?

     

    Saturday, September 16, 2006 9:40 PM
  • I forgot in my opening post that this is a Visual C project. So the user file should then be <projectname>.vcproj.user? I've given that a try by creating the file with a copy of a VS2005 .vcproj.user file, but that didn't help.

    Saturday, September 16, 2006 10:44 PM
  • Hi,

    I don't know what is the format of the vcproj or vcproj.user files. Each project can use any format they like when creating these files. You should talk with the project guys (in VC forums) how you can extend their project.

    From the source control point of view, anything that goes in the project file is sharable between users working on that project. The vcproj.user file contains user-specific settings, and the project doesn't expose that file to source control (thus it's not added in the scc database).

    Alin

    Wednesday, September 20, 2006 3:45 PM
    Moderator
  • I am using VS 2005. is there a list of what directory/files should be checked in to source control?

     

    -Markus_R

    Thursday, September 21, 2006 8:34 PM
  • Unless you've written your own project types, it should all be handled by the IDE automatically.  Just use the built-in "Add solution to SCC" feature.
    Friday, September 22, 2006 2:24 AM
    Moderator