From: Ramsay Jones Date: Tue, 06 May 2008 22:29:07 GMT Subject: Re: [PATCH 3/3] diff: make "too many files" rename warning optional Message-ID: <4820DBB3.8020009@ramsay1.demon.co.uk> In-Reply-To: <20080504192332.GB13029@sigill.intra.peff.net> Jeff King wrote: > On Sat, May 03, 2008 at 06:34:31PM +0100, Ramsay Jones wrote: >> >> The git command issued by gitk appears to be: >> git diff-tree -r -p -C --no-commit-id -U3 1d6aeb410dc19893adbc0209bcf859f35ff1c7d6 > > Hrm. Is gitk on cygwin somehow squishing stderr and stdout together? Or > does gitk in general look at what happens on stderr? maybe. After further testing, the above "git diff-tree..." does indeed issue the warning on stderr; on both cygwin and Linux. [I forgot to type ./git-diff-tree as I had not installed the new git yet, since it does not pass "make test". That is a different problem for another day...] It appears that gitk on Linux is quite happy with that message on stderr, but on cygwin it chokes. > > Because while I am happy that removing this message fixes your problem, > it is a little disconcerting to think that we can break gitk just by > issuing a warning diagnostic on stderr. Indeed. Also note that the warning is issued twice, since gitk issues that same command twice; viz: $ GIT_TRACE=/home/ramsay/git-trace gitk --all & # exit asap $ cat /home/ramsay/git-trace trace: built-in: git 'config' '--get' 'i18n.commitencoding' trace: built-in: git 'rev-parse' '--git-dir' trace: built-in: git 'rev-parse' '--no-revs' '--no-flags' '--all' trace: built-in: git 'rev-parse' '--is-inside-work-tree' trace: built-in: git 'show-ref' '-d' trace: built-in: git 'symbolic-ref' 'HEAD' trace: built-in: git 'log' '--no-color' '-z' '--pretty=raw' '--topo-order' '--parents' '--boundary' '--all' '--' trace: built-in: git 'diff-index' '--cached' 'HEAD' trace: built-in: git 'rev-parse' '--git-dir' trace: built-in: git 'diff-tree' '-r' '--no-commit-id' '1d6aeb410dc19893adbc0209bcf859f35ff1c7d6' trace: built-in: git 'diff-files' trace: built-in: git 'diff-tree' '-r' '-p' '-C' '--no-commit-id' '-U3' '1d6aeb410dc19893adbc0209bcf859f35ff1c7d6' trace: built-in: git 'diff-tree' '-r' '-p' '-C' '--no-commit-id' '-U3' '1d6aeb410dc19893adbc0209bcf859f35ff1c7d6' $ NOTE: I get exactly the same trace on Linux and cygwin. As a quick-fix, I added a "-l300" parameter to the above git command in ~/bin/gitk. [diff.renamelimit only affects git-diff] All the Best, Ramsay Jones