git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH/RFC v1 1/1] +5 cases (4 fail), diff whitespace tests
@ 2009-01-15  0:48 Keith Cascio
  2009-01-18  7:45 ` Junio C Hamano
  2009-01-18  7:47 ` Junio C Hamano
  0 siblings, 2 replies; 4+ messages in thread
From: Keith Cascio @ 2009-01-15  0:48 UTC (permalink / raw)
  To: git

  +5 cases (4 fail), diff whitespace tests
  There are 2^3 = eight possible combinations of the three flags:
  -w -b --ignore-space-at-eol
  Three of those combinations were already being tested:
  [none]
  -w
  -b
  Add tests of the other five combinations,
  four of which fail with git
  3cf3b838c7b379824c68ee87799aaaa9028b36cd
  from Tue Jan 13 23:41:32 2009 -0800.

Signed-off-by: Keith Cascio <keith@cs.ucla.edu>
---

All four failures involve combining whitespace ignore options.  It's likely the 
fix will involve one or both of the following two functions in xdiff/xutils.c:
xdl_hash_record_with_whitespace()
xdl_recmatch()

I played around with it and discovered I could make
"git diff -b --ignore-space-at-eol" work by changing
if (flags & XDF_IGNORE_WHITESPACE_AT_EOL
to
else if (flags & XDF_IGNORE_WHITESPACE_AT_EOL
But I don't know if that would break something else.

                                          -- Keith

  t/t4015-diff-whitespace.sh |   27 +++++++++++++++++++++++++++
  1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh
index fc2307e..dbb608c 100755
--- a/t/t4015-diff-whitespace.sh
+++ b/t/t4015-diff-whitespace.sh
@@ -98,6 +98,12 @@ index d99af23..8b32fb5 100644
  EOF
  git diff -w > out
  test_expect_success 'another test, with -w' 'test_cmp expect out'
+git diff -w -b > out
+test_expect_failure 'another test, with -w -b' 'test_cmp expect out'
+git diff -w --ignore-space-at-eol > out
+test_expect_failure 'another test, with -w --ignore-space-at-eol' 'test_cmp expect out'
+git diff -w -b --ignore-space-at-eol > out
+test_expect_failure 'another test, with -w -b --ignore-space-at-eol' 'test_cmp expect out'

  tr 'Q' '\015' << EOF > expect
  diff --git a/x b/x
@@ -116,6 +122,27 @@ index d99af23..8b32fb5 100644
  EOF
  git diff -b > out
  test_expect_success 'another test, with -b' 'test_cmp expect out'
+git diff -b --ignore-space-at-eol > out
+test_expect_failure 'another test, with -b --ignore-space-at-eol' 'test_cmp expect out'
+
+tr 'Q' '\015' << EOF > expect
+diff --git a/x b/x
+index d99af23..8b32fb5 100644
+--- a/x
++++ b/x
+@@ -1,6 +1,6 @@
+-whitespace at beginning
+-whitespace change
+-whitespace in the middle
++	whitespace at beginning
++whitespace 	 change
++white space in the middle
+ whitespace at end
+ unchanged line
+ CR at endQ
+EOF
+git diff --ignore-space-at-eol > out
+test_expect_success 'another test, with --ignore-space-at-eol' 'test_cmp expect out'

  test_expect_success 'check mixed spaces and tabs in indent' '

-- 
1.6.1.137.gb17b6

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH/RFC v1 1/1] +5 cases (4 fail), diff whitespace tests
  2009-01-15  0:48 [PATCH/RFC v1 1/1] +5 cases (4 fail), diff whitespace tests Keith Cascio
@ 2009-01-18  7:45 ` Junio C Hamano
  2009-01-18  7:47 ` Junio C Hamano
  1 sibling, 0 replies; 4+ messages in thread
From: Junio C Hamano @ 2009-01-18  7:45 UTC (permalink / raw)
  To: Keith Cascio; +Cc: git

Thanks, applied.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH/RFC v1 1/1] +5 cases (4 fail), diff whitespace tests
  2009-01-15  0:48 [PATCH/RFC v1 1/1] +5 cases (4 fail), diff whitespace tests Keith Cascio
  2009-01-18  7:45 ` Junio C Hamano
@ 2009-01-18  7:47 ` Junio C Hamano
  2009-01-18 19:25   ` Keith Cascio
  1 sibling, 1 reply; 4+ messages in thread
From: Junio C Hamano @ 2009-01-18  7:47 UTC (permalink / raw)
  To: Keith Cascio; +Cc: git

Keith Cascio <keith@CS.UCLA.EDU> writes:

>  +5 cases (4 fail), diff whitespace tests
>  There are 2^3 = eight possible combinations of the three flags:
>  -w -b --ignore-space-at-eol
>  Three of those combinations were already being tested:
>  [none]
>  -w
>  -b
>  Add tests of the other five combinations,

Hmm.  Are these three supposed to be orthogonal?

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH/RFC v1 1/1] +5 cases (4 fail), diff whitespace tests
  2009-01-18  7:47 ` Junio C Hamano
@ 2009-01-18 19:25   ` Keith Cascio
  0 siblings, 0 replies; 4+ messages in thread
From: Keith Cascio @ 2009-01-18 19:25 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Sat, 17 Jan 2009, Junio C Hamano wrote:

> Hmm.  Are these three supposed to be orthogonal?

The semantics of those 3 flags are not orthogonal, no.  Their relationship 
amongst each other is one of transitive implication:

-w                    implies the other two
-b                    implies --ignore-space-at-eol
--ignore-space-at-eol implies only itself

Therefore, it is never *necessary* to specify more than one of these flags on 
the command line.  However, it is not hard to imagine scenarios where software 
wrappers around git (e.g. GUIs, etc), generate command lines with more than one 
of these flags.  I thought about it, and it seems unreasonable to make it an 
error to specify more than one, since a new user might not immediately grasp the 
way they imply each other.  I think Git could and should treat it as a legal 
case.  I contacted Dscho about fixing it, but he is busy so I will submit a fix 
patch myself.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-01-18 19:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-15  0:48 [PATCH/RFC v1 1/1] +5 cases (4 fail), diff whitespace tests Keith Cascio
2009-01-18  7:45 ` Junio C Hamano
2009-01-18  7:47 ` Junio C Hamano
2009-01-18 19:25   ` Keith Cascio

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).