tfs2012 - What is the best branching strategy in TFS to share code between multiple team projects? -


this theoretical question branching, not code architecture or layers.

i have team project "superlibs" 25 .net projects (which class libraries). team project's structure such:

  • main (current stable version under development)
  • dev (branched main - unstable code under development)
  • releases\release 1.0
  • releases\release 2.0
  • releases\etc...

and have team project "superlogic", contains logic application , depends on 5 projects superlibs. team project's structure such:

  • main (current stable version under development)
  • dev (branched main - unstable code under development)
  • shared\superlibs\release 1.0 (branched release 1.0 of superlibs)
  • shared\superlibs\release 2.0 (branched release 2.0 of superlibs)
  • releases\release 1.0
  • releases\release 2.0
  • releases\etc...

and have third team project "superapp" depends both on "superlibs" , on "superlogic". team project's structure such:

  • main (current stable version under development)
  • dev (branched main - unstable code under development)
  • shared\superlibs\release 1.0 (branched release 1.0 of superlibs)
  • shared\superlibs\release 2.0 (branched release 2.0 of superlibs)
  • shared\superlogic\release 1.0 (branched release 1.0 of superlogic)
  • shared\superlogic\release 2.0 (branched release 2.0 of superlogic)
  • releases\release 1.0
  • releases\release 2.0
  • releases\etc...

no binary references used. project references used.

now here situation:

  • when build "superlibs" - ok
  • when build "superlogic" - still ok, because superlogic referencing superlibs' projects in folder "shared\superlibs\release x.y"
  • but when try build "superapp" - fails, because able reference superlogic , superlibs inside "shared" folder, "superlogic" in "shared" folder cannot reference "superlibs".

while have no wish play around referenced paths of branched projects, maybe has experience similar projects branching or can offer better branching strategy?

i'd remove branching equation entirely. you're branching these 3 things separately, means you're versioning them separately. if you're versioning them separately, turn nuget packages , reference binaries via nuget.


Comments

Popular posts from this blog

javascript - oscilloscope of speaker input stops rendering after a few seconds -

javascript - gulp-nodemon - nodejs restart after file change - Error: listen EADDRINUSE events.js:85 -

Fatal Python error: Py_Initialize: unable to load the file system codec. ImportError: No module named 'encodings' -