- Added --allow-eof-whitelines to git apply to short-circuit removal of new empty lines when tailing-space is set. - Added pass-through to apply from git-am.sh - Added pass-through to git-am from git-rebase.sh - Added the auto-completion entries. Signed-off-by: TBFowler <thell@xxxxxxxxxxxxxxxxxxx> --- builtin-apply.c | 5 ++++- contrib/completion/git-completion.bash | 4 ++-- git-am.sh | 3 +++ git-rebase.sh | 3 +++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/builtin-apply.c b/builtin-apply.c index dc0ff5e..79be05c 100644 --- a/builtin-apply.c +++ b/builtin-apply.c @@ -43,6 +43,7 @@ static int apply = 1; static int apply_in_reverse; static int apply_with_reject; static int apply_verbosely; +static int keep_new_eof_whitelines; static int no_add; static const char *fake_ancestor; static int line_termination = '\n'; @@ -1996,7 +1997,7 @@ static int apply_one_fragment(struct image *img, struct fragment *frag, error("invalid start of line: '%c'", first); return -1; } - if (added_blank_line) + if (added_blank_line && !keep_new_eof_whitelines) new_blank_lines_at_end++; else new_blank_lines_at_end = 0; @@ -3304,6 +3305,8 @@ int cmd_apply(int argc, const char **argv, const char *unused_prefix) { OPTION_CALLBACK, 0, "whitespace", &whitespace_option, "action", "detect new or modified lines that have whitespace errors", 0, option_parse_whitespace }, + OPT_BOOLEAN(0, "allow-eof-whitelines", &keep_new_eof_whitelines, + "allow processing of whitespace fix but don't suppress new whitelines at end of file"), OPT_BOOLEAN('R', "reverse", &apply_in_reverse, "apply the patch in reverse"), OPT_BOOLEAN(0, "unidiff-zero", &unidiff_zero, diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 745b5fb..512b14c 100755 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -675,7 +675,7 @@ _git_am () __gitcomp " --3way --committer-date-is-author-date --ignore-date --interactive --keep --no-utf8 --signoff --utf8 - --whitespace= + --whitespace= --allow-eof-whitelines " return esac @@ -695,7 +695,7 @@ _git_apply () --stat --numstat --summary --check --index --cached --index-info --reverse --reject --unidiff-zero --apply --no-add --exclude= - --whitespace= --inaccurate-eof --verbose + --whitespace= --allow-eof-whitelines --inaccurate-eof --verbose " return esac diff --git a/git-am.sh b/git-am.sh index d64d997..5757674 100755 --- a/git-am.sh +++ b/git-am.sh @@ -16,6 +16,7 @@ s,signoff add a Signed-off-by line to the commit message u,utf8 recode into utf8 (default) k,keep pass -k flag to git-mailinfo whitespace= pass it through git-apply +allow-eof-whitelines pass it through git-apply directory= pass it through git-apply C= pass it through git-apply p= pass it through git-apply @@ -299,6 +300,8 @@ do shift; resolvemsg=$1 ;; --whitespace|--directory) git_apply_opt="$git_apply_opt $(sq "$1=$2")"; shift ;; + --allow-eof-whitelines) + git_apply_opt="$git_apply_opt $1" ;; -C|-p) git_apply_opt="$git_apply_opt $(sq "$1$2")"; shift ;; --patch-format) diff --git a/git-rebase.sh b/git-rebase.sh index 18bc694..1556224 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -333,6 +333,9 @@ do ;; esac ;; + --allow-eof-whitelines) + git_am_opt="$git_am_opt $1" + ;; --committer-date-is-author-date|--ignore-date) git_am_opt="$git_am_opt $1" force_rebase=t -- 1.6.4.rc3.dirty -- To unsubscribe from this list: 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