Implement a --dry-run option to git-quiltimport 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. Signed-off-by: Junio C Hamano <junkio@cox.net>
diff --git a/Documentation/git-quiltimport.txt b/Documentation/git-quiltimport.txt index c66c82c..6e9a8c3 100644 --- a/Documentation/git-quiltimport.txt +++ b/Documentation/git-quiltimport.txt
@@ -9,7 +9,7 @@ SYNOPSIS -------- [verse] -'git-quiltimport' [--author <author>] [--patches <dir>] +'git-quiltimport' [--dry-run] [--author <author>] [--patches <dir>] DESCRIPTION @@ -29,6 +29,12 @@ 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 dd4a198..12d9d0c 100755 --- 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 @@ shift ;; + --dry-run) + shift + dry_run=1 + ;; + --pa=*|--pat=*|--patc=*|--patch=*|--patche=*|--patches=*) QUILT_PATCHES=$(expr "$1" : '-[^=]*\(.*\)') shift @@ -75,8 +81,12 @@ 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 @@ 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