title: How to branch for CI & CD using TFS?
body: <p>We have Dev, QA pre_prod (stage) and Prod(Trunk) branch.</p>
  
  <p>This is how our process works , please help in improving process to avail CI&amp;CD features using TFS..</p>
  
  <p>Dev changes are merged to QA branch on schedule basis say end of sprint. then published from QA branch. QA team does testing if found any defect , then bug-fix is done in QA branch then get merged with Dev branch.
  if QA is done then QA branch is merged with pre-Prod and Acceptance testing is done by client then merged to prod branch and published to client.</p>
  
  <p>if it comes production bug, hot fix is made in pre-prod branch -> published for  acceptance testing (acceptance env where QA gets notified) ->all good then then merge to prod branch and publish to client.
  hot fix is not merged to QA as it may add other QA ongoing check-ins. since hot fix needs instant fix it goes through Acceptane testing directly where QA also can test .. if all good then get merged to QA branch.
  Cons:
  1. All development has to be done to give build to QA . so QA is idle. no CI.
  2. Another team to do merging between branches. publish it and if error again merging it. resource not free...</p>
  
  <p>how can we implement TFS CI&amp; CD features here ? </p>
  
  <p>CI better works with one branch pattern where check-in will trigger build then QA will test and approve then promote to prod. but here if QA rejects then dev has to fix  since it is single branch it will get merge with ongoing daily check-ins and if triggers some more error in QA the this cycle will repeat  all the time and features can't be promoted to prod.</p>
  
  <p>Second solution could be to establish branch specific CI &amp; CD as changes are done in individual branch. but here we can't avail the CD feature.... as there is no link between environments ...</p>
  
  <p>third concern is QA needs a stable environment to test all tasks..if in mid new deployment is added through CD then QA testing will get hampered. </p>
  
  <p>please help...and provide your thoughts to it if  process needs to be changed...</p>