lsdiff



LSDIFF(1)                                                            LSDIFF(1)




NAME

       lsdiff - show which files are modified by a patch


SYNOPSIS

       lsdiff [-n] [-p n] [--strip=n] [--addprefix=PREFIX] [-s] [-E]
              [-i PATTERN] [-x PATTERN] [-# RANGE | --hunks=RANGE]
              [--lines=RANGE] [--files=RANGE] [-H | --with-filename] [-h |
              --no-filename] [-v...] [file...]

       lsdiff {--help | --version | --filter ... | --grep ...}



DESCRIPTION

       List the files modified by a patch.


       You can use both unified and context format diffs with this program.



OPTIONS

       -n     Display the line number that each patch begins  at.  If  verbose
              output  is  requested  (using  -nv),  each hunk of each patch is
              listed as well.

              For each file that is modified, a line is  generated  containing
              the line number of the beginning of the patch, followed by a Tab
              character, followed by the name of the file that is modified. If
              -v is given once, following each of these lines will be one line
              for each hunk, consisting of a Tab character,  the  line  number
              that  the  hunk  begins  at,  another  Tab character, the string
              ‘‘Hunk #’’, and the hunk number (starting at 1).

              If the -v is given twice in conjunction with -n (i.e. -nvv), the
              format  is  slightly  different:  hunk-level descriptive text is
              shown after each hunk number, and the --number-files  option  is
              enabled.


       --number-files
              File numbers are listed, beginning at 1, before each filename.


       -# RANGE | --hunks=RANGE
              Only  list  hunks within the specified RANGE. Hunks are numbered
              from 1, and the range is a comma-separated list  of  numbers  or
              ‘‘first-last’’  spans;  either the first or the last in the span
              may be omitted to indicate no limit in that direction.


       --lines=RANGE
              Only list hunks that contain lines from the original  file  that
              lie  within  the specified RANGE. Lines are numbered from 1, and
              the range is a comma-separated list of numbers or ‘‘first-last’’
              spans;  either  the first or the last in the span may be omitted
              to indicate no limit in that direction.


       --files=RANGE
              Only list files indicated by the specified RANGE. Files are num-
              bered  from  1  in the order they appear in the patch input, and
              the range is a comma-separated list of numbers or ‘‘first-last’’
              spans;  either  the first or the last in the span may be omitted
              to indicate no limit in that direction.


       -p n   When matching, ignore the first n components of the pathname.


       --strip=n
              Remove the first n components of the pathname before  displaying
              it.


       --addprefix=PREFIX
              Prefix the pathname with PREFIX before displaying it.


       -s     Show file additions, modifications and removals. A file addition
              is indicated by a ‘‘+’’, a removal by a ‘‘-’’, and  a  modifica-
              tion by a ‘‘!’’.


       -E     Treat  empty  files as absent for the purpose of displaying file
              additions, modifications and removals.


       -i PATTERN
              Include only files matching PATTERN.


       -x PATTERN
              Exclude files matching PATTERN.


       -H, --with-filename
              Print the name of the patch file containing each patch.


       -h, --no-filename
              Suppress the name of the patch file containing each patch.


       -v     Verbose output.


       --help Display a short usage message.


       --version
              Display the version number of lsdiff.


       --filter
              Behave like filterdiff(1) instead.


       --grep Behave like grepdiff(1) instead.



SEE ALSO

       filterdiff(1), grepdiff(1)



EXAMPLES

       To sort the order of touched files in a patch, you can use:


              lsdiff patch | sort -u | \
                xargs -rn1 filterdiff patch -i


       To show only added files in a patch:


              lsdiff -s patch | grep ’^+’ | \
                cut -c2- | xargs -rn1 filterdiff patch -i


       To show the headers of all file hunks:


              lsdiff -n patch | (while read n file
                do sed -ne "$n,$(($n+1))p" patch done)



AUTHOR

       Tim Waugh <twaugh@redhat.com>.



patchutils                        2 Jul 2004                         LSDIFF(1)

Man(1) output converted with man2html