ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Diff​View

by CJTozer ST3

Side-by-Side Git, SVN and Bazaar Diff Viewer for Sublime Text 3

Details

Installs

  • Total 31K
  • Win 13K
  • Mac 11K
  • Linux 6K
Dec 5 Dec 4 Dec 3 Dec 2 Dec 1 Nov 30 Nov 29 Nov 28 Nov 27 Nov 26 Nov 25 Nov 24 Nov 23 Nov 22 Nov 21 Nov 20 Nov 19 Nov 18 Nov 17 Nov 16 Nov 15 Nov 14 Nov 13 Nov 12 Nov 11 Nov 10 Nov 9 Nov 8 Nov 7 Nov 6 Nov 5 Nov 4 Nov 3 Nov 2 Nov 1 Oct 31 Oct 30 Oct 29 Oct 28 Oct 27 Oct 26 Oct 25 Oct 24 Oct 23 Oct 22 Oct 21
Windows 2 2 0 5 0 0 1 1 0 0 0 0 1 1 3 2 0 1 0 0 2 0 0 4 1 0 0 3 4 1 5 3 1 2 1 3 2 1 0 0 4 1 1 1 1 1
Mac 2 0 2 1 0 1 1 1 0 0 0 0 0 2 1 1 0 1 0 1 1 0 0 3 1 0 3 4 0 5 2 3 1 0 1 2 1 2 2 1 1 2 2 0 4 3
Linux 0 1 2 0 0 2 1 0 0 0 0 0 0 0 1 0 1 4 0 0 2 0 0 0 0 1 0 1 0 0 1 2 1 1 0 0 3 0 0 0 0 0 0 1 0 2

Readme

Source
raw.​githubusercontent.​com

DiffView for Sublime Text 3

Git, SVN and Bazaar Diff Viewer for Sublime Text 3

Release Installs The MIT License Gitter

Features

  • Side-by-side view with differences highlighted
  • Quick navigation from one change to the next, or search for diffs in a specific file
  • Auto-detects the repository to use from the current active file
  • Flexible diffs for Git, SVN and Bazaar (see below for the full set of options)
  • The most common diff (uncommitted changes) is the quickest to use

Screenshots

With 'Persistent List' view style (default)

Screenshot

With 'Quick Panel' view style

Screenshot

Installation

  1. Install the Sublime Text Package Control plugin if you don't have it already
  2. Open the command palette and start typing Package Control: Install Package
  3. Enter DiffView

Usage

  • See options under “DiffView” in the Command Palette, and also the following keyboard shortcuts
  • Alt + Shift + D to run a diff
    • Enter the diff to run, and hit enter
      • See below for supported diff options
    • This lists all the changes, and shows you a preview as you move down the list
    • You can search for a particular file in the list of changes, which will filter the results
    • Hit Enter to jump to the currently selected change
    • hit Esc to cancel the DiffView, and return to where you were
  • Alt + D to review the last diff
    • This will show the list of changes from the last diff, starting from the last change you previewed

Supported Diff Options

Git

  • Default (when there's no input): comparison of wc against HEAD - i.e. show unstaged changes
  • HEAD or branch or SHA or tag
    • compare working copy against HEAD/branch/SHA/tag
  • branch..
    • compare branch with wc
  • ..branch
    • compare working copy with branch
  • branch_a..branch_b
    • compare branch_a with branch_b
  • branch...
    • compare the merge-base of the working copy and branch with the working copy
  • branch_a...branch_b
    • compare the merge-base of branch_a and branch_b with branch_b

SVN

  • Default (when there's no input): show uncommitted changes
  • -r 123
    • compare revision 123 with the latest revision (not the working copy)
  • -r 123:234
    • compare revision 123 with revision 234
  • -c 234
    • show changes made in commit 234
  • --cl issue1234
    • show uncommitted changes on changelist issue1234

Bazaar

  • Default (when there's no input): show the difference in the working tree versus the last commit
  • -r1
    • Show changes between the working tree and revision 1
  • -r1..3
    • Show changes between revision 1 and revision 3
  • -r1..3 xxx
    • Show changes between revision 1 and revision 3 for branch xxx
  • -c2
    • Show the changes introduced by revision 2 (equivalent to -r1..2)
  • -r-2..
    • Show the changes between the current revision and the previous revision (equivalent to -c-1 and -r-2..-1)
  • FILE
    • Show just the differences for FILE
  • xxx/FILE
    • Show the differences in working tree xxx for FILE
  • --old xxx
    • Show the differences from branch xxx to this working tree
  • --old xxx --new yyy FILE
    • Show the differences between two branches for FILE

Configuration Options

Diff View Style

There are 2 different view styles supported - “Quick Panel” and “Persistent List”. You can see them in action in the screenshots above. Try them both and pick a favourite!

{
    // The style for viewing the diff.  Options are:
    // - "quick_panel"
    // - "persistent_list"
    "view_style": "persistent_list"
}

Highlighting Styles

Each of the highlihgted regions' styles can be configured in the settings. These settings are all documented in the 'Default' settings (Preferences -> Package Settings -> DiffVew -> Settings - Default). Copy the settings to your User settings (Preferences -> Package Settings -> DiffVew -> Settings - User) to override the defaults.

Collapsing Changes List

When working with the “Persistent List” view, to save space there's a configuration option to collapse the list of changes for each file. Toggle the details for the file using Tab (by default).

To configure:

{
    // Whether to collapse each file's list of changes in the "persistent_list" view.
    "collapse_diff_list": true,

}

Invoking From Another Plugin

window.run_command(
    "diff_view",
    {
        "diff_args": "origin/your-base...origin/your-branch",
        "cwd": "/your/cwd",
    },
)

Contributors

Thanks to the following for their contributions:

  • @3v1n0 for adding Bazaar support
  • @leeahoward for raising and providing the fix for #48
  • @rkoval for adding an entrypoint for other plugins to use programmatically #65

Feedback

If you have any issues, comments, or feature suggestions, please raise them on GitHub. All feedback gratefully received.