[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Quilt-dev] [PATCH RFC] Add option --preamble to diff and refresh
From: |
Andreas Grünbacher |
Subject: |
Re: [Quilt-dev] [PATCH RFC] Add option --preamble to diff and refresh |
Date: |
Tue, 18 Oct 2022 02:34:10 +0200 |
Jean and Randy,
Am Do., 13. Okt. 2022 um 14:43 Uhr schrieb Jean Delvare <jdelvare@suse.de>:
> Option --preamble can be used to let quilt generate extra lines
> before the actual diff. For now one preamble format is supported,
> "diff", which will generate a line like:
>
> > diff -- a/dir/file b/dir/file
>
> This is meant to help other tools recognize the beginning of the
> patch body, namely lore.kernel.org.
before adding such an awful hack to quilt, could you please pass this
by Junio, git@vger.kernel.org, and Konstantin to see if this can be
fixed in "git patch-id" instead? After all, this affects all quilt
patches ever posted so far, countless others that will still be
posted, and possibly patches generated by other tools as well.
> Suggested-by: Randy Dunlap <rdunlap@infradead.org>
> Signed-off-by: Jean Delvare <jdelvare@suse.de>
> ---
> Randy, this is a tentative implementation of the feature you requested.
> Please give it a try and let me know if it works for you.
>
> Note that I made the line start with "diff --" rather than just "diff".
> The reason is that just matching for "^diff " could easily lead to
> false positives as this pattern could legitimately appear in the patch
> header. This is compatible with the way quilt currently detects the
> start of body for git-generated patches.
Not sure the extra "--" is actually helping.
> I am moderately happy with the implementation, somehow it feels like
> --no-index and --preamble should be merged into a single option, but it
> seems difficult to do that without breaking backward compatibility. But
> I don't know if we care.
>
> doc/quilt.1.in | 8 ++++++++
> quilt/diff.in | 8 +++++++-
> quilt/refresh.in | 8 +++++++-
> quilt/scripts/patchfns.in | 14 ++++++++++----
> 4 files changed, 32 insertions(+), 6 deletions(-)
>
> --- quilt.orig/quilt/scripts/patchfns.in
> +++ quilt/quilt/scripts/patchfns.in
> @@ -745,10 +745,16 @@ diff_file()
> if [[ "$line" =~ ^Binary\ files\ .*\ differ$ ]]
> then
> status=1
> - elif [ -z "$QUILT_NO_DIFF_INDEX" ]
> - then
> - echo "Index: $index"
> - echo
> "==================================================================="
> + else
> + if [ -z "$QUILT_NO_DIFF_INDEX" ]
> + then
> + echo "Index: $index"
> + echo
> "==================================================================="
> + fi
> + if [ "$QUILT_DIFF_PREAMBLE" == "diff" ]
> + then
> + echo "diff -- $old_hdr $new_hdr"
> + fi
> fi
>
> echo "$line"
> --- quilt.orig/doc/quilt.1.in
> +++ quilt/doc/quilt.1.in
> @@ -406,6 +406,14 @@ This is shorthand for adding \\[lq]\\-\\
> and
> .IR QUILT_REFRESH_ARGS .
> .TP 4
> +.I QUILT_DIFF_PREAMBLE
> +If set to \\[lq]diff\\[rq], a \\[lq]diff\\[rq] line is prepended to
> +patches generated by .IR quilt .
> +This is shorthand for adding \\[lq]\\-\\-preamble=diff\\[rq] to both
> +.I QUILT_DIFF_ARGS
> +and
> +.IR QUILT_REFRESH_ARGS .
> +.TP 4
> .I QUILT_NO_DIFF_TIMESTAMPS
> Boolean flag; if set to anything,
> no timestamps are included in headers when generating patches.
> --- quilt.orig/quilt/diff.in
> +++ quilt/quilt/diff.in
> @@ -34,6 +34,9 @@ included.
> --no-index
> Do not output Index: lines.
>
> +--preamble=diff
> + Output diff lines.
> +
> -z Write to standard output the changes that have been made
> relative to the topmost or specified patch.
>
> @@ -125,7 +128,7 @@ die()
>
> options=`getopt -o p:P:RuU:cC:zh --long diff:,snapshot,no-timestamps \
> --long no-index,combine:,color:: \
> - --long sort -- "$@"`
> + --long sort,preamble: -- "$@"`
>
> if [ $? -ne 0 ]
> then
> @@ -175,6 +178,9 @@ do
> --no-index)
> QUILT_NO_DIFF_INDEX=1
> shift ;;
> + --preamble)
> + QUILT_DIFF_PREAMBLE=$2
> + shift 2 ;;
> --sort)
> opt_sort=1
> shift ;;
> --- quilt.orig/quilt/refresh.in
> +++ quilt/quilt/refresh.in
> @@ -47,6 +47,9 @@ patch.
> --no-index
> Do not output Index: lines.
>
> +--preamble=diff
> + Output diff lines.
> +
> --diffstat
> Add a diffstat section to the patch header, or replace the
> existing diffstat section.
> @@ -77,7 +80,7 @@ die()
> }
>
> options=`getopt -o p:uU:cC:fz::h --long no-timestamps,diffstat,backup,sort \
> - --long no-index \
> + --long no-index,preamble: \
> --long strip-trailing-whitespace -- "$@"`
>
> if [ $? -ne 0 ]
> @@ -115,6 +118,9 @@ do
> --no-index)
> QUILT_NO_DIFF_INDEX=1
> shift ;;
> + --preamble)
> + QUILT_DIFF_PREAMBLE=$2
> + shift 2 ;;
> --diffstat)
> opt_diffstat=1
> shift ;;
>
>
> --
> Jean Delvare
> SUSE L3 Support
>
> _______________________________________________
> Quilt-dev mailing list
> Quilt-dev@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/quilt-dev
Thanks,
Andreas