tiistai 4. marraskuuta 2014

Versionhallintaa, TFS -> Git


TFS to Git migrate

En ole oikeastaan koskaan käyttänyt TFS:ä versionhallintaohjelmana (Team Foundation Version Control) eikä kiinnostanut ryhtyäkään, kun minulle annettiin ohjelmointitehtävä, jonka lähdekoodi oli TFS:ssä. Olin edellisessä projektissa käyttänyt Gitiä ja minusta oli luontevaa yhdenmukaistaa ja siirtyä tässä toisessakin siihen. Googlettelin hieman, etsin tietoa miten siirron voisi tehdä, ja nyt listaan kokemukseni hommasta.

Työkalut

Löysin kaksi työkalua ja kannattaa olla varovainen ja varma kummalle ohjeet on kirjoittu, kun lukee niitä netistä.
Näiden työkalujen käyttöä varten pitää ottaa vaihtoehtoiset tunnukset (Alternate Credentials) käyttöön Visual Studio Onlinessa omista asetuksista.

Itse asensin Git-tf:n seuraavasti Chocolateylla
cinst git-tf

Konvertoinnin vaiheet Git-tf:llä

1. Kloonataan vanha projekti Git-muotoon 

git-tf clone https://omatili.visualstudio.com/DefaultCollection $/projekti --deep

Kun laitat --deep, niin mukaan tulee koko historia.

2. Putsataan ylimääräiset jutut pois

Lataa normaali .gitignore-tiedosto, joka määrittelee mitä kaikkea tallennetaan versionhallintaan. Poista vanhaan versionhallintaan liittyvät tiedostot (*.vssscc) ja muokkaa .sln-tiedostojasi poistamalla niistä viittaukset Team Foundation Version Controliin. Avaa .sln tekstieditoriin ja hae "TeamFoundationVersionControl" ja ja poista kyseinen GlobalSection.

Tässä vaiheessa on myös hyvä miettiä miten kohdellaan rivinvaihtoja. Oletuksena LF korvataan CRLF:llä. Tähän liittyvä komento, jos haluaa ottaa automaattisen muunnoksen pois:
git config --global core.autocrlf false
Jos muuten siivoilet hakemistorakennetta ja siirtelet tiedostoja Windowsissa resurssienhallinnalla, niin huomasin, että siirrettyjen tiedostojen historian säilyttämiseksi täytyy antaa komento:
git diff -M .


3. Add, Commit ja Push

Mene juurihakemistoon ja lisää uudet tiedostot kuten .gitignore:
git add .
Sitten tee commit:
git commit -a -m "ensimmäinen commit siirron jälkeen"
Sitten vaihdetaan alkuperäksi minun tapuksessani Visual Studio Online, mutta voit laittaa omankin serverin.
git remote add origin https://omatili.visualstudio.com/DefaultCollection/_git/projekti
Viimeisenä lähetetään sitten tavara pilveen komennolla:
git push -u origin --all


4. Mahdollisten työtehtävien (work item) siirtäminen

Work itemejä voi siirtää ja muokata Excelin ryhmätyöominaisuuksilla (Excel Team features).

Tässä kaikki tällä kertaa ja toivottavasti tästä on jollekin hyötyä.