Opened 14 years ago
Closed 10 years ago
#10597 closed defect (fixed)
GitPlugin: UnicodeDecodeError
| Reported by: | Peter Suter | Owned by: | Jun Omae |
|---|---|---|---|
| Priority: | lowest | Milestone: | 1.0.7 |
| Component: | plugin/git | Version: | |
| Severity: | normal | Keywords: | unicode windows |
| Cc: | Branch: | ||
| Release Notes: |
Fix |
||
| API Changes: | |||
| Internal Changes: | |||
Description
Created as part of the move of GitPlugin. Tickets originally reported for th:GitPlugin: th:#8087, th:#8944
Quoting Charger:
After commit in GIT repositiories file with cyrillic characters in filename and
cached_repository = true, Trac fails sync. Whencached_repository = falsetrac show error only on page, when he must show cyrillic filename.
This might be a configuration issue of git_fs_encoding.
Attachments (0)
Change History (5)
comment:1 by , 13 years ago
| Keywords: | unicode added |
|---|---|
| Milestone: | → next-stable-1.0.x |
| Priority: | normal → lowest |
comment:3 by , 11 years ago
| Keywords: | windows added |
|---|
comment:4 by , 10 years ago
| Milestone: | next-stable-1.0.x → 1.0.7 |
|---|---|
| Owner: | set to |
| Status: | new → assigned |
On Windows, viewing a file with unicode path using repository browser leads a UnicodeDecodeError.
2015-06-04 02:11:27,171 Trac[main] ERROR: Internal Server Error:
Traceback (most recent call last):
File "C:\usr\src\trac\trac.git\trac\web\main.py", line 534, in _dispatch_request
dispatcher.dispatch(req)
File "C:\usr\src\trac\trac.git\trac\web\main.py", line 227, in dispatch
resp = chosen_handler.process_request(req)
File "C:\usr\src\trac\trac.git\trac\versioncontrol\web_ui\browser.py", line 376, in process_request
node = get_existing_node(req, repos, path, rev_or_latest)
File "C:\usr\src\trac\trac.git\trac\versioncontrol\web_ui\util.py", line 74, in get_existing_node
return repos.get_node(path, rev)
File "C:\usr\src\trac\trac.git\tracopt\versioncontrol\git\git_fs.py", line 542, in get_node
return GitNode(self, path, rev, self.log, None, historian)
File "C:\usr\src\trac\trac.git\tracopt\versioncontrol\git\git_fs.py", line 655, in __init__
ls_tree_info = repos.git.ls_tree(rev, p) or None
File "C:\usr\src\trac\trac.git\tracopt\versioncontrol\git\PyGIT.py", line 770, in ls_tree
tree = self.repo.ls_tree('-z', '-l', rev, '--', path).split('\0')
File "C:\usr\src\trac\trac.git\tracopt\versioncontrol\git\PyGIT.py", line 121, in __execute
p = self.__pipe(git_cmd, stdout=PIPE, stderr=PIPE, *cmd_args)
File "C:\usr\src\trac\trac.git\tracopt\versioncontrol\git\PyGIT.py", line 114, in __pipe
close_fds=close_fds, **kw)
File "C:\usr\apps\python27\lib\subprocess.py", line 710, in __init__
errread, errwrite)
File "C:\usr\apps\python27\lib\subprocess.py", line 913, in _execute_child
args = list2cmdline(args)
File "C:\usr\apps\python27\lib\subprocess.py", line 644, in list2cmdline
return ''.join(result)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)
Because Popen() accepts only ANSI encoding on Windows. We should encode arguments of Popen() with mbcs encoding.
Proposed changes in [6803b460d/jomae.git] (jomae.git@t10597).
comment:5 by , 10 years ago
| Release Notes: | modified (diff) |
|---|---|
| Resolution: | → fixed |
| Status: | assigned → closed |



Link to a git repos demonstrating the issue welcome.