Friday, August 2, 2013

GIT-TF Tips and Tricks

description (codeplex)

Git-TF is a set of cross-platform, command line tools that facilitate sharing of changes between TFS and Git.
These tools make it easy to clone sources from TFS, fetch updates from TFS, and update TFS with changes committed locally in Git.

Git-TF is a handy command line extension to TFS if you want to use distributed source control for advanced scenarios.
In general Git-TF is working fine. However there are some scenarios where you’ll get some headache fixing git-tf to tfs-source-control conversion history.

  • TFS don’t like it if you have multiple heads
  • some issues with complex history paths which result in high cpu usage of java.exe
  • avoid complex branch trees with merges, really!

 

How to do it?

avoid merges

instead rebase!

 

Alias

the following git aliases come in handy if your working with git-tf

Git Tools for Windows

Visual Studio 2013Alternate Text

description

Visual Studio 2013 has native support for git repositores for file versioning. However not all advanced features are supported like line by line staging, rebase, …
However VS2013 is working fine together with other git tools like msysgit, gitextensions.

 

usage scenarios

  • basic source control handling inside visual studio

TIPS

Git-TFimage

description (codeplex)

Git-TF is a set of cross-platform, command line tools that facilitate sharing of changes between TFS and Git.
These tools make it easy to clone sources from TFS, fetch updates from TFS, and update TFS with changes committed locally in Git.

usage scenarios

  • clones tfs 2008/2010/2012 source control repositories into local git repositories.
  • local offline usage
  • local commit
  • local branches

tips

  • use a separate branch for your development
  • rebase instead of merge to avoid tfs checkin conflicts

Visual Studio Tools for Git

Description (VS-Gallery)

The Visual Studio Tools for Git is an extension for Team Explorer that provides source control integration for Git. This extension enables integration with any local Git repository, and it provides tools to work with third party hosted Git repositories. The extension also enables the use of Team Foundation Service hosted Git projects.

usage scenarios

  • Git Source Control integration with VS 2012
  • basic source control handling inside visual studio

tips

Git Extensionsimage

description (code.google.com)

Git Extensions is the only graphical user interface for Git that allows you control Git without using the commandline. It comes with a manual and video tutorials to get you started quickly.

usage scenarios

  • using Git without using the command-line
  • basic and advanced source control operations

tips

  • configure Visual Studio 2012/2013 as merge tool
  • msysgit will be installed with Git Extensions if not already installed

msysgitimage

description

Git bash commandline client for windows (simple installer), not all advanced features are supported like python scripting integration.

usage scenarios

  • basic and advanced source control operations
  • if like the command line – use it

tips

  • works fine hosted inside conemu

posh-gitimage

description (github)

A set of PowerShell scripts which provide Git/PowerShell integration.

usage scenarios

  • basic and advanced source control operations
  • if like the command line – use it
  • if you like the power of PowerShell – use it

tips

  • works fine hosted inside conemu
  • command ‘ii .’ will open explorer in current folder path
  • combine ‘VS Developer Command Promt’ with powershell and posh-git –> eg: run msbuild and vs-tools inside powershell

SourceTreeimage

description (atlassian)

A free Mercurial and Git client for Windows or Mac
SourceTree is a powerful Git and Mercurial desktop client for developers on Mac or Windows

usage scenarios

  • using Git without using the command-line
  • basic and advanced source control operations

tips

SmartGitimage

description (syntevo)

SmartGit/Hg is a client for Git and Mercurial. It runs on Mac OS X, Windows and Linux.

usage scenarios

  • cross plattform UI client for git
  • using Git without using the command-line
  • basic and advanced source control operations

tips

Github for Windowsimage

description (github)

  • Develop on Windows, share on GitHub.
    • Clone Repositories
    • Browse History
    • Commit Changes
    • Branch Code
    • Share on GitHub.com
  • The easiest way to use Git on Windows.

usage scenarios

  • using Git without using the command-line
  • basic and advanced source control operations
  • Simple UI in ‘Modern UI’ Style
  • Git Shell command line (powershell)

tips

  • includes posh-git inside of Git Shell