Re: [PATCH 9/9] trailer: add tests for git interpret-trailers

2013-12-30 Thread Junio C Hamano
Christian Couder chrisc...@tuxfamily.org writes:

 +# Do not remove trailing spaces below!
 +cat complex_message_trailers 'EOF'
 +Fixes: 
 +Acked-by: 
 +Reviewed-by: 
 +Signed-off-by: 
 +EOF

Just a hint.  I think it is far safer and robust over time to do
something like this:

sed -e 's/ Z$/ /' -\EOF
Fixes: Z
Acked-by: Z
EOF

instead of a comment, which can warn human developers but does not
do anything to prevent their editors' auto-fix features from kicking
in.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 9/9] trailer: add tests for git interpret-trailers

2013-12-30 Thread Josh Triplett
On Mon, Dec 30, 2013 at 09:19:55AM -0800, Junio C Hamano wrote:
 Christian Couder chrisc...@tuxfamily.org writes:
 
  +# Do not remove trailing spaces below!
  +cat complex_message_trailers 'EOF'
  +Fixes: 
  +Acked-by: 
  +Reviewed-by: 
  +Signed-off-by: 
  +EOF
 
 Just a hint.  I think it is far safer and robust over time to do
 something like this:
 
   sed -e 's/ Z$/ /' -\EOF
 Fixes: Z
 Acked-by: Z
 EOF
 
 instead of a comment, which can warn human developers but does not
 do anything to prevent their editors' auto-fix features from kicking
 in.

This, but for simplicity, since every line needs the trailing space, why
not just use 's/$/ /' and drop the ' Z' on every line?

/bikeshed

- Josh Triplett
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 9/9] trailer: add tests for git interpret-trailers

2013-12-30 Thread Junio C Hamano
Josh Triplett j...@joshtriplett.org writes:

 On Mon, Dec 30, 2013 at 09:19:55AM -0800, Junio C Hamano wrote:
 Christian Couder chrisc...@tuxfamily.org writes:
 
  +# Do not remove trailing spaces below!
  +cat complex_message_trailers 'EOF'
  +Fixes: 
  +Acked-by: 
  +Reviewed-by: 
  +Signed-off-by: 
  +EOF
 
 Just a hint.  I think it is far safer and robust over time to do
 something like this:
 
  sed -e 's/ Z$/ /' -\EOF
 Fixes: Z
 Acked-by: Z
 EOF
 
 instead of a comment, which can warn human developers but does not
 do anything to prevent their editors' auto-fix features from kicking
 in.

 This, but for simplicity, since every line needs the trailing space, why
 not just use 's/$/ /' and drop the ' Z' on every line?

 /bikeshed

 - Josh Triplett

A few reasons:

 - The everybody will have a single SP at the end may or may not
   last forever;

 - With your scheme, if you already had _one_ trailing SPs in the
   input, it would be hard to spot in the source;

 - It makes it visually very clear that we expect a SP after these
   colons.  This is especially true if you replace 'Z' with
   something more readable (e.g. '|').

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 9/9] trailer: add tests for git interpret-trailers

2013-12-30 Thread Josh Triplett
On Mon, Dec 30, 2013 at 12:46:33PM -0800, Junio C Hamano wrote:
 Josh Triplett j...@joshtriplett.org writes:
 
  On Mon, Dec 30, 2013 at 09:19:55AM -0800, Junio C Hamano wrote:
  Christian Couder chrisc...@tuxfamily.org writes:
  
   +# Do not remove trailing spaces below!
   +cat complex_message_trailers 'EOF'
   +Fixes: 
   +Acked-by: 
   +Reviewed-by: 
   +Signed-off-by: 
   +EOF
  
  Just a hint.  I think it is far safer and robust over time to do
  something like this:
  
 sed -e 's/ Z$/ /' -\EOF
  Fixes: Z
  Acked-by: Z
  EOF
  
  instead of a comment, which can warn human developers but does not
  do anything to prevent their editors' auto-fix features from kicking
  in.
 
  This, but for simplicity, since every line needs the trailing space, why
  not just use 's/$/ /' and drop the ' Z' on every line?
 
  /bikeshed
 
  - Josh Triplett
 
 A few reasons:
 
  - The everybody will have a single SP at the end may or may not
last forever;

Trivially fixed if that ever changes, but given the nature of all of
these, that seems unlikely.

  - With your scheme, if you already had _one_ trailing SPs in the
input, it would be hard to spot in the source;

Git makes them quite difficult to miss. :)

- Josh Triplett
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 9/9] trailer: add tests for git interpret-trailers

2013-12-30 Thread Junio C Hamano
Josh Triplett j...@joshtriplett.org writes:

  - The everybody will have a single SP at the end may or may not
last forever;

 Trivially fixed if that ever changes, but given the nature of all of
 these, that seems unlikely.

Why?  Because we encourage to write tests that are expected to find
breakages, some of these test vector lines may have to show a broken
line that lacks SP after label + colon.

  - With your scheme, if you already had _one_ trailing SPs in the
input, it would be hard to spot in the source;

 Git makes them quite difficult to miss. :)

That is irrelevant, isn't it?

This is about protecting the source in the editor, before you run
git show --whitespace=trailing-space, git diff --check, etc.


--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 9/9] trailer: add tests for git interpret-trailers

2013-12-23 Thread Christian Couder
Signed-off-by: Christian Couder chrisc...@tuxfamily.org
---
 t/t7513-interpret-trailers.sh | 206 ++
 1 file changed, 206 insertions(+)
 create mode 100755 t/t7513-interpret-trailers.sh

diff --git a/t/t7513-interpret-trailers.sh b/t/t7513-interpret-trailers.sh
new file mode 100755
index 000..beb58fe
--- /dev/null
+++ b/t/t7513-interpret-trailers.sh
@@ -0,0 +1,206 @@
+#!/bin/sh
+#
+# Copyright (c) 2013 Christian Couder
+#
+
+test_description='git interpret-trailers'
+
+. ./test-lib.sh
+
+cat basic_message 'EOF'
+subject
+
+body
+EOF
+
+cat complex_message_body 'EOF'
+my subject
+
+my body which is long
+and contains some special
+chars like : = ? !
+
+EOF
+
+# Do not remove trailing spaces below!
+cat complex_message_trailers 'EOF'
+Fixes: 
+Acked-by: 
+Reviewed-by: 
+Signed-off-by: 
+EOF
+
+test_expect_success 'without config' '
+   printf ack: Peff\nReviewed-by: \nAcked-by: Johan\n expected 
+   git interpret-trailers ack = Peff Reviewed-by Acked-by: Johan 
actual 
+   test_cmp expected actual
+'
+
+test_expect_success '--trim-empty without config' '
+   printf ack: Peff\nAcked-by: Johan\n expected 
+   git interpret-trailers --trim-empty ack = Peff Reviewed-by 
Acked-by: Johan sob: actual 
+   test_cmp expected actual
+'
+
+test_expect_success 'with config setup' '
+   git config trailer.ack.key Acked-by:  
+   printf Acked-by: Peff\n expected 
+   git interpret-trailers --trim-empty ack = Peff actual 
+   test_cmp expected actual 
+   git interpret-trailers --trim-empty Acked-by = Peff actual 
+   test_cmp expected actual 
+   git interpret-trailers --trim-empty Acked-by :Peff actual 
+   test_cmp expected actual
+'
+
+test_expect_success 'with config setup and = sign' '
+   git config trailer.ack.key Acked-by=  
+   printf Acked-by= Peff\n expected 
+   git interpret-trailers --trim-empty ack = Peff actual 
+   test_cmp expected actual 
+   git interpret-trailers --trim-empty Acked-by= Peff actual 
+   test_cmp expected actual 
+   git interpret-trailers --trim-empty Acked-by : Peff actual 
+   test_cmp expected actual
+'
+
+test_expect_success 'with config setup and # sign' '
+   git config trailer.bug.key Bug # 
+   printf Bug #42\n expected 
+   git interpret-trailers --trim-empty bug = 42 actual 
+   test_cmp expected actual
+'
+
+test_expect_success 'with commit basic message' '
+   git interpret-trailers --infile basic_message actual 
+   test_cmp basic_message actual
+'
+
+test_expect_success 'with commit complex message' '
+   cat complex_message_body complex_message_trailers complex_message 
+   cat complex_message_body expected 
+   printf Fixes: \nAcked-by= \nReviewed-by: \nSigned-off-by: \n 
expected 
+   git interpret-trailers --infile complex_message actual 
+   test_cmp expected actual
+'
+
+test_expect_success 'with commit complex message and args' '
+   cat complex_message_body expected 
+   printf Fixes: \nAcked-by= \nAcked-by= Peff\nReviewed-by: 
\nSigned-off-by: \nBug #42\n expected 
+   git interpret-trailers --infile complex_message ack: Peff bug: 42 
actual 
+   test_cmp expected actual
+'
+
+test_expect_success 'with commit complex message, args and --trim-empty' '
+   cat complex_message_body expected 
+   printf Acked-by= Peff\nBug #42\n expected 
+   git interpret-trailers --trim-empty --infile complex_message ack: 
Peff bug: 42 actual 
+   test_cmp expected actual
+'
+
+test_expect_success 'using where = before' '
+   git config trailer.bug.where before 
+   cat complex_message_body expected 
+   printf Bug #42\nFixes: \nAcked-by= \nAcked-by= Peff\nReviewed-by: 
\nSigned-off-by: \n expected 
+   git interpret-trailers --infile complex_message ack: Peff bug: 42 
actual 
+   test_cmp expected actual
+'
+
+test_expect_success 'using where = before for a token in the middle of 
infile' '
+   git config trailer.review.key Reviewed-by: 
+   git config trailer.review.where before 
+   cat complex_message_body expected 
+   printf Bug #42\nFixes: \nAcked-by= \nAcked-by= Peff\nReviewed-by: 
Johan\nReviewed-by: \nSigned-off-by: \n expected 
+   git interpret-trailers --infile complex_message ack: Peff bug: 42 
review: Johan actual 
+   test_cmp expected actual
+'
+
+test_expect_success 'using where = before and --trim-empty' '
+   cat complex_message_body expected 
+   printf Bug #46\nBug #42\nAcked-by= Peff\nReviewed-by: Johan\n 
expected 
+   git interpret-trailers --infile complex_message --trim-empty ack: 
Peff bug: 42 review: Johan Bug: 46  actual 
+   test_cmp expected actual
+'
+
+test_expect_success 'the default is ifExist = addIfDifferent' '
+   cat complex_message_body expected 
+   printf Bug #42\nFixes: \nAcked-by= \nAcked-by= Peff\nReviewed-by: 
\nSigned-off-by: \n expected 
+   git