'\" t .\" Title: lsdiff .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 23 Jan 2009 .\" Manual: Man pages .\" Source: patchutils .\" Language: English .\" .TH "LSDIFF" "1" "23 Jan 2009" "patchutils" "Man pages" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" lsdiff \- show which files are modified by a patch .SH "SYNOPSIS" .HP \w'\fBlsdiff\fR\ 'u \fBlsdiff\fR [[\-n] | [\-\-line\-number]] [[\-p\ \fIn\fR] | [\-\-strip\-match=\fIn\fR]] [\-\-strip=\fIn\fR] [\-\-git\-prefixes=\fIstrip|keep\fR] [\-\-git\-extended\-diffs=\fIexclude|include\fR] [\-\-addprefix=\fIPREFIX\fR] [\-\-addoldprefix=\fIPREFIX\fR] [\-\-addnewprefix=\fIPREFIX\fR] [[\-s] | [\-\-status]] [[\-E] | [\-\-empty\-files\-as\-removed]] [[\-i\ \fIPATTERN\fR] | [\-\-include=\fIPATTERN\fR]] [[\-I\ \fIFILE\fR] | [\-\-include\-from\-file=\fIFILE\fR]] [[\-x\ \fIPATTERN\fR] | [\-\-exclude=\fIPATTERN\fR]] [[\-X\ \fIFILE\fR] | [\-\-exclude\-from\-file=\fIFILE\fR]] [[\-z] | [\-\-decompress]] [[\-#\ \fIRANGE\fR] | [\-\-hunks=\fIRANGE\fR]] [\-\-lines=\fIRANGE\fR] [[\-F\fIRANGE\fR] | [\-\-files=\fIRANGE\fR]] [[\-H] | [\-\-with\-filename]] [[\-h] | [\-\-no\-filename]] [[\-v] | [\-\-verbose]...] [\fIfile\fR...] .HP \w'\fBlsdiff\fR\ 'u \fBlsdiff\fR {[\-\-help] | [\-\-version] | [\-\-filter\ \&.\&.\&.] | [\-\-grep\ \&.\&.\&.]} .SH "DESCRIPTION" .PP List the files modified by a patch\&. .PP You can use unified, context, and Git format diffs with this program\&. Git format includes support for binary files, file renames, permission mode changes, and other Git\-specific diff features\&. .SH "OPTIONS" .PP \fB\-n\fR, \fB\-\-line\-number\fR .RS 4 Display the line number that each patch begins at\&. If verbose output is requested (using \fB\-nv\fR), each hunk of each patch is listed as well\&. .sp 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 \fB\-v\fR 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 \(lqHunk #\(rq, and the hunk number (starting at 1)\&. .sp If the \fB\-v\fR is given twice in conjunction with \fB\-n\fR (i\&.e\&. \fB\-nvv\fR), the format is slightly different: hunk\-level descriptive text is shown after each hunk number, and the \fB\-\-number\-files\fR option is enabled\&. .RE .PP \fB\-N\fR, \fB\-\-number\-files\fR .RS 4 File numbers are listed, beginning at 1, before each filename\&. .RE .PP \fB\-#\fR\fIRANGE\fR, \fB\-\-hunks\fR=\fIRANGE\fR .RS 4 Only list hunks within the specified \fIRANGE\fR\&. Hunks are numbered from 1, and the range is a comma\-separated list of numbers or \(lqfirst\-last\(rq spans, optionally preceded by a modifier \*(Aqx\*(Aq which inverts the entire range; either the first or the last in the span may be omitted to indicate no limit in that direction\&. .RE .PP \fB\-\-lines\fR=\fIRANGE\fR .RS 4 Only list hunks that contain lines from the original file that lie within the specified \fIRANGE\fR\&. Lines are numbered from 1, and the range is a comma\-separated list of numbers or \(lqfirst\-last\(rq spans, optionally preceded by a modifier \*(Aqx\*(Aq which inverts the entire range; either the first or the last in the span may be omitted to indicate no limit in that direction\&. .RE .PP \fB\-F\fR=\fIRANGE\fR, \fB\-\-files\fR=\fIRANGE\fR .RS 4 Only list files indicated by the specified \fIRANGE\fR\&. Files are numbered from 1 in the order they appear in the patch input, and the range is a comma\-separated list of numbers or \(lqfirst\-last\(rq spans, optionally preceded by a modifier \*(Aqx\*(Aq which inverts the entire range; either the first or the last in the span may be omitted to indicate no limit in that direction\&. .RE .PP \fB\-p\fR\fIn\fR, \fB\-\-strip\-match=\fR\fB\fIn\fR\fR .RS 4 When matching, ignore the first \fIn\fR components of the pathname\&. .RE .PP \fB\-\-strip\fR=\fIn\fR .RS 4 Remove the first \fIn\fR components of the pathname before displaying it\&. .RE .PP \fB\-\-git\-prefixes\fR=\fIstrip|keep\fR .RS 4 How to handle a/ and b/ prefixes in Git diff filenames\&. With strip, removes the prefixes both for filename matching (when using \fB\-i\fR and \fB\-x\fR options) and for filename output (similar to \fB\-\-strip\fR)\&. With keep (default), preserves existing behavior\&. Applies to both Git\-specific diffs (binary files, renames, mode changes) and traditional diffs when part of a Git patch\&. Note: With keep, copy and rename operations are treated as if they had a/ and b/ prefixes for consistency with other Git operations\&. The default will change to strip in version 0\&.5\&.0\&. .RE .PP \fB\-\-git\-extended\-diffs\fR=\fIexclude|include\fR .RS 4 Controls whether to process Git diffs without traditional content hunks\&. This includes renames, copies, mode\-only changes, and binary files\&. With exclude (default in 0\&.4\&.x), these diffs are skipped\&. With include (default in 0\&.5\&.0+), these diffs are processed normally\&. This option affects file numbering with \fB\-N\fR and file filtering with \fB\-F\fR\&. .RE .PP \fB\-\-addprefix\fR=\fIPREFIX\fR .RS 4 Prefix the pathname with \fIPREFIX\fR before displaying it\&. .RE .PP \fB\-\-addoldprefix\fR=\fIPREFIX\fR .RS 4 Prefix pathnames for old files with \fIPREFIX\fR before displaying them\&. .RE .PP \fB\-\-addnewprefix\fR=\fIPREFIX\fR .RS 4 Prefix pathnames for new files with \fIPREFIX\fR before displaying them\&. .RE .PP \fB\-s\fR, \fB\-\-status\fR .RS 4 Show file additions, modifications and removals\&. A file addition is indicated by a \(lq+\(rq, a removal by a \(lq\-\(rq, and a modification by a \(lq!\(rq\&. .RE .PP \fB\-E\fR, \fB\-\-empty\-files\-as\-absent\fR, \fB\-\-empty\-files\-as\-removed\fR .RS 4 Treat empty files as absent for the purpose of displaying file additions, modifications and removals\&. For example, a file with an empty old version and additions in the new version will be treated as a file addition (+) rather than a modification (!)\&. .RE .PP \fB\-i\fR\fIPATTERN\fR, \fB\-\-include=\fR\fB\fIPATTERN\fR\fR .RS 4 Include only files matching \fIPATTERN\fR\&. .RE .PP \fB\-I\fR\fIFILE\fR, \fB\-\-include\-from\-file=\fR\fB\fIFILE\fR\fR .RS 4 Include only files matching any pattern listed in \fIFILE\fR, one pattern per line\&. .RE .PP \fB\-x\fR\fIPATTERN\fR, \fB\-\-exclude=\fR\fB\fIPATTERN\fR\fR .RS 4 Exclude files matching \fIPATTERN\fR\&. .RE .PP \fB\-X\fR\fIFILE\fR, \fB\-\-exclude\-from\-file=\fR\fB\fIFILE\fR\fR .RS 4 Exclude files matching any pattern listed in \fIFILE\fR, one pattern per line\&. .RE .PP \fB\-z\fR, \fB\-\-decompress\fR .RS 4 Decompress files with extensions \&.gz and \&.bz2\&. .RE .PP \fB\-H\fR, \fB\-\-with\-filename\fR .RS 4 Print the name of the patch file containing each patch\&. .RE .PP \fB\-h\fR, \fB\-\-no\-filename\fR .RS 4 Suppress the name of the patch file containing each patch\&. .RE .PP \fB\-v\fR, \fB\-\-verbose\fR .RS 4 Verbose output\&. .RE .PP \fB\-\-help\fR .RS 4 Display a short usage message\&. .RE .PP \fB\-\-version\fR .RS 4 Display the version number of lsdiff\&. .RE .PP \fB\-\-filter\fR .RS 4 Behave like \fBfilterdiff\fR(1) instead\&. .RE .PP \fB\-\-grep\fR .RS 4 Behave like \fBgrepdiff\fR(1) instead\&. .RE .SH "SEE ALSO" .PP \fBfilterdiff\fR(1), \fBgrepdiff\fR(1), \fBpatchview\fR(1) .SH "EXAMPLES" .PP To sort the order of touched files in a patch, you can use: .sp .if n \{\ .RS 4 .\} .nf lsdiff patch | sort \-u | \e xargs \-rn1 filterdiff patch \-i .fi .if n \{\ .RE .\} .PP To show only added files in a patch: .sp .if n \{\ .RS 4 .\} .nf lsdiff \-s patch | grep \*(Aq^+\*(Aq | \e cut \-c2\- | xargs \-rn1 filterdiff patch \-i .fi .if n \{\ .RE .\} .PP To show the headers of all file hunks: .sp .if n \{\ .RS 4 .\} .nf lsdiff \-n patch | (while read n file do sed \-ne "$n,$(($n+1))p" patch done) .fi .if n \{\ .RE .\} .SH "AUTHOR" .PP \fBTim Waugh\fR <\&twaugh@redhat.com\&> .RS 4 Package maintainer .RE