Git Diff Margin


Git Diff Margin displays live changes of the currently edited file on Visual Studio 2010+ margin and scroll bar.

(9) Review
Visual Studio
2013, 2012, 2010, 14
Download (13,889)
E-mail Twitter Digg Facebook
Add to favorites
Reviews (9)
Q and A (9)
Sign in to write a review
Sort by:

by metacircle | October 08 2014

Awesome. This will make my daily work so much more effective :)

Laurent Kempé October 08 2014
| Edit |

Thanks. Nice to hear that! Enjoy it

by TomasDeml | October 03 2014

Very useful!

Laurent Kempé October 03 2014
| Edit |


by ChrisAlanSearle | September 29 2014

An absolute briliant have add-on for any developer using GIT, makes tracking changes and seeing previous version a breeze.

Laurent Kempé September 29 2014
| Edit |


by Philip Pittle | September 24 2014

Simple and effective!

Laurent Kempé September 24 2014
| Edit |

Thanks Philip!

by ScruffyDuck | September 02 2014

This is really helpful and a great adjunct to my source control process. Thanks Laurent

Laurent Kempé September 02 2014
| Edit |

You are welcome!

by Rick Sladkey | December 02 2013

This extension is what the "Track changes" feature should have been all along and you don't need them both so simplify things by turning off "Tools -> Options -> Text Editor -> Settings -> Track changes".

Laurent Kempé January 11 2014
| Edit |

Thanks Rick! I thought the same when I worked with IDE like IntelliJ, this is why I started to implement Git Diff Margin. Thanks for the contribution too!

by mkempe | November 13 2013

Great extension and pretty easy to install ;)

by apostasia | November 07 2013

Been using this as part of the Git Source Control Provider for some time now, just wanted to say that the diff margin has been so useful to me there are no words for it :] Really, this thing is simple yet super effective and a major productivity boost. Everybody using Git and VS should be using this.

Laurent Kempé November 08 2013
| Edit |

Thank you very much!

by MarkAurit | November 02 2013

Ive tried installing this twice under vs2012 pro, which I run as admin, and after restarting vs I get a "an exception has been encountered ... you can get more information ...". Shame, I love good addins. Im using the git provider w/git extensions. Assuming it works as advertised Id certainly rate it much higher ....

Laurent Kempé November 04 2013
| Edit |

Thanks for the feedback! What would have been very much helpful to troubleshoot your issue is to provide a bug entry with the log file provided from the dialog which you described. You might still create it here -

Sign in to start a discussion

  • 2012 package
    4 Posts | Last post September 24, 2014
    • Hello,
      I have some issues installing the 2012 package with chocolatey. Here is the error. Would you have any idea?
      Thank you very much.
      Write-Error : GitDiffMargin.vs2012 did not finish successfully. Boo to the chocolatey gods!
      [ERROR] There was an error installing 'GitDiffMargin.vs2012'. The exit code returned was 2003.
      At C:\Chocolatey\chocolateyinstall\helpers\functions\Write-ChocolateyFailure.ps1:30 char:14
      +   Write-Error <<<<  $errorMessage
          + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
          + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Write-Error
    • Hello
      Sorry but I have no clue! It looks like an error in chocolatey itself, could you update choco first?
      We will come with another version hopefully next week, maybe it will solve your problem.
    • Coudl you try version 3.0 which we shipped yesterday,
    • It works! Thank you very much.
  • The driectory name is invalid
    2 Posts | Last post September 04, 2014
    • System.ArgumentException: The directory name C:\dev\SqorRest\.git\modules\packages\.git is invalid.
      This is a repo that has submodules.   The submodules are located under "packages".  Under packages there are four submodules.  The directory ".git" does not exist under "packages" and I do not know why the extension is trying to look for such a folder.  Let me know if I can provide any further info.
    • I created the issue at github -
      It would be good to continue there the discussion
  • Crashes VS 2013
    5 Posts | Last post September 02, 2014
    • Just installed the latest version (  Now VS 2013 crashes about 30 seconds after I load my project.  I disabled Git Diff Margin (via Tools/Extensions and Updates) and VS stopped crashing.
      Now I'm trying to figure out the mechanics of reverting to the older, working version...
    • UPDATE: I uninstalled Git Diff Margin, and VS is still crashing. Hmmm... Ok, so unless something got left behind (or broken) by the previous installation, it looks like Git Diff Margin is off the hook for this problem. Or not... the problem started happening immediately after I upgraded to the latest version...
    • On a whim, I reinstalled Git Diff Margin (figured I couldn't make things any worse), and now the problem seems to have gone away.  Go figure...
    • That's weird! We have not experienced such problems during the testing of Git Diff Margin.
      During uninstall nothing should be left behind, you check your folders in C:\Users\{UserName}\AppData\Local\Microsoft\VisualStudio\12.0\Extensions\ to see if there is still one with Git Diff Margin.
      Do you have some others plugins installed and also removed one before re-installing Git Diff Margin?
    • So according to your last entry on the issue report all is good now!
  • Diff decorations should also appear on scrollbars
    5 Posts | Last post September 01, 2014
    • This is an excellent extension. The only thing I miss is to show the decorations over the scrollbar and not just on the left hand side.
    • Thanks Benjamin! I started to work on it ;)
    • Excellent news, thanks! If you need a tester, let me know! By the way, I am using the "Map mode" for the scrollbar, not the "bar mode" (check out Text Editor > All Languages > Scroll Bars). It would be great if the decoration shows up for map mode scrollbars. The main advantage I see for map mode is that you can actually click anywhere on the scrollbar and it moves you there. Where as the other mode you just scroll up or down one page.
    • Thanks! I added your point to the github issue -
      btw are you from Zurich?
    • This is now available with version 2.0
  • Thinks entire file has changed
    8 Posts | Last post September 01, 2014
    • I have two computers with presumably identical stuff on them: VS 2013, GitHub for Windows, git version 1.8.3.msysgit.0, Git Diff Margin 1.3.2., current source control plug-in is Microsoft Git Provider.
      On one computer, everything works as expected.  On the other computer, Git Diff Margin thinks that the entire contents of any file I open is different, even if I just open the file to look at it and don't modify it at all.
      Any ideas?
    • Hi Bob, 
      Thanks for your feedback
      There is still a bug in that area in GitDiffMargin 1.3.2. But are you talking about the same repository cloned on two different machines? If yes then I would say the problem is due to a git configuration which is different on both machines, like core.autocrlf for example. Could you check that please?
    • Yes, this is a GibHub repository that I've cloned to two different Windows 8.1 machines.  The global config (C:\Users\MyProfileName\.gitconfig) seems to be more or less identical on both machines.  Specifically, on the machine that works correctly, the global config is
      name = Bob Altman
      email = <my email>
      tool = araxis
      [difftool "araxis"]
      path = C:\\Program Files\\Araxis\\Araxis Merge\\compare.exe
      tool = araxis
      [mergetool "araxis"]
      path = C:\\Program Files\\Araxis\\Araxis Merge\\compare.exe
      On the machine that doesn't work, the global config is just the [user] section (without the [diff] or [merge] sections)
    • After more investigation, it turns out that, sure enough, I was bitten by inconsistent line endings.  On the problem PC, I have 2 independent Git installations (one that came along for the ride with GitHub for Windows and one that I manually installed from the Git website).  That means that I have two different config files with different settings, one of which was inconsistent with my main development PC.
    • All good then!
    • Exact identical issue. But I only have one git installed, this plugin works perfectly on another machine. Still don't know the cause though.
      @Laurent: if there's a test build for the line ending stuffs, i would like to give it a try.
    • @dextml: I currently do not have a build for that particular issue, whenever I will I will get back to you
    • @dextml you should try version 2.0 which fix that issue!
  • Visual Basic
    2 Posts | Last post September 01, 2014
    • Hi,
      Is this compatible with Visual Basic? I have installed the extension and dont see any updaes in the toolbar after editing code that is linked to TFS
    • Hi
      It is compatible with any languages and files but it needs to be a Git repository
  • Show Differences
    5 Posts | Last post September 01, 2014
    • I admit my ignorance up front and assume I am missing something obvious.  I have installed this and it works great.  The only thing I can't get working is Show Differences.  I realise this is related to an external Git Diff tools and I have looked at how to set it.
      At the moment I have the source control plugin set to Microsoft Git Provider.  I use SourceTree for my source control and don't have Visual Studio Tools for Git installed.
      Would you mind telling me how to set up a diff engine please?
    • Oh I do have TortoiseGit installed if that helps
    • No worries! I so and so wanted to document that on the wiki so it is a good reminder.   Here it is -
    • Thanks Laurent
    • Welcome! You could have it working then?
  • Color customization
    3 Posts | Last post May 08, 2014
    • Can I customize the decoration colors?
    • Just found it, under "Git Diff Adition/Modification/Removed" in the "Fonts and Colors" option.
    • Nice!
  • Doesn't work for me
    6 Posts | Last post July 15, 2013
    • When I open a project, the extension throws an exception an it doesn't work.
    • Hi Alessandro, do you have the git.exe in the path? Thi sis required for that first version and will change soon
    • I've added git to the path and now it work, thanks
    • I've updated to 1.1 and it doesn't work anymore. As soon as I load a project it throws an exception:
      System.ArgumentNullException: Value cannot be null. Parameter name: path at System.IO.Path.GetFullPathInternal(String path) at System.IO.Path.GetFullPath(String path) at GitDiffMargin.Git.GitCommands.IsGitRepository(String directory) at GitDiffMargin.DiffUpdateBackgroundParser..ctor(ITextBuffer textBuffer, TaskScheduler taskScheduler, ITextDocumentFactoryService textDocumentFactoryService, SVsServiceProvider serviceProvider, IGitCommands commands) at GitDiffMargin.ViewModel.DiffMarginViewModel..ctor(GitDiffMargin margin, IWpfTextView textView, ITextDocumentFactoryService textDocumentFactoryService, SVsServiceProvider serviceProvider, IGitCommands gitCommands) at GitDiffMargin.GitDiffMargin..ctor(IWpfTextView textView, MarginFactory factory) at GitDiffMargin.MarginFactory.CreateMargin(IWpfTextViewHost textViewHost, IWpfTextViewMargin containerMargin) at Microsoft.VisualStudio.Text.Utilities.ContainerMargin.<AddMargins>b__2(IWpfTextViewMarginProvider mp) at Microsoft.VisualStudio.Text.Utilities.GuardedOperations.InstantiateExtension[TExtension,TMetadata,TExtensionInstance](Object errorSource, Lazy`2 provider, Func`2 getter)
    • Thanks Alessandro. I can reproduce that when the solution you are loading is not managed Git. I added a bug at and will have a look to it as soon as possible.
    • Hi Alessandro, I updated the addin to version 1.1.1 which should fix the issue you reported. Thanks again for reporting. If you might have more issues or feature requests please report those on this page