[PATCH] Add --allow-eof-whitelines to git-apply while still doing whitespace trailing-space fixing.

Subsystems: the rest

STALE3737d

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

[PATCH] Add --allow-eof-whitelines to git-apply while still doing whitespace trailing-space fixing.

From: Thell Fowler <hidden>
Date: 2016-06-15 22:47:08

  - 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 <redacted>
---
 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

Re: [PATCH] Add --allow-eof-whitelines to git-apply while still doing whitespace trailing-space fixing.

From: Nanako Shiraishi <hidden>
Date: 2016-06-15 22:47:09

Quoting Thell Fowler [off-list ref]
  - 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 <redacted>
I like this new feature. However, this topic came up last week, and Junio said that whitespace checking should be controlled with the attributes mechanism.

http://thread.gmane.org/gmane.comp.version-control.git/124113/focus=124138

Please do not talk "I did this, I did that" in your proposed commit log
message.  From Documentation/SubmittingPatches:

	- the body should provide a meaningful commit message, which:
		- uses the imperative, present tense: "change",
		  not "changed" or "changes".
		- includes motivation for the change, and contrasts
		  its implementation with previous behaviour

In other words, the messages are often written as if you are giving an order to the program to correct itself.

-- 
Nanako Shiraishi
http://ivory.ap.teacup.com/nanako3/

Re: [PATCH] Add --allow-eof-whitelines to git-apply while still doing whitespace trailing-space fixing.

From: Thell Fowler <hidden>
Date: 2016-06-15 22:47:09

On Wed, 2009-08-05 at 06:15 +0900, Nanako Shiraishi wrote:
Quoting Thell Fowler [off-list ref]
quoted
  - 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 <redacted>
I like this new feature. However, this topic came up last week, and Junio said that whitespace checking should be controlled with the attributes mechanism.

http://thread.gmane.org/gmane.comp.version-control.git/124113/focus=124138
Seemed that the issue/resolution was still open for discussion.
http://thread.gmane.org/gmane.comp.version-control.git/124113/focus=124138

Should this be re-done as a whitespace attribute?

Please do not talk "I did this, I did that" in your proposed commit log
message.  From Documentation/SubmittingPatches:

	- the body should provide a meaningful commit message, which:
		- uses the imperative, present tense: "change",
		  not "changed" or "changes".
		- includes motivation for the change, and contrasts
		  its implementation with previous behaviour

In other words, the messages are often written as if you are giving an order to the program to correct itself.
Got it. ...'giving an order'...  and the motivation; should be easy to remember.

Thank you for the feedback and instruction.
Thell
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help