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>
This commit is contained in:
Eric W. Biederman 2006-05-17 14:10:25 -06:00 committed by Junio C Hamano
parent d3d8f361a8
commit d3bd4ee1a5
2 changed files with 25 additions and 7 deletions

View File

@ -9,7 +9,7 @@ git-quiltimport - Applies a quilt patchset onto the current branch
SYNOPSIS SYNOPSIS
-------- --------
[verse] [verse]
'git-quiltimport' [--author <author>] [--patches <dir>] 'git-quiltimport' [--dry-run] [--author <author>] [--patches <dir>]
DESCRIPTION DESCRIPTION
@ -29,6 +29,12 @@ preserved as the 1 line subject in the git description.
OPTIONS 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>:: --author Author Name <Author Email>::
The author name and email address to use when no author The author name and email address to use when no author
information can be found in the patch description. information can be found in the patch description.

View File

@ -1,8 +1,9 @@
#!/bin/sh #!/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 SUBDIRECTORY_ON=Yes
. git-sh-setup . git-sh-setup
dry_run=""
quilt_author="" quilt_author=""
while case "$#" in 0) break;; esac while case "$#" in 0) break;; esac
do do
@ -19,6 +20,11 @@ do
shift shift
;; ;;
--dry-run)
shift
dry_run=1
;;
--pa=*|--pat=*|--patc=*|--patch=*|--patche=*|--patches=*) --pa=*|--pat=*|--patc=*|--patch=*|--patche=*|--patches=*)
QUILT_PATCHES=$(expr "$1" : '-[^=]*\(.*\)') QUILT_PATCHES=$(expr "$1" : '-[^=]*\(.*\)')
shift shift
@ -75,8 +81,12 @@ for patch_name in $(cat "$QUILT_PATCHES/series" | grep -v '^#'); do
if [ -n "$quilt_author" ] ; then if [ -n "$quilt_author" ] ; then
GIT_AUTHOR_NAME="$quilt_author_name"; GIT_AUTHOR_NAME="$quilt_author_name";
GIT_AUTHOR_EMAIL="$quilt_author_email"; 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 else
echo "No author found in $patch_name"; echo "No author found in $patch_name" >&2;
echo "---" echo "---"
cat $tmp_msg cat $tmp_msg
echo -n "Author: "; echo -n "Author: ";
@ -98,9 +108,11 @@ for patch_name in $(cat "$QUILT_PATCHES/series" | grep -v '^#'); do
SUBJECT=$(echo $patch_name | sed -e 's/.patch$//') SUBJECT=$(echo $patch_name | sed -e 's/.patch$//')
fi fi
git-apply --index -C1 "$tmp_patch" && if [ -z "$dry_run" ] ; then
tree=$(git-write-tree) && git-apply --index -C1 "$tmp_patch" &&
commit=$((echo "$SUBJECT"; echo; cat "$tmp_msg") | git-commit-tree $tree -p $commit) && tree=$(git-write-tree) &&
git-update-ref HEAD $commit || exit 4 commit=$((echo "$SUBJECT"; echo; cat "$tmp_msg") | git-commit-tree $tree -p $commit) &&
git-update-ref HEAD $commit || exit 4
fi
done done
rm -rf $tmp_dir || exit 5 rm -rf $tmp_dir || exit 5