many applications sharing framework projects, and each on a different version

I have several applications that share a set of framework projects. Each application uses a different version of the framework projects. Can I check out multiple versions to support multiple checked-out applications, or do I have to check out separately

It might sound goofy at first, but originally we just created project references to the framework projects. But this assumed that all of our applications would always use the latest version of all framework projects. That worked well when we only had two or three apps, but our number of applications grew, and the framework project evolution that occurred to support one app quickly put us out of sync with others. That, and we don't necessarily want new developers to have full access to our framework, which is our secret sauce and trade secret.

Because we're a small ISV, I work on several applications simultaneously. I might check code out to take home and work on, and if I can only have one version checked out at a time, that limits me to working on a single application. Then again, I might be doing support for multiple applications, and need projects and code windows loaded to switch among, in order to answer questions or troubleshoot problems.

How can this be done without messing up TFS source control Would this be possible as a feature to add in the future (I'm guessing that if the Office and Windows teams ever start to use TFS, they'll need this functionality.)


Answer this question

many applications sharing framework projects, and each on a different version

  • arrayhunter

    Can a project be checked out from two branches at the same time Currently we're using Subversion, and are looking at TFS and trying to figure out what changes we'll need to make, limitations, etc.

  • Loren Bain

    I'm going to bump this thread over to the TFS forum. I think that is the best spot for it to be answered.

    Thanks,

    Ian



  • Tony Spaulding

    Yes. TFS branches in "path space," meaning that branches of the same item live in different directories -- on the surface it looks very much like a file copy. Most of the time people only map one branch per workspace, but that's just a preference. You could map the whole tree in one workspace, or create a separate workspace for each branch; either way, the branches behave like totally independent files until you run Merge.

  • xr280xr

    I should note that "check out" means something different for CVS/SVN users. There is no real equivalent in TFS: once you create a workspace, the Get command is used both for the initial retrieval (cvs/svn checkout) and subsequent synchronizations (cvs/svn update).

    When TFS people talk about "checkout", they mean the same thing as "cvs/svn edit."

  • offwhite

    Can I check out multiple versions to support multiple checked-out applications, or do I have to check out separately

    I'm not sure what you mean by this. You can't have multiple versions of the same file in one workspace, if that helps.

    It sounds like you want different applications to consume different releases/iterations of the framework projects. The best way to do this is with branching. What does the branch structure of the framework projects look like right now



  • many applications sharing framework projects, and each on a different version