Since large quilt trees like -mm can easily have patches without clear authorship information, add a --dry-run option to make the problem patches easy to find. --- This patch should make it easy to communicate to Andrew and others exactly which patches there are problems with, and should make it possible to easily edit those patches before they are imported. Documentation/git-quiltimport.txt | 8 +++++++- git-quiltimport.sh | 24 ++++++++++++++++++------ 2 files changed, 25 insertions(+), 7 deletions(-) cb0ff8090e1492f177a521b01cf987c16b125d81 diff --git a/Documentation/git-quiltimport.txt b/Documentation/git-quiltimport.txt index e694537..97f4071 100644 --- a/Documentation/git-quiltimport.txt +++ b/Documentation/git-quiltimport.txt @@ -9,7 +9,7 @@ git-quiltimport - Applies a quilt patchs SYNOPSIS -------- [verse] -'git-quiltimport' [--author <author>] [--patches <dir>] +'git-quiltimport' [--dry-run] [--author <author>] [--patches <dir>] DESCRIPTION @@ -29,6 +29,12 @@ preserved as the 1 line subject in the g OPTIONS ------- +--dry-run:: + Walk through the patches in the series and warn + if we cannot find all of the necessary information to commit + a patch. At the time of this writing only missing author + information is warned about. + --author Author Name <Author Email>:: The author name and email address to use when no author information can be found in the patch description. diff --git a/git-quiltimport.sh b/git-quiltimport.sh index be43f9d..476e078 100644 --- a/git-quiltimport.sh +++ b/git-quiltimport.sh @@ -1,8 +1,9 @@ #!/bin/sh -USAGE='--author <author> --patches </path/to/quilt/patch/directory>' +USAGE='--dry-run --author <author> --patches </path/to/quilt/patch/directory>' SUBDIRECTORY_ON=Yes . git-sh-setup +dry_run="" quilt_author="" while case "$#" in 0) break;; esac do @@ -19,6 +20,11 @@ do shift ;; + --dry-run) + shift + dry_run=1 + ;; + --pa=*|--pat=*|--patc=*|--patch=*|--patche=*|--patches=*) QUILT_PATCHES=$(expr "$1" : '-[^=]*\(.*\)') shift @@ -75,8 +81,12 @@ for patch_name in $(cat "$QUILT_PATCHES/ if [ -n "$quilt_author" ] ; then GIT_AUTHOR_NAME="$quilt_author_name"; GIT_AUTHOR_EMAIL="$quilt_author_email"; + elif [ -n "$dry_run" ]; then + echo "No author found in $patch_name" >&2; + GIT_AUTHOR_NAME="dry-run-not-found"; + GIT_AUTHOR_EMAIL="dry-run-not-found"; else - echo "No author found in $patch_name"; + echo "No author found in $patch_name" >&2; echo "---" cat $tmp_msg echo -n "Author: "; @@ -98,9 +108,11 @@ for patch_name in $(cat "$QUILT_PATCHES/ SUBJECT=$(echo $patch_name | sed -e 's/.patch$//') fi - git-apply --index -C1 "$tmp_patch" && - tree=$(git-write-tree) && - commit=$((echo "$SUBJECT"; echo; cat "$tmp_msg") | git-commit-tree $tree -p $commit) && - git-update-ref HEAD $commit || exit 4 + if [ -z "$dry_run" ] ; then + git-apply --index -C1 "$tmp_patch" && + tree=$(git-write-tree) && + commit=$((echo "$SUBJECT"; echo; cat "$tmp_msg") | git-commit-tree $tree -p $commit) && + git-update-ref HEAD $commit || exit 4 + fi done rm -rf $tmp_dir || exit 5 -- 1.3.2.g5041c-dirty - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html