Skip to content

Commit

Permalink
Fix a bug where we would corrupt the stuff read from git-rev-list.
Browse files Browse the repository at this point in the history
If we have a very long commit message, and we end up getting a
bufferfull of data from git-rev-list that all belongs to one commit,
we ended up throwing away the data from a previous read that should
have been included.  The result was a error message about not being
able to parse the output of git-rev-list.

Also, if the git-rev-list output that we can't parse is long, only put
the first 80 chars in the error message.  Otherwise we end up with an
enormous error window.
  • Loading branch information
paulusmack committed Jun 27, 2005
1 parent 74daedb commit 7e952e7
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions gitk
Original file line number Diff line number Diff line change
Expand Up @@ -81,16 +81,21 @@ to allow selection of commits to be displayed.)}
while 1 {
set i [string first "\0" $stuff $start]
if {$i < 0} {
set leftover [string range $stuff $start end]
append leftover [string range $stuff $start end]
return
}
set cmit [string range $stuff $start [expr {$i - 1}]]
if {$start == 0} {
set cmit "$leftover$cmit"
set leftover {}
}
set start [expr {$i + 1}]
if {![regexp {^([0-9a-f]{40})\n} $cmit match id]} {
error_popup "Can't parse git-rev-list output: {$cmit}"
set shortcmit $cmit
if {[string length $shortcmit] > 80} {
set shortcmit "[string range $shortcmit 0 80]..."
}
error_popup "Can't parse git-rev-list output: {$shortcmit}"
exit 1
}
set cmit [string range $cmit 41 end]
Expand Down

0 comments on commit 7e952e7

Please sign in to comment.