Giter Site home page Giter Site logo

deadlydog / vs.diffallfiles Goto Github PK

View Code? Open in Web Editor NEW
37.0 4.0 7.0 42.85 MB

Visual Studio Extension to make comparing files before and after committing them to Git and TFS faster and easier.

License: MIT License

C# 99.74% Batchfile 0.26%
compare-files diff visual-studio extension visual-studio-extension git tfvc hacktoberfest

vs.diffallfiles's Introduction

Diff All Files Visual Studio Extension Description

A Visual Studio extension to quickly and easily compare all files in TFS (a changeset, shelveset, or files with pending changes) or Git (a commit or staged/unstaged files) to see what was changed. Instead of clicking on each file individually and choosing to compare it with a different version, just click one button to compare all of the files.

This extension adds a new control into the Team Explorer pane wherever Visual Studio shows what files have changes.

Download this extension for Visual Studio 2022, 2019, 2017, 2015, 2013, or 2012 from the VS Extension Gallery.

Features

  • Compare files one at a time, many files at a time, or with all files combined in a single file.
  • Uses the same diff (i.e. compare) tool that you have configured in your .gitconfig (for Git) and Visual Studio (for TFVC). e.g. KDiff, Beyond Compare, Visual Studio, etc.
  • Settings to exclude comparing files with specific extensions, or files that have been added or deleted from source control.
  • Button to quickly close all diff tool windows that have been opened.
  • Remaining files to be compared will open automatically when current file diff windows are closed.
  • Specify the file versions to compare against (i.e. Unmodified, Workspace, Previous, Latest).
  • Supports both TFVC and Git1 source control providers.

1Git Support

This extension only supports Git in Visual Studio 2013, 2015, 2017, and 2019 prior to v16.6.

Visual Studio 2012 did not support Git, and unfortunately in the Visual Studio 2019 v16.6 update the Git experience was moved to a new user interface which does not expose extensibility points.

Please go up-vote this feature request to have Microsoft add Git extensibility points to new versions of Visual Studio to allow this extension to work with Git again.

Settings

You may edit the extension's settings from the Tools -> Options... -> Diff All Files settings page.

Screenshots

Before comparing files (left) and while comparing files (right):

Diff All Files section before doing a compare Diff All Files section while comparing files

Settings Screen (available in Visual Studio from Tools -> Options... -> Diff All Files):

Diff All Files Settings page

Contributing

Pull requests are welcome and appreciated. You may find the contributing docs helpful to get you up and running.

Changelogs

See what's changed and when in each version of the extension in the Changelog.

Donate

Buy me a toque for providing this extension open source and for free :)

paypal

vs.diffallfiles's People

Contributors

deadlydog avatar stevenbonepgh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

vs.diffallfiles's Issues

Combined view does not show all "previous version" files properly

From a comment from Steve Cimorelli on the VS 2017 Marketplace Q&A:

Choosing to view "All Files", the combined view works in a reasonable way for the changed view (the "right side" of the diff, if you will), but the previous version (the "left side") doesn't include all files. The first file (when comparing two at once, via "All Files") is simply blank, as if it were a new file.

Header:
~===========================================================
[No File To Compare: File version does not exist in source control]: [filename redacted];HEAD
~===========================================================

From the changes view in VS, if I right click that same file and choose "Compare with Unmodified", I see what I'd expect; a regular diff showing only the one test line that I changed.

Some more info here would be nice. Specifically:

  1. Does the problem also happen when not using the "Combined view"?
  2. I'm assuming this is for a Git repository, and not a TFVC repository?
  3. Can you reproduce the problem reliably with the same change, or does the result differ each time you view "All files"?
  4. Does it happen with different changes? Or only with one specific file?
  5. Does it happen in other repos, or just that one?

VS 2019

Hello, are there any plans to make a VS 2019 compatible version? Thanks! :)

Documentation update for Beyond Compare diff tool configuration

https://github.com/deadlydog/VS.DiffAllFiles/wiki/Common-Diff-Tool-Configurations-For-TFVC

Product              | Command      | Arguments
---------------------|--------------|----------------------------
Beyond Compare       | bc2.exe      | %1 %2 /title1=%6 /title2=%7

The existing instructions appear to pertain to Beyond Compare v2. Version 3 uses bc3.exe, while Version 4 thankfully switches to BCompare.exe. Here's what the updated table should look like:

Product              | Command      | Arguments
---------------------|--------------|----------------------------
Beyond Compare (v2)  | bc2.exe      | %1 %2 /title1=%6 /title2=%7
Beyond Compare (v3)  | bc3.exe      | %1 %2 /title1=%6 /title2=%7
Beyond Compare (v4)  | BCompare.exe | %1 %2 /title1=%6 /title2=%7

Extension options/settings are not saved after restarting Visual Studio

The How To Compare Files options are not saved.

Steps to reproduce using VS2019 (Professional):

  1. In Options->Diff All Files->General, I set How To Compare Files to "Always compare each file independently", with the Maximum number of files to compare at a time to 999.
  2. Close VS2019
  3. Re-open VS2019
  4. In Options->Diff All Files->General, the How To Compare Files has reverted back to the default of "Allow me to decide by showing a checkbox on the UI", and the Maximum number of files to compare at a time is set back to 1.

Is Git Source Control Provider supported?

We had problems with the built-in Git provider, so we switched to Git SCP. Using this provider, there's not much on the Team Explorer page, and I can't see another way to launch DiffAllFiles.

If this alternate provider is supported, how do I launch?

If not, take this as my suggestion for an enhancement.

V 1.0.4 does not fix Error after VS update 16.1.0 #32

Studio 16.1.1, On Prem TFS
Update from V1.0.2 which had the problem mentioned in #32
Get this:

Microsoft.VisualStudio.Composition.CompositionFailedException: An exception was thrown while initializing part "VS_DiffAllFiles.Sections.PendingChangesSection". ---> System.Windows.Markup.XamlParseException: Provide value on 'QuickConverter.MultiBinding' threw an exception. ---> System.Exception: Failed to tokenize expression "!$P0 || ($P0 ## $P1) ? Visibility.Visible : Visibility.Collapsed". Did you forget a '$'?
   at QuickConverter.EquationTokenizer.Tokenize(String expression)
   at QuickConverter.MultiBinding.GetLambda(String expression)
   at QuickConverter.MultiBinding.ProvideValue(IServiceProvider serviceProvider)
   at MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)
   --- End of inner exception stack trace ---
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
   at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
   at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
   at VS_DiffAllFiles.Sections.DiffAllFilesSectionControl.InitializeComponent() in C:\dev\Git\VS.DiffAllFiles\VS.DiffAllFiles.VS2019\obj\Release\DiffAllFilesSectionControl.xaml:line 1
   at VS_DiffAllFiles.DiffAllFilesBaseClasses.DiffAllFilesSectionBase..ctor() in C:\dev\Git\VS.DiffAllFiles\VS.DiffAllFiles\DiffAllFilesBaseClasses\DiffAllFilesSectionBase.cs:line 82
   at VS_DiffAllFiles.Sections.PendingChangesSection..ctor() in C:\dev\Git\VS.DiffAllFiles\VS.DiffAllFiles\Sections\PendingChangesSection.cs:line 27
   --- End of inner exception stack trace ---
   at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.RuntimePartLifecycleTracker.CreateValue()
   at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.Create()
   at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveNext(PartLifecycleState nextState)
   at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveToState(PartLifecycleState requiredState)
   at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.GetValueReadyToExpose()
   at Microsoft.VisualStudio.Composition.ExportProvider.<>c__DisplayClass53_0.<CreateExport>b__0()
   at Microsoft.VisualStudio.Composition.ExportProvider.<>c__DisplayClass55_0.<CreateExportFactoryExport>b__1()
   at Microsoft.VisualStudio.Composition.ExportProvider.<>c__DisplayClass54_0.<CreateExportFactory>b__0()
   at Microsoft.VisualStudio.Composition.DelegateServices.<>c__DisplayClass2_0`1.<As>b__0()
   at System.ComponentModel.Composition.ExportFactory`1.CreateExport()
   at Microsoft.VisualStudio.Composition.NetFxAdapters.MefV1ExportProvider.ComposablePartDefinitionForExportFactory.CreatePart()
   at System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator.LifetimeContext.GetExportLifetimeContextFromExport[T](Export export)
   at System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator.<>c__DisplayClass6_0`2.<CreateStronglyTypedExportFactoryOfTM>b__0()
   at System.ComponentModel.Composition.ExportFactory`1.CreateExport()
   at Microsoft.TeamFoundation.Controls.WPF.TeamExplorer.Framework.TeamExplorerSectionHost.Create()`
``

Error when trying to diff files in git repo

We recently switched to git from TFS for our source code manager. When trying to use Diff All Files on my git repo, I always get an error:
Unexpected Error Occurred:
StrictFilePathMarshaler must be used on a FilePath.

Currently on VS2019 v16.5.4
DiffAllFiles 1.0.4

VS 2017 Support

Any plans on updating for VS 2017? If not, I'll have to look further to contribute as this extension has proved very useful in doing larger code comparisons!

Show only changed parts of files

Please add an option to view only changed lines of files, like on GitHub!

Suppose the following example: I have changed many files, but only one line in each file was changed. This leads to really huge diff using this extension. Showing only changed lines (plus some lines between/after for context) would greatly improve this scenario.

Error after VS update 16.1.0

After having installed VS update 16.1.0 Pending Changes pane shows error:

Microsoft.VisualStudio.Composition.CompositionFailedException: An exception was thrown while initializing part "VS_DiffAllFiles.Sections.PendingChangesSection". ---> System.Windows.Markup.XamlParseException: Provide value on 'QuickConverter.MultiBinding' threw an exception. ---> System.Exception: Failed to tokenize expression "!$P0 || ($P0 ## $P1) ? Visibility.Visible : Visibility.Collapsed". Did you forget a '$'?
   at QuickConverter.EquationTokenizer.Tokenize(String expression)
   at QuickConverter.MultiBinding.GetLambda(String expression)
   at QuickConverter.MultiBinding.ProvideValue(IServiceProvider serviceProvider)
   at MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)
   --- End of inner exception stack trace ---
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
   at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
   at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
   at VS_DiffAllFiles.Sections.DiffAllFilesSectionControl.InitializeComponent() in C:\dev\Git\VS.DiffAllFiles\VS.DiffAllFiles.VS2019\obj\Release\DiffAllFilesSectionControl.xaml:line 1
   at VS_DiffAllFiles.DiffAllFilesBaseClasses.DiffAllFilesSectionBase..ctor() in C:\dev\Git\VS.DiffAllFiles\VS.DiffAllFiles\DiffAllFilesBaseClasses\DiffAllFilesSectionBase.cs:line 82
   at VS_DiffAllFiles.Sections.PendingChangesSection..ctor() in C:\dev\Git\VS.DiffAllFiles\VS.DiffAllFiles\Sections\PendingChangesSection.cs:line 27
   --- End of inner exception stack trace ---
   at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.RuntimePartLifecycleTracker.CreateValue()
   at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.Create()
   at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveNext(PartLifecycleState nextState)
   at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveToState(PartLifecycleState requiredState)
   at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.GetValueReadyToExpose()
   at Microsoft.VisualStudio.Composition.ExportProvider.<>c__DisplayClass53_0.<CreateExport>b__0()
   at Microsoft.VisualStudio.Composition.ExportProvider.<>c__DisplayClass55_0.<CreateExportFactoryExport>b__1()
   at Microsoft.VisualStudio.Composition.ExportProvider.<>c__DisplayClass54_0.<CreateExportFactory>b__0()
   at Microsoft.VisualStudio.Composition.DelegateServices.<>c__DisplayClass2_0`1.<As>b__0()
   at System.ComponentModel.Composition.ExportFactory`1.CreateExport()
   at Microsoft.VisualStudio.Composition.NetFxAdapters.MefV1ExportProvider.ComposablePartDefinitionForExportFactory.CreatePart()
   at System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator.LifetimeContext.GetExportLifetimeContextFromExport[T](Export export)
   at System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator.<>c__DisplayClass6_0`2.<CreateStronglyTypedExportFactoryOfTM>b__0()
   at System.ComponentModel.Composition.ExportFactory`1.CreateExport()
   at Microsoft.TeamFoundation.Controls.WPF.TeamExplorer.Framework.TeamExplorerSectionHost.Create()

Note
Not fully sure about the update version whether it is 16.1.0 exactly.

Error when loading a solution

As in the image capture:
image

Microsoft.VisualStudio.Composition.CompositionFailedException: An exception was thrown while initializing part "VS_DiffAllFiles.Sections.PendingChangesSection". ---> System.Windows.Markup.XamlParseException: Provide value on 'QuickConverter.MultiBinding' threw an exception. ---> System.Exception: Failed to tokenize expression "!$P0 || ($P0 ## $P1) ? Visibility.Visible : Visibility.Collapsed". Did you forget a '$'?
at QuickConverter.EquationTokenizer.Tokenize(String expression)
at QuickConverter.MultiBinding.GetLambda(String expression)
at QuickConverter.MultiBinding.ProvideValue(IServiceProvider serviceProvider)
at MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)
--- End of inner exception stack trace ---
at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at VS_DiffAllFiles.Sections.DiffAllFilesSectionControl.InitializeComponent() in C:\dev\Git\VS.DiffAllFiles\VS.DiffAllFiles.VS2019\obj\Release\DiffAllFilesSectionControl.xaml:line 1
at VS_DiffAllFiles.DiffAllFilesBaseClasses.DiffAllFilesSectionBase..ctor() in C:\dev\Git\VS.DiffAllFiles\VS.DiffAllFiles\DiffAllFilesBaseClasses\DiffAllFilesSectionBase.cs:line 82
at VS_DiffAllFiles.Sections.PendingChangesSection..ctor() in C:\dev\Git\VS.DiffAllFiles\VS.DiffAllFiles\Sections\PendingChangesSection.cs:line 27
--- End of inner exception stack trace ---
at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.RuntimePartLifecycleTracker.CreateValue()
at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.Create()
at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveNext(PartLifecycleState nextState)
at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveToState(PartLifecycleState requiredState)
at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.GetValueReadyToExpose()
at Microsoft.VisualStudio.Composition.ExportProvider.<>c__DisplayClass63_0.b__0()
at Microsoft.VisualStudio.Composition.ExportProvider.<>c__DisplayClass65_0.b__1()
at Microsoft.VisualStudio.Composition.ExportProvider.<>c__DisplayClass64_0.b__0()
at Microsoft.VisualStudio.Composition.DelegateServices.<>c__DisplayClass2_01.<As>b__0() at System.ComponentModel.Composition.ExportFactory1.CreateExport()
at Microsoft.VisualStudio.Composition.NetFxAdapters.MefV1ExportProvider.ComposablePartDefinitionForExportFactory.CreatePart()
at System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator.LifetimeContext.GetExportLifetimeContextFromExport[T](Export export)
at System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator.<>c__DisplayClass6_02.<CreateStronglyTypedExportFactoryOfTM>b__0() at System.ComponentModel.Composition.ExportFactory1.CreateExport()
at Microsoft.TeamFoundation.Controls.WPF.TeamExplorer.Framework.TeamExplorerSectionHost.Create()

Failed to Load Extension in VS 2019 16.9.0 Preview 2.0

Microsoft.VisualStudio.Composition.CompositionFailedException: An exception was thrown while initializing part "VS_DiffAllFiles.Sections.PendingChangesSection". ---> System.Windows.Markup.XamlParseException: Provide value on 'QuickConverter.MultiBinding' threw an exception. ---> System.Exception: Failed to tokenize expression "!$P0 || ($P0 ## $P1) ? Visibility.Visible : Visibility.Collapsed". Did you forget a '$'?
   at QuickConverter.EquationTokenizer.Tokenize(String expression)
   at QuickConverter.MultiBinding.GetLambda(String expression)
   at QuickConverter.MultiBinding.ProvideValue(IServiceProvider serviceProvider)
   at MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)
   --- End of inner exception stack trace ---
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
   at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
   at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
   at VS_DiffAllFiles.Sections.DiffAllFilesSectionControl.InitializeComponent() in C:\dev\Git\VS.DiffAllFiles\VS.DiffAllFiles.VS2019\obj\Release\DiffAllFilesSectionControl.xaml:line 1
   at VS_DiffAllFiles.DiffAllFilesBaseClasses.DiffAllFilesSectionBase..ctor() in C:\dev\Git\VS.DiffAllFiles\VS.DiffAllFiles\DiffAllFilesBaseClasses\DiffAllFilesSectionBase.cs:line 82
   at VS_DiffAllFiles.Sections.PendingChangesSection..ctor() in C:\dev\Git\VS.DiffAllFiles\VS.DiffAllFiles\Sections\PendingChangesSection.cs:line 27
   --- End of inner exception stack trace ---
   at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.RuntimePartLifecycleTracker.CreateValue()
   at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.Create()
   at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveNext(PartLifecycleState nextState)
   at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveToState(PartLifecycleState requiredState)
   at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.GetValueReadyToExpose()
   at Microsoft.VisualStudio.Composition.ExportProvider.<>c__DisplayClass63_0.<CreateExport>b__0()
   at Microsoft.VisualStudio.Composition.ExportProvider.<>c__DisplayClass65_0.<CreateExportFactoryExport>b__1()
   at Microsoft.VisualStudio.Composition.ExportProvider.<>c__DisplayClass64_0.<CreateExportFactory>b__0()
   at Microsoft.VisualStudio.Composition.DelegateServices.<>c__DisplayClass2_0`1.<As>b__0()
   at System.ComponentModel.Composition.ExportFactory`1.CreateExport()
   at Microsoft.VisualStudio.Composition.NetFxAdapters.MefV1ExportProvider.ComposablePartDefinitionForExportFactory.CreatePart()
   at System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator.LifetimeContext.GetExportLifetimeContextFromExport[T](Export export)
   at System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator.<>c__DisplayClass6_0`2.<CreateStronglyTypedExportFactoryOfTM>b__0()
   at System.ComponentModel.Composition.ExportFactory`1.CreateExport()
   at Microsoft.TeamFoundation.Controls.WPF.TeamExplorer.Framework.TeamExplorerSectionHost.Create()

Support new Git integration since VS 16.8

Since VS 16.8, Git integration has changed and uses a dedicated "Git changes" pane rather than the "Team Explorer"

Could we get Diff All Files buttons in this pane?

Thanks

Error when changing views in Team Explorer

I'm using VS 2019 (16.11.2) and extension version 1.0.5 with TFVC. If you view a changeset and start diffing all items and then navigate away from the changeset in Team Explorer the extension loses track of something it needed. Closing each diff window opens up an empty diff window and shows the error "Could not convert the File Changes Service to a TFS Pending Changes Service. This should never happen!"

Unfortunately there is also no way to cancel out of the diff process at this point so you have to just keep closing files until it finished.

Using Git, diff all files will open all diffs at once

When using TFVC, the "All Files" button will diff the first file and only open the diff for the next file when you click on "Next" or close the diff.

When using Git, the "All Files" button will open diffs for all files at once.

Write changes back to files in Combined mode

For large automated/refactoring changes, you want to diff all the files at once (combine mode) and verify your changes. Sometimes, you need to make edits but the edits you make are lost once the diff is over.

I propose this workflow for combine mode:

  1. Combine and diff (just like today)
  2. When the user exits the diff window, check if the combined file changed
  3. If the combined file changed, ask them if they want to "Apply Changes"
  4. If "yes", then break apart the combined file contents back into the individual files

This feature would be amazing for all sorts of large code reviews!

Diff in Git compares local file changes with version two commits back

Even with Diff All Files set to compare the Unmodified Version of a file, it is comparing the workspace version of the file with a version from two commits back. So instead of just seeing the changes I have made locally to the file, I also see changes that were made and committed in the previous Merge commit for that file in the branch.

Next diff against local git repo takes long time to load

When I diff a set of files against local git repo, sometimes the next diff takes a long time to load. Within the same set of files, some diffs show up in a few seconds, others take 1-2 minutes.

I am using external tool (Beyond Compare). I tried to change the settings (1 or 2 files at a time), stage or commit the changes, but the problem still exist. Any hint on what could cause the issue?

Error when diff tool contains a space in the filename

I use a git with a diff tool whose path contains a space. Here's what's in my .git/config file:

[diff]
    tool = winmerge
[difftool "winmerge"]
    cmd = "'C:/Program Files (x86)/WinMerge/WinMergeU.exe'" -e "$LOCAL" "$REMOTE"

This works, and I can run "git difftool filename" from the command line, and I can also right click on files from Visual Studio and choose diff and it works as expected.

However, with diff all files, I see this error:

Unexpected Error Occurred:
It appears that your diff tool is not configured correctly. Most likely the path to the executable is not correct or is not the correct format (e.g. requires backslashes or double quotes to be escaped). We attempted to invoke the diff tool using the following command: '"'C:\Program Files (x86)\WinMerge\WinMergeU.exe'" -e "C:\Users\xxx\AppData\Local\Temp\DiffAllFilesTemp\einxycfn.nsy\source_CombinedFiles" "C:\Users\xxx\AppData\Local\Temp\DiffAllFilesTemp\einxycfn.nsy\target_CombinedFiles"'.
The system cannot find the file specified

I tried moving the executable to a different directory and changing the .git config to this:

[diff]
    tool = winmerge
[difftool "winmerge"]
    cmd = "d:/TEMP/WinMerge/WinMergeU.exe" -e "$LOCAL" "$REMOTE"

and that worked fine. Seems like maybe the single quotes around the executable name (which are required to make git work) are messing up diff all files?

Buttons stay disabled when Visual Studio is started and Pending Changes panel is not docked

Bug submitted via the Visual Studio Marketplace.

When the "Pending Changes" pane is used undocked from the "Team Explorer" pane (using the diagonal arrow in the top right corner), then, sometimes, when Visual Studio is restarted, the buttons All Files/Included/Excluded seem to stay always disabled.
A workaround I found is to close the "Pending Changes" pane to dock it back into the "Team Explorer" pane, and then undock it again.

Not sure if we'll be able to fix this, as it may just be a bug with Visual Studio notifications, but we can take a look. Maybe there's an additional event notification we can watch for.

"The given key was not present in the dictionary." error when diffing files

In VS 2017 I have noticed that sometimes I will get the following error when trying to diff some files:

Unexpected Error Occurred:
The given key was not present in the dictionary.

image

I can still compare them the regular way without Diff All Files, and after committing the files, other changes compare without any issue when using Diff All Files.

Installation issue with vs2017

I tried to install the extension for vs2017 but get the follow exception thrown:

7/20/2017 10:30:53 PM - Name : Diff All Files for VS2017
7/20/2017 10:30:53 PM - Author : deadlydog
7/20/2017 10:30:53 PM - Version : 1.0.1
7/20/2017 10:30:53 PM - Description : Quickly compare changes to all files in Git (staged/unstaged files or a commit) or TFS (shelveset, changeset, or with pending changes).
7/20/2017 10:30:53 PM - Locale : en-US
7/20/2017 10:30:53 PM - MoreInfoURL : https://github.com/deadlydog/VS.DiffAllFiles
7/20/2017 10:30:53 PM - InstalledByMSI : False
7/20/2017 10:30:53 PM - SupportedFrameworkVersionRange : [4.5,)
7/20/2017 10:30:53 PM -
7/20/2017 10:30:53 PM - SignatureState : Unsigned
7/20/2017 10:30:53 PM - Supported Products :
7/20/2017 10:30:53 PM - Microsoft.VisualStudio.Community
7/20/2017 10:30:53 PM - Version : [15.0]
7/20/2017 10:30:53 PM -
7/20/2017 10:30:53 PM - References :
7/20/2017 10:30:53 PM - -------------------------------------------------------
7/20/2017 10:30:53 PM - Identifier : Microsoft.VisualStudio.MPF.15.0
7/20/2017 10:30:53 PM - Name : Visual Studio MPF 15.0
7/20/2017 10:30:53 PM - Version : [15.0,16.0)
7/20/2017 10:30:53 PM - MoreInfoURL :
7/20/2017 10:30:53 PM - Nested : No
7/20/2017 10:30:53 PM -
7/20/2017 10:30:53 PM - Prerequisites :
7/20/2017 10:30:53 PM - -------------------------------------------------------
7/20/2017 10:30:53 PM - Identifier : Microsoft.VisualStudio.Component.ManagedDesktop.Core
7/20/2017 10:30:53 PM - Name : Managed Desktop Workload Core
7/20/2017 10:30:53 PM - Version : [15.0.26208.0,16.0)
7/20/2017 10:30:53 PM -
7/20/2017 10:30:53 PM - -------------------------------------------------------
7/20/2017 10:30:53 PM - Identifier : Microsoft.VisualStudio.Component.CoreEditor
7/20/2017 10:30:53 PM - Name : Visual Studio core editor
7/20/2017 10:30:53 PM - Version : [15.0.26208.0,16.0)
7/20/2017 10:30:53 PM -
7/20/2017 10:30:53 PM - Signature Details...
7/20/2017 10:30:53 PM - Extension is not signed.
7/20/2017 10:30:53 PM -
7/20/2017 10:30:53 PM - Searching for applicable products...
7/20/2017 10:30:53 PM - Found installed product - Microsoft Visual Studio Ultimate 2013
7/20/2017 10:30:53 PM - Found installed product - Microsoft Visual Studio Premium 2013
7/20/2017 10:30:53 PM - Found installed product - Microsoft Visual Studio Professional 2013
7/20/2017 10:30:53 PM - Found installed product - Microsoft Visual Studio 2013 Shell (Integrated)
7/20/2017 10:30:53 PM - Found installed product - Global Location
7/20/2017 10:30:53 PM - Found installed product - Visual Studio Community 2017
7/20/2017 10:30:53 PM - System.IO.FileNotFoundException: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe
at System.Diagnostics.FileVersionInfo.GetVersionInfo(String fileName)
at VSIXInstaller.SupportedVSSKU.get_VersionWithBuildRevisionInfo()
at VSIXInstaller.App.IsValidSKUForExtension(SupportedVSSKU supportedSKU, IExtension extension, List1 validSKUs) at VSIXInstaller.App.ShouldAddSkuToValidSkuList(SupportedVSSKU sku, IInstallableExtension extension, List1 validSKUs)
at VSIXInstaller.App.GetInstallableData(String vsixPath, Boolean isRepairSupported, IEnumerable1& skuData) at VSIXInstaller.App.Initialize(Boolean isRepairSupported) at VSIXInstaller.App.Initialize() at System.Threading.Tasks.Task1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()

Thanks,
Derek

Alllow specific files to be excluded, not just file extensions

From a comment on the VS 2017 extension reviews:

Ability to provide full stops in file extensions to exclude would help massively (excluding feature.cs files yet still including any .cs files)

I'm thinking it would probably be best to allow users to define a (or many) regular expression which determines the files to exclude from being diff'd. That would offer the most flexibility.

Error trying to show the controls if they are loaded too shortly after Visual Studio is started [has workaround]

Recently I only get this error where the controls should appear.. I have tried reinstalling but that hasn't helped.

Microsoft.VisualStudio.Composition.CompositionFailedException: An exception was thrown while initializing part "VS_DiffAllFiles.Sections.PendingChangesSection". ---> System.Windows.Markup.XamlParseException: Provide value on 'QuickConverter.MultiBinding' threw an exception. ---> System.Exception: Failed to tokenize expression "!$P0 || ($P0 ## $P1) ? Visibility.Visible : Visibility.Collapsed". Did you forget a '$'?
at QuickConverter.EquationTokenizer.Tokenize(String expression)
at QuickConverter.MultiBinding.GetLambda(String expression)
at QuickConverter.MultiBinding.ProvideValue(IServiceProvider serviceProvider)
at MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)
--- End of inner exception stack trace ---
at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at VS_DiffAllFiles.Sections.DiffAllFilesSectionControl.InitializeComponent() in C:\dev\Git\VS.DiffAllFiles\VS.DiffAllFiles.VS2017\obj\Release\DiffAllFilesSectionControl.xaml:line 1
at VS_DiffAllFiles.DiffAllFilesBaseClasses.DiffAllFilesSectionBase..ctor() in C:\dev\Git\VS.DiffAllFiles\VS.DiffAllFiles\DiffAllFilesBaseClasses\DiffAllFilesSectionBase.cs:line 82
at VS_DiffAllFiles.Sections.PendingChangesSection..ctor() in C:\dev\Git\VS.DiffAllFiles\VS.DiffAllFiles\Sections\PendingChangesSection.cs:line 27
--- End of inner exception stack trace ---
at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.RuntimePartLifecycleTracker.CreateValue()
at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.Create()
at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveNext(PartLifecycleState nextState)
at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveToState(PartLifecycleState requiredState)
at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.GetValueReadyToExpose()
at Microsoft.VisualStudio.Composition.ExportProvider.<>c__DisplayClass53_0.b__0()
at Microsoft.VisualStudio.Composition.ExportProvider.<>c__DisplayClass55_0.b__1()
at Microsoft.VisualStudio.Composition.ExportProvider.<>c__DisplayClass54_0.b__0()
at Microsoft.VisualStudio.Composition.DelegateServices.<>c__DisplayClass2_01.<As>b__0() at System.ComponentModel.Composition.ExportFactory1.CreateExport()
at Microsoft.VisualStudio.Composition.NetFxAdapters.MefV1ExportProvider.ComposablePartDefinitionForExportFactory.CreatePart()
at System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator.LifetimeContext.GetExportLifetimeContextFromExport[T](Export export)
at System.ComponentModel.Composition.ReflectionModel.ExportFactoryCreator.<>c__DisplayClass6_02.<CreateStronglyTypedExportFactoryOfTM>b__0() at System.ComponentModel.Composition.ExportFactory1.CreateExport()
at Microsoft.TeamFoundation.Controls.WPF.TeamExplorer.Framework.TeamExplorerSectionHost.Create()

Cannot convert TrueToVisibleConverter to type Metadata

Copied from a VS marketplace review comment.


The tool is good but it gives me an exception

System.ArgumentException: Object of type 'System.Collections.Generic.List`1[System.Lazy`2[Microsoft.TeamFoundation.Controls.ITeamExplorerNavigationLink,Microsoft.TeamFoundation.Controls.WPF.Converters.TrueToVisibleConverter]]' cannot be converted to type 'System.Collections.Generic.List`1[System.Lazy`2[Microsoft.TeamFoundation.Controls.ITeamExplorerNavigationItem,Microsoft.TeamFoundation.Controls.WPF.TeamExplorer.Framework.ITeamExplorerNavigationItemMetadata]]'.
   at System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo culture, Boolean needsSpecialCast)
   at System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo culture, BindingFlags invokeAttr)
   at System.Reflection.MethodBase.CheckArguments(Object[] parameters, Binder binder, BindingFlags invokeAttr, CultureInfo culture, Signature sig)
   at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, Object[] index)
   at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.SetImportingMember(Object part, MemberInfo member, Object value)
   at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.GetValueForImportSite(RuntimePartLifecycleTracker importingPartTracker, RuntimeImport import)
   at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.RuntimePartLifecycleTracker.SatisfyImports()
   at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.Sati

Settings not saved

Hi.

General settings not been saved after Visual Studio restart:

  1. Open Visual Studio;
  2. Go to Tools | Options | Diff All Files | General;
  3. Uncheck "Compare deleted files", Check "Always compare each file independently", maximum number 3;
  4. Click "OK" to close options;
  5. Close Visual Studio;
  6. Open Visual Studio;
  7. My settings on step 3 are not there!!!

Thanks,

"StrictFilePathMarshaler must be used on a FilePath" error

The following error was reported on the VS Marketplace:

Trying to use this. When I select a changed file and click Unstaged (or All Files), I get:
Unexpected Error Occurred:
StrictFilePathMarshaler must be used on a FilePath.
V15.2(26430.16) Release.
Diff All Files v1.0.1
By dale 8/8/2017

I've experienced this problem in the VS 2015 version of the Diff All Files, but not the VS 2017 version, so it will still need to be investigated. In VS 2015 this error was thrown from the gitlib2sharp library, and the workaround was to re-clone the repository (to a different directory, or delete your current directory and re-clone). I'm not sure if that workaround will work in VS 2017 or not though, so if we could get confirmation on that it would be nice.

We still need to see if there's some way we can have Diff All Files handle this error more gracefully, and ideally have additional logic in code to get it working without the user having to re-clone the Git repository.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.