Giter Club home page Giter Club logo

git-diffall's Introduction

NOTE: The functionality provided by git-diffall has been contributed to Git
itself and can be accessed through the "git difftool --dir-diff" command
in Git versions v1.7.11 and newer.

## Overview
The git-diffall script provides a directory based diff mechanism
for git.

To determine what diff viewer is used, the script requires either
the 'diff.tool' or 'merge.tool' configuration option to be set.

This script is compatible with most common forms used to specify a
range of revisions to diff:

  1. git diffall: shows diff between working tree and staged changes
  2. git diffall --cached [<commit>]: shows diff between staged
     changes and HEAD (or other named commit)
  3. git diffall <commit>: shows diff between working tree and named
     commit
  4. git diffall <commit> <commit>: show diff between two named commits
  5. git diffall <commit>..<commit>: same as above
  6. git diffall <commit>...<commit>: show the changes on the branch
     containing and up to the second, starting at a common ancestor
     of both <commit>

Note: all forms take an optional path limiter [-- <path>*]

The '--extcmd=<command>' option allows the user to specify a custom
command for viewing diffs.  When given, configured defaults are
ignored and the script runs $command $LOCAL $REMOTE.  Additionally,
$BASE is set in the environment.

## Installation
Copy the `git-diffall` script to the directory where your `git` is installed.

`$ cd <directory with git-diffall>`
`$ cp git-diffall $(git --exec-path)`

## Setup
The difftool and mergetool selected for use with `git-diffall` must be one that has a mergetool plugin in your `git` installation.  The plugin is a simple script that populates the command-line arguments of the difftool/mergetool using the correct values from `git`.  Plugins exist for a variety of tools already and can be found in `$(git --exec-path)/mergetools`.  If your favorite tool is missing, you can add it by copying an existing plugin and modifying for your tool.

The config commands follow this pattern:

`$ git config --global diff.tool <one of the tools listed in $(git --exec-path)/mergetools>`
`$ git config --global merge.tool <one of the tools listed in $(git --exec-path)/mergetools>`

For example:

`$ git config --global diff.tool kdiff3`
`$ git config --global merge.tool kdiff3`


## Other Notes
This script is based on an example provided by Thomas Rast on the
Git list [1]:

[1] http://thread.gmane.org/gmane.comp.version-control.git/124807

"git cola diff" [2] provides a graphical frontend for full-tree diffs similar
in spirit to git-diffall.

[2] https://github.com/git-cola/git-cola

git-diffall's People

Contributors

thenigan avatar georgevreilly avatar dbingham avatar davvid avatar gfa99 avatar

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.