The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

SYNOPSIS No arguments - get all the differences between the working copy of files and the local repository

 nuggit_diff.pl ../path/to/file.c
   One argument: Argument is a particular file, which may be in a submodule (or not) -
      get the differences of the specified file between the 
      working copy of the file and the local repository

 nuggit_diff.pl ../path/to/dir
   One argument: Argument is a particular directory, which may be in a submodule (or not) -
      get the differences of the specified directory between the 
      working copy of the file and the local repository

 nuggit_diff.pl origin/<branch> <branch>
   two arguments, diff between the two branches

The following options are supported:

--color | --no-color

By default, all diff output is shown with ANSI terminal colors (--color). If this is not desired, for example if saving output to a patch file, specify "--no-color" to disable.

--cached

If defined, show changes that have been staged.

--strategy ref|branch

Nuggit strategy to use when recursing into submodules. The default mode is branch-first.

In ref-first mode, this is equivalent to "git diff --submodule=diff $obj", utilizing Git's native support for translating any submodule reference differences into their constituent changes. WARNING: This mode will show changes in submodules based on the committed state (references), but does NOT typically reflect uncommitted changes in the working tree.

In branch-first mode, this is equivalent to executing "git diff $obj" in the root repository, and recursively for each submodule.

NOTE: If all branch references are synchronized with their HEAD commits, the results should be equivalent with either strategy.