Skip to content

moshfeu/vscode-compare-folders

Repository files navigation

Build Status contributions welcome The MIT License GitHub Visual Studio Marketplace Follow me on Twitter

The extension allows you to compare folders, show the diffs in a list and present diff in a splitted view side by side.

Screen record

Thanks

The extension uses the great dir-compare package made by Liviu Grigorescu. If you like this extension, please give a star to dir-compare!

Limitations

Currently seems like there might be issues [#81, #83] with comparing local and remote folders over ssh. Please take this under consideration.

How to use?

There are several ways to choose folders to compare:

  • Command Palette
    • Compare a folder against workspace choose a folder to compare against the workspace's folder (when workspace is not empty)
    • Choose 2 folders and compare - opens OS folder chooser twice
  • Compare Folders Panel (Click on the icon in the Activity Bar)
    • Click to select a folder see 1st item
    • Click to select folders see 2nd item
  • File explorer
    • Select 2 folders, right click and click on Compare selected folders see 2nd item
  • From history
    • Pick from recent compares chose one of the pairs you compared in the past.
    • (The list can be reset by Clear recent compares)

UI Features per Panel Section:

Differences

  • Toolbar
    • Pick from History: Choose one of the pairs you compared in the past.
    • Swap Sides: Swap the sides of the compared folders.
    • Refresh: Re-compare the folders if there are changes in the compared folders' files.
    • View as List / View as Tree: Toggle between list and tree view modes.
  • Files
    • Dismiss: Remove the file from the list of compared items.
    • Take My File / Take Compared File: Replace the file with the one from the other side.

Only in My Folder / Only in Compared Folder

  • Files
    • Copy to My Folder / Copy to Compared Folder: Copy the file to the other side.
    • Delete: Permanently delete the file from the file system.

Options (under vscode settings)

  • excludeFilter - glob string
  • includeFilter - glob string

Example

"compareFolders.excludeFilter": [
  "**/node_modules",
  "**/.svn",
  "**/.git"
]
  • compareContent - boolean - Compares files by content
  • diffViewTitle - One of the options: "name only", "compared path", "full path"
  • ignoreFileNameCase - boolean - Compare files with the same name but different case
  • diffLayout - One of the options: "local <> compared" or "compared <> local"
  • showIdentical - boolean - Whether or not show the identical files panel
  • useDiffMerge - boolean - Whether or not using Diff & Merge extension as the Diff viewer. In order to use this option, you should install the extension
  • folderLeft + folderRight - strings - paths of 2 folders, compare them on the extension load.
  • ignoreExtension - Set groups of extensions so while comparing, pairs of files considered the same file if both of the files extension are in the same group. Note: each extension can show only once it this list Example
"compareFolders.ignoreExtension": [
  ["php", "cs"]
]
  • ignoreLineEnding - boolean - ignore crlf/lf line ending differences
  • ignoreWhiteSpaces - boolean - ignore white spaces at the beginning and ending of a line (similar to diff -b)
  • ignoreAllWhiteSpaces - boolean - ignore all white space differences (similar to diff -w)
  • ignoreEmptyLines - boolean - ignore differences caused by empty lines (similar to diff -B)
  • respectGitIgnore - boolean - include / exclude files based on .gitignore - this option works together with includeFilter and excludeFilter options. ⚠️ The extension supports the main basic gitignore rules. For instance, it supports negation (!), but it doesn't support .gitignore files in subfolders. If there is an important use case that is not supported, please open an issue.
  • defaultDiffViewMode - One of the options: "tree" or "list". The default view mode when vscode is opened. Later it can be toggled by the "View as list / View as tree" button

CLI

By calling the following command from the terminal / command line, the extension will be calling on vscode load and show the differences view

COMPARE_FOLDERS=DIFF code path/to/folder1 path/to/folder2

Contributors

llgcode
llgcode
md2perpe
Per Persson
orellabac
orellabac
Niccolò Mineo
Niccolò Mineo
Sam Pellino
Sam Pellino

Like the extension?

Show your love

Isn't working as expected?

Please create an issue

Changelog

You can find it here

Credits

Activity bar's icon (and more) by Stockio.com Null icon made from Icon Fonts is licensed by CC BY 3.0 External link icon made by Dave Gandy from www.flaticon.com

Read more about the development process

You can find the series of the posts about how this extension developed step by step in medium.com.