Gitk --all error when there are more than 797 refs in a repository
- From
- Murphy, John <john.murphy@bankofamerica.com>
- Date
- Sep 17, 2009, 19:07 UTC
- Message-ID
- <6F87406399731F489FBACE5C5FFA04584BFA53@ex2k.bankofamerica.com>
There is a error when running gitk --all when there are more than 797 refs in a repository. We get an error message:
Error reading commits: fatal ambiguous argument '3': unknown revision or path not in the working tree. Use '--' to separate paths from revisions.
I believe issue is with this line of the code in proc parseviewrevs:
if {[catch {set ids [eval exec git rev-parse "$revs"]} err]}When there are more than 797 refs the output of git rev-parse is too large to fit into the string, ids.
797 refs = 32,677 bytes. 798 refs = 32,718 bytes my guess is a little too close for comfort to 32,768 bytes.
As I was deleting refs locally the error message would change from '3' to any char [A-Z,0-9].
I am a novice tcl programmer but is seems like ids could be an array. There are also many other areas in the code where git rev-parse is called and using array may also be necessary.
We were using: git 1.6.3.2.314.ge3519
and then I upgraded to test if there was a change: git 1.6.5.rc1.18.g401ce7
We are also using: tcl 8.4.1 cygwin 1.5.25-7 Windows XP Pro SP3