Thursday, May 24, 2007 10:05 PM
mikaeld
Följ best practices kring RI/FI i TFS och hamna där det är riktigt hett om fötterna...
Vi har för ett tag sedan publicerat lite guidance för hur vi rekommenderar er att hantera branchning/VBLr (Virtual Build Labs)/Feature teams i TFS. (http://www.codeplex.com/BranchingGuidance). Det underbara med detta är att vi för en gångs skull kan ställa teamen på tårna, gå från en Main med dålig stabilitet och sjukt fet testfas och istället låta feature teams eller delar av projektet få en egen branch (som de är ansvariga för att testa och bara merga med main när den är ok) och sedan göra en RI (trycka saker från vår ostabila branch till main efter ha passerat en Quality Gate) eller FI (trycka ut nya features från main till vår branch). Vad vi beskriver är egentligen hur vi jobbar internt i DevDiv, eller mer riktigt, hur de flesta sunda mjukvaruproducerande företag jobbar för att få upp kvalitet på main och ställa teamen på tårna...
Det tråkiga är att om ni följer instruktionerna och bestämmer er för att sätta upp ett sort antal VBLr så kommer ni med största sannolikhet att hamna i trubbel... Dags att vara ärlig och lägga bort käcka marknadsföringsfloskler...
Detta kommer att bli bättre i Orcas releasen och förhoppningsvis vara helt fixat (no #&"&%#) i Rosario. Men... Sanningen är att idag är kvaliteten på TFS för att hantera ett stort antal VBLer (Mycket som skall mergas) långt ifrån tillräcklig. Detta gör att om ni sätter upp många VBLr enligt vår best practices i dokumentet ovan kommer ni springa på problem... Lite av "Följ vår best practice och hamna i ett ställe där det är väldigt hett...". Problemet ökar linjärt med antalet VBLr... Detta gör mig otroligt ledsen...
Mina tips är:
- Kör cherry-pick merges istället för att köra en fet RI/FI på allt tills dess att TFS är uppe på banan
- Sätt inte upp för många VBLr, håll det till ett absolut minimum.
- Ha en resurs som inte är rädd för att göra lite hardcore TFS admin ala consol-mode och som inte får svettningar vid kända mergeproblem.
- Var inte rädd för auto:AcceptTheirs vid resolve
- Försök att sprida ut RI/FI så att inte varenda team skall köra en RI den sista dagen innan release (vilket ändå kommer att hända ;-))
Ett av de första problem ni kommer att råka ut för är det underbaraste felmeddelande jag sett i modern tid. Försök att förklara vad som hänt här:
TF14087: Cannot undelete “%0- insert your file name here” because not all of the deletion is being undeleted.
För att fixa gör en:
- tf dir itemspec /deleted (Kolla vilka filer som inte kan undeletas)
- Kör en manuell tf undelete /newname:name itemspec
This one is called Stella was a diver and she’s always down...