After working quite long without versioning I am trying to restructure one of my old projects and try to learn how to work with TFS. For the moment I have the following (simplified) structure:
$/Application
$/Application/Main (Branch)
...
$/Application/Main/Source
$/Application/Main/Source/Application
$/Application/Main/Source/SharedBinaries
$/Application/Main/Source/SharedSource
$/Application/Main/Source/SharedSource/Library1
$/Application/Main/Source/SharedSource/Library1/Include
$/Application/Main/Source/SharedSource/Library2
$/Application/Main/Source/SharedSource/Library2/Include
$/Application/Main/Source/Tool1
$/Application/Main/Source/Tool2
...
$/Application/Development (branched from Main)
The sourcecode of Application
resides in $/Application/Main/Source/Application
while storing binary dependencies such as *.lib
and *.dll
files in $/Application/Main/Source/SharedBinaries
. In $/Application/Main/Source/SharedSource
there should be a directory for each used library. Right now these are only 3rd party libs such that they only provide the necessary include files and no sourcecode at all.
Now I want to create a new team project for a common library referred to as ClassLibrary
. The Application
will use it, but other applications too, such that directly integrating the library would definitely be no good design. Similiar to the app itself we have this hierarchy:
$/ClassLibrary
$/ClassLibrary/Main (Branch)
...
$/ClassLibrary/Main/Source
$/ClassLibrary/Main/Source/ClassLibrary
...
$/ClassLibrary/Development (branched from Main)
My very first attempts was to branch $/ClassLibrary/Main/Source/ClassLibrary
to $/Application/Main/Source/SharedSource
such that updating the lib, all other projects get the updated version like merging Development to Main however this doesn't work and this is a sign that I have no idea how to structure this right. What is the general approach of handling such shared content and libraries across different team projects boundaries?
Notice: Yes, this question is another version of one I asked yesterday, which I have deleted to completely update this.