• Sean McGivern's avatar
    Fix 500 error when diff context line has broken encoding · cdf3ae04
    Sean McGivern authored
    Rugged sometimes chops a context line in between bytes, resulting in the context
    line having an invalid encoding: https://github.com/libgit2/rugged/issues/716
    
    When that happens, we will try to detect the encoding for the diff, and
    sometimes we'll get it wrong. If that difference in encoding results in a
    difference in string lengths between the diff and the underlying blobs, we'd
    fail to highlight any inline diffs, and return a 500 status to the user.
    
    As we're using the underlying blobs, the encoding is 'correct' anyway, so if the
    string range is invalid, we can just discard the inline diff highlighting. We
    still report to Sentry to ensure that we can investigate further in future.
    cdf3ae04
highlight.rb 2.57 KB