Announcing git-tf: Combining the local repository of Git with the integrated ALM of TFS

Sign in to queue

Description

Git-tf is a new cross-platform bridge which was announced today and allows developers to combine the local repository capabilities of Git with the integrated application lifecycle management tooling of Team Foundation Server.

Now you can use a Git repository locally, and when you're ready to, check in code to TFS. You can even continue to take advantage of integration between work items (such as bugs and requirements) in TFS when you want to enable end-to-end traceability of the relationship between your work and your code changes. This bridge is a cross-platform tool built with Java, so it runs on many operating systems, including OS X, Linux, and Windows. This means that you can use Git clients (such as Xcode) and maintain the ability to check code into Team Foundation Server.

In this video, Matthew Mitrik, a program manager on the Team Foundation Server team, shows off this new capability.

Download: http://aka.ms/git-tf.
Source Code: http://gittf.codeplex.com/

Note: In the video, Matt mentions that this works with both on-premises Team Foundation Server and the hosted Team Foundation Service (www.tfspreview.com). Support for the Team Foundation Service is not quite enabled yet, but it is coming soon. This post will be updated when it is available.

8/30 Update: This now works with tfspreview.com! More details here.

Tag:

TFS

Embed

Download

Download this episode

The Discussion

  • User profile image
    wkempf

    I know I'm in the minority, but I would have preferred an hg-tf or bzr-tf, or all three.

  • User profile image
    BoyOfGreen

    Does this support all common git commands (branch, checkout, merge, fetch, remote etc)?  Awesome tool, its going to be a hit.

  • User profile image
    RedKnight

    @wkempf: You are not the only one Smiley ...

  • User profile image
    RichB

    Does it support reading TFS repositories with a 'tf /destroy /keephistory' in the history?

  • User profile image
    wkempf

    @RedKnight:Not the only one, but it's obvious we're in the minority. Sad Minority or not, though, we should still have hg-tf and bzr-tf.

  • User profile image
    bangoker

    @wkempf: +1 on the hg+tfs

  • User profile image
    AlanBarber

    +1 for hg-tfs... I already use HG with tfs manually but would be nice for a full bridge built into HG.

  • User profile image
    larrymccoy

    Looks interesting.  I was hoping to try out git for local source control when disconnected from TFS, but this should make it even easier!

  • User profile image
    Adam Dymitruk

    Git-TFS has been around for 2 years now. Why am I not shocked that people haven't heard of it? The fallout of NIH sales tactics is going to hurt Microsoft in the end.

  • User profile image
    Duncanma

    @wkempf: I haven't put any time into it, but if the source for this is available (and it appears to be), someone could build hg+tfs right?

  • User profile image
    briankel

    Git-TFS has been around for 2 years now. Why am I not shocked that people haven't heard of it? The fallout of NIH sales tactics is going to hurt Microsoft in the end.

    We are well aware of Git-TFS. We address this in the video, but you should also have a read of Brian Harry's blog where he goes into more detail around the history here. In short, Git-TFS is a Windows only solution whereas Git-tf runs anywhere that Java runs. Here is a relevant excerpt from Brian's blog:

    If you already live in both the Git and TFS worlds, this new tool may look eerily like the existing Git-tfs OSS project.  Well, you are right – they are very similar.  As starting a new OSS project that's very like another is generally considered pretty bad form, I want to say a few words about this.  When we decided that we really wanted to have a good Git/TFS integration solution, the first thing we thought of was to reach out to Matt Burke who owns the existing Git-tfs solution.  Matt Mitrik had a great conversation with him about what we were looking to do and the general direction he was taking the project.  One of our big requirements was to create a cross platform solution that works just as well on Windows, Linux or MacOS.  That really wasn't in the sights for the existing Git-tfs project and, together, we agreed that separate, cross platform solution made sense.  Hence Git-tf was born.

  • User profile image
    wkempf

    @Duncanma: In theory, though not having looked at the source code I can't say that it's a certainty that the source would give anyone any help at all when implementing an hg-tf. However, selfish or not, while I would love to have an hg-tf I don't have the time to create one, even if the git-tf source provides 90% of the work.

  • User profile image
    ethomson

    @BoyOfGreen:

    , BoyOfGreen wrote

    Does this support all common git commands (branch, checkout, merge, fetch, remote etc)?  Awesome tool, its going to be a hit.

    git-tf will create a git repository for you (or use your existing repository).  So yes - you can use all the git commands on your git repository - even working with another remote.  You can then "git tf checkin" to TFS from your master HEAD once you've made your changes.

  • User profile image
    ethomson

    @RichB:Interesting question that I hadn't thought about.  We'll check it out.

  • User profile image
    PeteGoo

    Is there a way to override the tf checkin name / description? I would hate to see "TF Merged Changeset 6" or similar in TFS history. Also, what about associating or resolving multiple work items in a single checkin?

  • User profile image
    Whirly101

    Great to see git-tf - I'll be trying it out very soon. I had mixed success with git-tfs which failed for me on projects with either lots of files, or a lot of history, or both.

    @PeteGoo - Your mug rocks! Where did you get it?

  • User profile image
    youhana​Naseim

    @RichB : yes git-tf will support reading from tfs servers with " 'tf /destroy /keephistory' in history. 

  • User profile image
    youhana​Naseim

    @PeteGoo : The ability to override the tf checkin description / comment is at the top of our backlog and we will be addressing this in future releases. Git-tf today supports associating and resolving multiple workitems during checking by using any of these options:

    1) Specify the parameter multiple times : git tf checkin --associate=1 --associate=2 --resolve=9 --resolve=10

    2) Specify multiple values delimited by commas (no space) : git tf checkin --associate=1,2 --resolve=9,10

  • User profile image
    Seb

    Hi,

    Those are thonly commands that git-tf.cmd gives me:

    The git-tf commands are:
    help Displays usage information
    clone Initializes a git repository from a TFS pat
    configure Configures an existing git repository to ad
    checkin Checks in changes to a TFS folder
    fetch Fetch the latest code from TFS into FETCH_H
    pull Pulls the latest code from TFS and merge/re
    shelve Shelves the changes to a TFS folder (Beta)

    Did I do something wrong?

  • User profile image
    youhana​Naseim

    @Seb:This is correct, these are the only command currently available. Which commands do you think are missing ?

  • User profile image
    Seb

    Sorry, my bad I did not read documentation well enough. I need to play with it a little more. Good job guys!

  • User profile image
    pnewhook

    Can I create a remote branch in TFS just by pushing a local branch?

  • User profile image
    youhana​Naseim

    @pnewhook: Due to the differences of the branching models in TFS and Git, we don't support branch creation in Git propagating new branches to TFS.

  • User profile image
    Alberto Silva

    Which versions of TFS are supported, will it work with TFS2008? And what about the TFS Services on Azure?

  • User profile image
    martinwoodw​ard

    @Alberto Silva: Should work with TFS 2008 although most testing is done against TFS 2010, TFS 2012 and with tfspreview.com.  To get it working with TFS Preview see the following instructions: http://tfspreview.com/en-us/learn/code/use-git-and-vs-with-tfs/

  • User profile image
    Alberto Silva

    Thanks Martin, will give it a try :)

Add Your 2 Cents