TFS –i koodihaldus võimaldab algusaegadest peale arendajal kasutada n-ö oma raamatu riiulit, kuhu soovi korral saab TFS –i serverisse hoiule panna koodimuudatused ja hiljem need sealt võtta ning muudatustega tööd jätkata.
Tüüpiline stsenaarium on järgmine:
- arendaja töötab uue funktsionaalsuse kallal
- kõrvale tuleb projektijuht ja soovib, et arendaja kiirelt ühe bugi parandaks
- arendaja ei soovi koodimuudatusi sisse panna, kuna need on poolikud veel ja võibolla ei kompileerugi. isegi kui teha kompileeruvaks, siis võivad need muudatused omada mõju teiste arendajate koodile ning rikkuda/häirida teiste arendajate tööd. Hea oleks need ajutiselt kõrvale panna, et siis töötada bugi parandamise kallal ja hiljem jätkata uue funktsionaalsuse arendust.
- Arendaja shelveset –ib oma muudatused ning taastab muudatuste eelse olukorra lokaalselt.
- Arendaja parandab bugi jne.
- Arendaja võtab alla shelveset –i ning jätkab funktsionaalsusega tööd.
Eks teisi stsenaariume saate ise juurde mõelda. Shelveset –imise kohta saate rohkemat lugeda MSDN –st.
Tähelepanu! Shelveseti juures on tähtis teada järgmist nüanssi – ta on seotud selle asukohaga (teekonnaga/branchiga), kust see shelveset loodi. Kui te töötate “Dev” branchis, siis ka seda shelveset –i saate te unshelvida ainult dev branchis (samast serveri asukohast, kust shelveset loodi).
Tavaliselt see ei ole probleem. Erand juhtudel võib olla aga soov unshelvida koodimuudatusi mõnes muus branchis või asukohas. Näiteks võibolla on meeskonna projekti koodihaldus migreeritud ühest projektist teise või siis soovite oma arenduses olevad muudatused unshelvida hotfixide branchi asukohta. Igatahes, põhjuseid leiab.
Niisuguse unshelvimise või shelvset –i migreerimise jaoks on TFS Power Toolidega kaasas eraldi käsklus. Järgnevalt kirjeldakski lühidalt samme et migreerida/unshelvida koodimuudatused teise asukohta.
Sammud
1. Avage koodirida (cmd) ning liikuge selles niisugusele asukohale, mis on mäppitud TFS –i koodihaldusega (kus TFS –i workspaceil on teekond koodihaldusega seotud)
2. Kirjutage ja jooksutage järgmine käsklus sealt, kus asendatud on korrektsete sisenditega need, mis on [] märkide vahel:
1: TFPT.EXE unshelve "[Shelveseti nimetus];[kasutajanimi koos domeeni/arvutiga]"
2: /migrate /source:"$/[allika shelvseti teekond branchini]"
3: /target:"$/[sihtkoha shelvseti teekond branchini]"
Shelveset –i nimetuse saate te otsides shelveti üles kas kasutades meeskonna liikmete laiendusi või siis “unshelve” käsklust Team Exploreris.
Näidis
X:\Projects\TM\Dev\Dev>TFPT.EXE unshelve "Some Shelveset;X\User" /migrate /source:"$/TM/Dev/Dev"
/target:"$/CTM/Dev/Dev"
3. Seejärel teile avaneb aken, kust saate unshelvimist alustada. Antud aknas valige “Unshelve”.
4. Seejärel avaneb aken, kus saate uues asukohas olevate failidega shelveseti koodimuudatused kokku panna (ühendada ehk merge -da). Valige algatuseks “Auto-merge all”.
5. Juhul kui sammus 4. “auto-merge” ei toiminud kõikkide failide puhul, siis tehke manuaalne ühendamine ja lahendage koodi konfliktid ära.
6. Peale konfliktide lahendamist on kõik bueno. Te olete edukalt ühendanud/toonud oma shelveseti uude asukohta ja saate selle nüüd uuesti ära shelvida või siis jätkata tööd shelvsetis olnud muudatuste kallal uues asukohas.
Niimoodi saab tuua shelveseti ühest projekti koodihaldusest teise projekti koodihaldusesse või siis ühest asukohast serveris teise.
TFS Power Tools
Vahend, mida te selleks vajate on TFS Power Tools. See on minu silmis hädavajalik ja väga kasulik vahend/täiendus Visual Studio Team Explorerile, mida ise kasutan igapäevaselt. Antud vahend sisaldab endas TFS –i serveri parimate praktikate analüüsijat, Windows Exploreri integratsiooni, meeskonna liikmete kollaboratsiooni tuge, tööülesannete muudatustele registreerimsie editori (Alerts Explorer), protsessi malli muutmise editori jm.
TFS Power Tools on olemas nii VS2008 kui VS 2010 RC –le.
Edu!