Iteam
GitHub

Team Foundation Server: Hur rullar man tillbaka ett changeset?

I TFS paketeras alla incheckningar snyggt och prydligt i paket, s.k. changesets. Ett changeset innehåller alla incheckade filer som du checkat in vid samma incheckning, dina incheckningskommentarer, eventuell koppling till work-items osv.

I teorin borde det därför nästan vara möjligt för en projektledare att plocka  buggfixar och krav från en stagemiljö till en testmiljö genom att dra och släppa work-items mellan två branches i TFS och sedan låta TFS ta ut alla incheckningar som krävs för att få dessa work-items på plats, därefter låta byggservern bygga och lägga ut detta på test. Men.. riktigt där är vi inte än.. ;)

Hur gör man då för att rulla tillbaka till ett specifikt changeset i TFS?

Genom det grafiska gränssnittet får man snällt högerklicka på varje enskild fil och först välja ”Check out for edit”, därefter ”View History” och sedan ”Get this version” och sedan upprepa detta på alla ändringar i incheckningen. Dessutom kräver detta att man inte gjort någon annan  ändring efter den ändring man är ute efter.

Det finns dock en enklare väg, TFS har en inbyggd metod för att göra rulla tillbaka alla ändringar i ett specifikt changeset. Det går dessutom att rulla tillbaka en lista av changesets eller alla mellan vissa nummer.

Man måste dock köra power tools:

1.      Leta upp numret på ditt changeset som du vill rulla tillbaka, antingen genom att klicka på View history på en av de filer som är ändrad i ditt changeset i Visual Studio eller gå via de work items som du associerat till din incheckning

2.      Starta Visual Studio Command Prompt (2010)

3.      Gå till den mapp på hårddisken som du har mappat till projektet i TFS. T ex cd \development\yourproject\trunk

4.      Skriv därefter tf rollbak /changeset:12345 (ersätt 12345 med det numret ditt changeset har)


Jag ser fram emot att detta blir smidigare för som sagt, det finns mycket spännande man kunde uppnå om man gjorde det enklare att komma åt de funktioner som finns inbyggda men dolda i TFS och jag vet att projektledare inte är jättesugna på att köra DOS.

Christian Landgren
2011-06-09