diffviewer: better error message when repository encoding is wrong
Review Request #698 — Created Jan. 14, 2009 and submitted
When the repository's encoding is misconfigured (e.g. I had UTF-8 configured explicitly and so ISO-8859-15 fallback wasn't used), the resulting error from diffutils.convert_to_utf8() is confusing: local variable 'u' referenced before assignment Traceback (most recent call last): File "/srv/reviewboard/py/reviewboard/diffviewer/views.py", line 82, in view_diff files = get_diff_files(diffset, None, interdiffset, highlighting) File "/srv/reviewboard/py/reviewboard/diffviewer/diffutils.py", line 599, in get_diff_files enable_syntax_highlighting) File "/srv/reviewboard/py/reviewboard/diffviewer/diffutils.py", line 518, in generate_files lambda: get_chunks(filediff.diffset, File "/srv/reviewboard/py/djblets/util/misc.py", line 49, in cache_memoize data = lookup_callable() File "/srv/reviewboard/py/reviewboard/diffviewer/diffutils.py", line 521, in <lambda> enable_syntax_highlighting)) File "/srv/reviewboard/py/reviewboard/diffviewer/diffutils.py", line 335, in get_chunks old = convert_to_utf8(old, encoding) File "/srv/reviewboard/py/reviewboard/diffviewer/diffutils.py", line 198, in convert_to_utf8 return u.encode('utf-8') UnboundLocalError: local variable 'u' referenced before assignment It wasn't until I debugged the code that I realized it's a configuration problem. This patch adds a more understandable error message.