Skip to content

Commit

Permalink
git-am foreign patch support: autodetect some patch formats
Browse files Browse the repository at this point in the history
Default to mbox format if input is from stdin. Otherwise, look at the
first few lines of the first patch to try to guess its format.

Include checks for mailboxes, stgit patch series, stgit single patches
and hg patches.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Giuseppe Bilotta authored and Junio C Hamano committed May 29, 2009
1 parent a5a6755 commit 15ced75
Showing 1 changed file with 39 additions and 1 deletion.
40 changes: 39 additions & 1 deletion git-am.sh
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,45 @@ check_patch_format () {
then
return 0
fi
patch_format=mbox

# we default to mbox format if input is from stdin and for
# directories
if test $# = 0 || test "x$1" = "x-" || test -d "$1"
then
patch_format=mbox
return 0
fi

# otherwise, check the first few lines of the first patch to try
# to detect its format
{
read l1
read l2
read l3
case "$l1" in
"From "* | "From: "*)
patch_format=mbox
;;
'# This series applies on GIT commit'*)
patch_format=stgit-series
;;
"# HG changeset patch")
patch_format=hg
;;
*)
# if the second line is empty and the third is
# a From, Author or Date entry, this is very
# likely an StGIT patch
case "$l2,$l3" in
,"From: "* | ,"Author: "* | ,"Date: "*)
patch_format=stgit
;;
*)
;;
esac
;;
esac
} < "$1"
}

split_patches () {
Expand Down

0 comments on commit 15ced75

Please sign in to comment.