Subject: [BUG] diff -B does not (always?) use colors

From: Matthias Lederhofer <[email-masked]>
Date: Tue, 20 Feb 2007 11:08:46 +0100

I found that git diff -B does not always use colors and I don't have
time to figure out what it is atm.

The bug can be triggered by this two files and running git diff with
-B.  You can also just clone the repository from
git://igit.ath.cx/~matled/tmp/break/

% git cat-file -p HEAD~1:test
def test(p)
    if p
        Array.new
        Array.new(2)
        Array.new(5, "A")

        # only one copy of the object is created
        a = Array.new(2, Hash.new)
        a[0]['cat'] = 'feline'
        a
        a[1]['cat'] = 'Felix'
        a

        # here multiple copies are created
        a = Array.new(2) { Hash.new }
        a[0]['cat'] = 'feline'
        a

        squares = Array.new(5) {|i| i*i}
        squares

        copy = Array.new(squares)
    end
end
% git cat-file -p HEAD:test  
def test(p)
    test_bla if p
end

def test_bla
    Array.new
    Array.new(2)
    Array.new(5, "A")

    # only one copy of the object is created
    a = Array.new(2, Hash.new)
    a[0]['cat'] = 'feline'
    a
    a[1]['cat'] = 'Felix'
    a

    # here multiple copies are created
    a = Array.new(2) { Hash.new }
    a[0]['cat'] = 'feline'
    a

    squares = Array.new(5) {|i| i*i}
    squares

    copy = Array.new(squares)
end