id,summary,reporter,owner,description,type,status,priority,component,severity,resolution,keywords,cc,release 5357,UnicodeDecodeError on UTF-8 encoded filenames,spoke,anonymous,"I just try the plugin version 0.11 on trac 0.11.1, 0.11.5 and trunk, and I allways get this error: Please, note that trac works fine if using SVN as backend. {{{ Trac detected an internal error: ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings. }}} {{{ Most recent call last: * File ""/usr/lib/python2.5/site-packages/Trac-0.12dev_r8263-py2.5.egg/trac/web/main.py"", line 464, in _dispatch_request Code fragment: 459. try: 460. if not env and env_error: 461. raise HTTPInternalError(env_error) 462. try: 463. dispatcher = RequestDispatcher(env) 464. dispatcher.dispatch(req) 465. except RequestDone: 466. pass 467. resp = req._response or [] 468. 469. except HTTPException, e: Local variables: Name Value after [u' except RequestDone:', u' pass', u' resp = ... before [u' try:', u' if not env and env_error:', u' raise ... dispatcher e ProgrammingError('You must not use 8-bit bytestrings unless you use a ... env env_error None exc_info (, ProgrammingError('You must ... filename '/usr/lib/python2.5/site-packages/Trac-0.12dev_r8263-py2.5.egg/trac/web/mai ... frames [{'function': '_dispatch_request', 'lines_before': [u' try:', u' ... has_admin True line u' dispatcher.dispatch(req)' lineno 463 message u'ProgrammingError: You must not use 8-bit bytestrings unless you use a ... req resp [] tb tb_hide None traceback u'Traceback (most recent call last):\n File ... * File ""/usr/lib/python2.5/site-packages/Trac-0.12dev_r8263-py2.5.egg/trac/web/main.py"", line 181, in dispatch Code fragment: 176. if not req.path_info or req.path_info == '/': 177. chosen_handler = self.default_handler 178. # pre-process any incoming request, whether a handler 179. # was found or not 180. chosen_handler = self._pre_process_request(req, 181. chosen_handler) 182. except TracError, e: 183. raise HTTPInternalError(e) 184. if not chosen_handler: 185. if req.path_info.endswith('/'): 186. # Strip trailing / and redirect Local variables: Name Value chosen_handler chrome err (, ProgrammingError('You must ... handler req self * File ""/usr/lib/python2.5/site-packages/Trac-0.12dev_r8263-py2.5.egg/trac/web/main.py"", line 317, in _pre_process_request Code fragment: 312. req.outcookie['trac_form_token']['secure'] = True 313. return req.outcookie['trac_form_token'].value 314. 315. def _pre_process_request(self, req, chosen_handler): 316. for filter_ in self.filters: 317. chosen_handler = filter_.pre_process_request(req, chosen_handler) 318. return chosen_handler 319. 320. def _post_process_request(self, req, *args): 321. nbargs = len(args) 322. resp = args Local variables: Name Value chosen_handler filter_ req self * File ""/usr/lib/python2.5/site-packages/Trac-0.12dev_r8263-py2.5.egg/trac/versioncontrol/api.py"", line 86, in pre_process_request Code fragment: 81. 82. def pre_process_request(self, req, handler): 83. from trac.web.chrome import Chrome, add_warning 84. if handler is not Chrome(self.env): 85. try: 86. self.get_repository(req.authname).sync() 87. except TracError, e: 88. add_warning(req, _(""Can't synchronize with the repository "" 89. ""(%(error)s). Look in the Trac log for more "" 90. ""information."", error=to_unicode(e.message))) 91. Local variables: Name Value Chrome add_warning handler req self * File ""/usr/lib/python2.5/site-packages/Trac-0.12dev_r8263-py2.5.egg/trac/versioncontrol/cache.py"", line 213, in sync Code fragment: 208. cursor.execute(""INSERT INTO node_change "" 209. "" (rev,path,node_type,change_type, "" 210. "" base_path,base_rev) "" 211. ""VALUES (%s,%s,%s,%s,%s,%s)"", 212. (str(next_youngest), 213. path, kind, action, bpath, brev)) 214. 215. # 1.3. iterate (1.1 should always succeed now) 216. self.youngest = next_youngest 217. next_youngest = self.repos.next_rev(next_youngest) 218. Local variables: Name Value action 'A' actionmap {'edit': 'E', 'add': 'A', 'move': 'M', 'copy': 'C', 'delete': 'D'} authz bpath '' brev None cset cursor db feedback None key 'youngest_rev' kind 'F' kindmap {'file': 'F', 'dir': 'D'} metadata {u'youngest_rev': u'', u'repository_dir': u'git:/home/www/git/test/.git'} name u'youngest_rev' next_youngest 'b4c60abd772d7c8192b8cf3f46d44978eccdc7b0' path 'doc/analysis/Metodolog\xc3\x83\xc2\xada de almacenamiento de datos en el ... repos_youngest '73f1a95e8d2a161987c16d56cb223e40666ee63b' repository_dir u'git:/home/www/git/test/.git' self value u'' * File ""/usr/lib/python2.5/site-packages/Trac-0.12dev_r8263-py2.5.egg/trac/db/util.py"", line 59, in execute Code fragment: 54. return self.cursor.execute(sql) 55. except Exception, e: 56. self.log.debug('execute exception: %r', e) 57. raise 58. if args: 59. return self.cursor.execute(sql_escape_percent(sql), args) 60. return self.cursor.execute(sql) 61. 62. def executemany(self, sql, args=None): 63. if self.log: 64. self.log.debug('SQL: %r', sql) Local variables: Name Value args ('b4c60abd772d7c8192b8cf3f46d44978eccdc7b0', ... self sql 'INSERT INTO node_change (rev,path,node_type,change_type, ... * File ""/usr/lib/python2.5/site-packages/Trac-0.12dev_r8263-py2.5.egg/trac/db/sqlite_backend.py"", line 59, in execute Code fragment: 54. raise 55. def execute(self, sql, args=None): 56. if args: 57. sql = sql % (('?',) * len(args)) 58. return self._rollback_on_error(sqlite.Cursor.execute, sql, 59. args or []) 60. def executemany(self, sql, args=None): 61. if args: 62. sql = sql % (('?',) * len(args[0])) 63. return self._rollback_on_error(sqlite.Cursor.executemany, sql, 64. args or []) Local variables: Name Value args ('b4c60abd772d7c8192b8cf3f46d44978eccdc7b0', ... self sql 'INSERT INTO node_change (rev,path,node_type,change_type, ... * File ""/usr/lib/python2.5/site-packages/Trac-0.12dev_r8263-py2.5.egg/trac/db/sqlite_backend.py"", line 51, in _rollback_on_error }}}",defect,closed,highest,GitPlugin,blocker,wontfix,,Xelnor,0.12