Iteam
GitHub

Git-tfs gör att du kan checka in till TFS från Mac och Linux

Har du någon gång velat jobba mot en TFS-miljö från Mac har du tidigare varit tvungen att checka in dina filer via Bootcamp eller VMWare fusion eller liknande. Numera kan du göra allt direkt från din vanliga terminal.

Microsoft har släppt en cross-platform klient för TFS. Det är enkelt att installera och funkar bra både i Windows och Mac. Det krävs ingen installation på servern. Det finns två snarlika lösningar som heter precis samma sak så se till att du tar den som är från Microsoft, den fungerar både på Mac och på Windows (märkligt att det inte är tvärtom, Microsoft börjar lära sig ;).

1. Hämta zip-paketet här: http://aka.ms/git-tf

2. Packa upp zipfilen i en mapp, t ex /usr/git-tf 

3. Redigera filen .profile som ligger i din hemmapp:
$ cd
$ touch .profile
$ open .profile

4. Lägg in följande rad
export PATH=”/usr/git-tf/”:$PATH

5. Testa att du har java installerat. Skriv och följ eventuella instruktioner:
$ java

6. Starta om terminalen

7. Nu ska du kunna skriva git tf och få upp följande:
$ git tf
usage: git-tf [--version] [--help] [--quiet|-q|--verbose] [<command...>]
The git-tf commands are:
   help       Displays usage information
   clone      Initializes a git repository from a TFS path
   configure  Configures an existing git repository to add to TFS
   checkin    Checks in changes to a TFS folder
   fetch      Fetch the latest code from TFS into FETCH_HEAD
   pull       Pulls the latest code from TFS and merge/rebase the changes into master
   shelve     Shelves the changes to a TFS folder
   shelvesets Lists the shelvesets available on the server. Provides a way to delete shelvesets
   unshelve   Unshelves a shelveset from TFS into the repository

8. Klona ett TFS repo med clone kommandot:
git tf clone http://tfs.iteam.se/tfs/DefaultCollection "$/Customer/Project/trunk"

9. Nu kan du jobba lokalt och köra commit mot ditt lokala git repo och sen köra git checkin när du vill lägga upp dina ändringar till TFS. Default är att alla dina lokala commits hamnar i samma changeset i TFS men det går att justera genom att lägga till --deep så får du ett changeset per commit. 
$ git add .
$ git commit -m "Checked in on MAC with git tf"
[master 19bc7f2] Checked in on MAC with git tf
 1 file changed, 0 insertions(+), 0 deletions(-)
 rewrite Apps/Narmaste.Bootstrap/Readme.txt (100%)
$ git tf checkin
Username: XXXX
Password: XXXX
Connecting to TFS...
Checking in to $/Customer/Project/trunk: 100%, done.
                           Checked commit 19bc7f2 in as changeset 40801

Christian Landgren
2012-12-18