#11180 closed defect (fixed)
Show incorrect properties if the file has unicode path in git repository
Reported by: | Jun Omae | Owned by: | Jun Omae |
---|---|---|---|
Priority: | normal | Milestone: | 1.0.2 |
Component: | plugin/git | Version: | 1.0-stable |
Severity: | normal | Keywords: | unicode |
Cc: | Branch: | ||
Release Notes: |
Fix incorrect property values for file with unicode path in git repository |
||
API Changes: | |||
Internal Changes: |
Description
If a file has unicode path in a git repository, Trac shows the incorrect properties for the file.
attachment:unicode-path-in-git-repos.png
Also, in that case, Python raises the following warning.
/home/jun66j5/src/trac/edgewall/tracopt/versioncontrol/git/PyGIT.py:884: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal if next_path == [path]:
Patch:
-
tracopt/versioncontrol/git/PyGIT.py
diff --git a/tracopt/versioncontrol/git/PyGIT.py b/tracopt/versioncontrol/git/PyGIT.py index 5b2354e..b33991a 100644
a b class Storage(object): 866 866 p = [] 867 867 change = {} 868 868 next_path = [] 869 base_path = self._fs_from_unicode(base_path) 869 870 870 871 def name_status_gen(): 871 872 p[:] = [self.repo.log_pipe('--pretty=format:%n%H', … … class Storage(object): 896 897 gen = name_status_gen() 897 898 898 899 def historian(path): 900 path = self._fs_from_unicode(path) 899 901 try: 900 902 return change[path] 901 903 except KeyError:
Attachments (1)
Change History (5)
by , 12 years ago
Attachment: | unicode-path-in-git-repos.png added |
---|
comment:1 by , 12 years ago
Owner: | set to |
---|---|
Status: | new → assigned |
comment:2 by , 12 years ago
Keywords: | unicode added |
---|---|
Release Notes: | modified (diff) |
Resolution: | → fixed |
Status: | assigned → closed |
Committed in [11799].
comment:3 by , 11 years ago
The test doesn't seem to like being executed on my system (Ubuntu 12.04, Trac 1.0-stable). I'll have to do some debugging after I finish my current task, but just wanted to post this now in case the issue might be obvious.
====================================================================== FAIL: test_get_historian_with_unicode_path (tracopt.versioncontrol.git.tests.PyGIT.UnicodeNameTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/user/Workspace/t11117/trac.git/tracopt/versioncontrol/git/tests/PyGIT.py", line 300, in test_get_historian_with_unicode_path historian)) AssertionError: '39395ca8b6d84017a7e01fec6e113f173cc4d559' != None ---------------------------------------------------------------------- Ran 1351 tests in 25.460s FAILED (failures=1) Exception TypeError: "'NoneType' object is not callable" in <function <lambda> at 0xd07380c> ignored
$ git --version
git version 1.7.9.5
comment:4 by , 11 years ago
Well, I haven't debugged it any further, but this is also what I've reported in #11198.
Added the patch and unit tests in log:jomae.git:ticket11180/1.0.2dev. I'll push it.