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