summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Roovers <jer@gentoo.org>2018-11-04 15:19:24 +0100
committerJeroen Roovers <jer@gentoo.org>2018-11-04 15:25:05 +0100
commit801371577000187016850e6930f7ace6112166ce (patch)
tree5bb397f41e4eea4e8574c3923e123e851b7e3302 /dev-util/difffilter
parentdev-lang/vala: stable 0.36.15 for sparc, bug #670024 (diff)
downloadgentoo-801371577000187016850e6930f7ace6112166ce.tar.gz
gentoo-801371577000187016850e6930f7ace6112166ce.tar.bz2
gentoo-801371577000187016850e6930f7ace6112166ce.zip
dev-util/difffilter: Install man page
Drop USE=doc as that should not be used for manuals Install a pre-"compiled" version of difffilter(1) Fixes: https://bugs.gentoo.org/578048 Package-Manager: Portage-2.3.51, Repoman-2.3.12 Signed-off-by: Jeroen Roovers <jer@gentoo.org>
Diffstat (limited to 'dev-util/difffilter')
-rw-r--r--dev-util/difffilter/difffilter-0.3.3-r1.ebuild26
-rw-r--r--dev-util/difffilter/files/difffilter-0.3.3.man1194
-rw-r--r--dev-util/difffilter/metadata.xml3
3 files changed, 223 insertions, 0 deletions
diff --git a/dev-util/difffilter/difffilter-0.3.3-r1.ebuild b/dev-util/difffilter/difffilter-0.3.3-r1.ebuild
new file mode 100644
index 000000000000..9a0c0387ec78
--- /dev/null
+++ b/dev-util/difffilter/difffilter-0.3.3-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Filter files out of unified diffs using POSIX extended regular expressions"
+HOMEPAGE="http://ohnopub.net/~ohnobinki/difffilter/"
+SRC_URI="ftp://mirror.ohnopub.net/mirror/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux"
+
+RDEPEND="
+ >=dev-libs/liblist-2.3.1
+ dev-libs/libstrl
+ dev-libs/tre
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+src_install() {
+ default
+ newman "${FILESDIR}"/${PN}-0.3.3.man1 ${PN}.1
+}
diff --git a/dev-util/difffilter/files/difffilter-0.3.3.man1 b/dev-util/difffilter/files/difffilter-0.3.3.man1
new file mode 100644
index 000000000000..ad7a6331827b
--- /dev/null
+++ b/dev-util/difffilter/files/difffilter-0.3.3.man1
@@ -0,0 +1,194 @@
+.\" Text automatically generated by txt2man
+.TH difffilter 1 "04 November 2018" "difffilter 0.3.3" ""
+.SH NAME
+\fBdifffilter \fP- Filter diffs out of multi-file patches
+.SH SYNOPSIS
+.nf
+.fam C
+\fBdifffilter\fP [\fB-U\fP <lines>] [\fB-hv\fP] [--] [\fB-e\fP <regex>] [\fB-a\fP] [\fB-e\fP <regex>] [\fB-x\fP] [\fB-e\fP <regex>] \.\.\.
+.fam T
+.fi
+.fam T
+.fi
+.SH DESCRIPTION
+\fBdifffilter\fP reads in a series of unified-diffs and filters out any file
+which matches one of the passed extended regular expressions. The remaining
+diffs are written to standard out. \fBdifffilter\fP is a traditional unix filter,
+reading input from standard input and writing the results to standard
+output.
+.PP
+If \fBdifffilter\fP encounters a parsing or input reading error, it will exit
+after writing an error message to standard output. In such a case,
+\fBdifffilter\fP's return value is non-zero. As the parser is not guaranteed to
+be perfect and badly-formatted input may be accepted by commands like
+\fBpatch\fP(1), it is advised that scripts use error checking on \fBdifffilter\fP.
+.SH OPTIONS
+.TP
+.B
+\fB-h\fP
+Displays some amount of helpful or unhelpful information which is intended
+to be helpful. \fBdifffilter\fP will exit without performing any filtering.
+.TP
+.B
+\fB-v\fP
+Displays \fBdifffilter\fP's version information.
+.TP
+.B
+\fB-e\fP BRE
+A POSIX Basic Regular Expression which a filename in the input
+diff may be matched against. The default action for a matched regex
+is to exclude that portion of the diff from the output.
+.TP
+.B
+\fB-E\fP ERE
+Like \fB-e\fP but uses a POSIX Extended Regular Expression.
+.TP
+.B
+\fB-a\fP
+Any following \fB-e\fP options will cause files which match the regex to
+be included in the output diff. This allows one to preserve selected files
+which later patterns will exclude. See EXAMPLE for an application.
+.TP
+.B
+\fB-x\fP
+Any following \fB-e\fP options will cause files matching the regex to be excluded
+from the output diff. This is the default state of difffilter. I.e.,
+$ \fBdifffilter\fP \fB-e\fP 'configure$'
+has the same functionality of
+$ \fBdifffilter\fP \fB-x\fP \fB-e\fP 'configure$' .
+.TP
+.B
+\fB-b\fP
+Attempt to make the patch appear as if it were generated using \fBdiff\fP(1)'s \fB-b\fP
+option. This is similar to \fB-w\fP but only removes changes involving changes
+in the amount of whitespace. This means that completely removing a block of
+whitespace or inserting whitespace between two non-whitespace characters
+will still be seen as a change. See \fBdiff\fP(1) for more details.
+.TP
+.B
+\fB-k\fP BRE
+A POSIX Basic Regular Expression which will be matched against
+the name of a CVS keyword whose effect is to be nullified. For example, if
+the CVS keyword looks like $Pizza: I'm hungry$, a regex of `hungry' would
+not match but a regex of `Pi.*a$' would.
+.TP
+.B
+\fB-K\fP ERE
+Like \fB-k\fP but uses a POSIX Extended Regular Expression.
+.TP
+.B
+\fB-R\fP
+Reverse the patch. This is intended to recover from accidents when the
+sources used to generate a diff are not available but the reverse diff
+is.
+.TP
+.B
+\fB-U\fP lines
+Reduce the number of lines of context of the diff to the specified
+number of lines. Specify \fB-1\fP or a high number to avoid reducing the number
+of lines of context. This is set to \fB-1\fP by default. You should set it to 3 in
+most cases so that the effects of \fB-k\fP, \fB-b\fP, \fB-w\fP, and other flags can be more useful.
+.TP
+.B
+\fB-w\fP
+Attempt to make the patch as if it had been created by \fBdiff\fP(1) with the
+\fB-w\fP option. This removes changes from the input diff for which only whitespace
+was added or removed.
+.SH EXAMPLES
+This command should be adequate to filter out many auto-generated
+files that don't belong in a Version Control System. This will
+filter out files like config.log, config.status, Makefile, and
+Makefile.in. It preserves Makefile.am and sourcecode files. Not that
+\fB-E\fP is used instead of \fB-e\fP because the command utilizes Extended
+Regular Expressions.
+.PP
+.nf
+.fam C
+ $ difffilter -E '(^|/)config\.(log|status|guess|rpath|sub)$' -E '(^|/)(install-sh|configure|ac(include|local)\.m4|ltmain\.sh|lt[^/]*\.m4)$' -a -E '(^|/)Makefile\.am$' -x -E '(^|/)Makefile' < dirty.patch > clean.patch
+
+.fam T
+.fi
+If a dirty patch is submitted to a bugtracker with random whitespace
+changes which should be ignored, the patch may be feed through
+\fBdifffilter\fP with the \fB-b\fP or \fB-w\fP options. For most cases, \fB-b\fP is more
+reasonable -- and is definitely safer than \fB-w\fP. See the CVS keyword
+removal example for information on how \fB-U\fP might apply to this
+situation.
+.PP
+.nf
+.fam C
+ $ difffilter -w < bug-34567-dirty.patch > bug-34567-clean.patch
+
+.fam T
+.fi
+If you want to see only changes made to a particular file in a
+multifile patch, such as README.txt, you may use the \fB-a\fP and \fB-x\fP flags
+to effectively invert the normal filtering convention. Any files
+which match expressions following an \fB-a\fP will be accepted if that
+rule is processed. To revert \fBdifffilter\fP back to its normal mode of
+treating expressions as files to discard, use \fB-x\fP. We use an empty
+regular expression after the \fB-x\fP because the empty regular expression
+matches everything and we want to discard everything but
+README.txt. One can also easily modify this example to extract all
+changes to \.c$ or \.h$ files.
+.PP
+.nf
+.fam C
+ $ difffilter -a -e 'README\.txt$' -x -e '' < changes-bigpatch.patch > README.txt-changes.patch
+
+.fam T
+.fi
+To nullify diff lines which are caused by changes in CVS keywords'
+content, use the \fB-k\fP and \fB-K\fP options. For example, a diff might catch
+changes in an $Id: $ line, which is likely to happen when creating
+diffs from tarballs, where CVS control files are not available. If
+the $Id: $ line has change in the diff meaning that there are two
+versions of the $Id: $, the user is likely going to be applying the
+diff to the same file which would have a third value for the $Id: $
+line. Thus, applying such a patch would be troublesome (depending on
+the method of applying it). With \fB-k\fP and \fB-K\fP, we can get
+.PP
+.nf
+.fam C
+ $ difffilter -k Id < not-from-cvs.patch > not-from-cvs-fixed.patch
+
+ - /* $Id: binki /var/test/etc/rc.conf.RCS 1.1$ */
+ + /* $Id: mgorny /var/test/etc/rc.conf.RCS 2.1.5.3$ */
+
+.fam T
+.fi
+to be nullified. This means that we end up getting rid of the '+'
+and '-' lines and end up with a ' ' line:
+.PP
+.nf
+.fam C
+ /* $Id: binki /var/test/etc/rc.conf.RCS 1.1$ */
+
+.fam T
+.fi
+To most effectively avoid such problems, the change should be first
+nullified with \fB-k\fP or \fB-K\fP. Then the \fB-U\fP option should be used. The \fB-U\fP
+option is used to reduce the number of lines of context a diff may
+have. It would be customary to pass the value 3 to this option. If a
+certain block or a portion of the diff has a series of 3 or more
+null or noop lines, then \fBdifffilter\fP starts removing these. If a
+whole block (or chunk, as \fBpatch\fP(1) calls it) contains no changes,
+then \fBdifffilter\fP will completely drop that block from the diff. In
+many cases, this may completely remove the block, especially when
+(as is often the case) the CVS keyword being nullified is a line in
+the header comments of a file where actual edits occur infrequently.
+.PP
+.nf
+.fam C
+ $ difffilter -k Id -U 3 < not-from-cvs.patch > not-from-cvs-fixed.patch
+
+.fam T
+.fi
+.SH SEE ALSO
+\fBcolordiff\fP(1), \fBdiff\fP(1), \fBpatch\fP(1), \fBhg\fP(1)
+.SH BUGS
+There are no known bugs.
+.PP
+There is a bug tracker at http://ohnopub.net/bugzilla/ .
+.SH AUTHOR
+Nathan Phillip Brink (binki) <ohnobinki@ohnopublishing.net>
diff --git a/dev-util/difffilter/metadata.xml b/dev-util/difffilter/metadata.xml
index 097975e3adc2..fed47a353275 100644
--- a/dev-util/difffilter/metadata.xml
+++ b/dev-util/difffilter/metadata.xml
@@ -1,4 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
+<maintainer type='person'>
+<email>jer@gentoo.org</email>
+</maintainer>
</pkgmetadata>