#277 closed defect (fixed)
Sort by name when browsing svn filesystem incorrect
| Reported by: | Owned by: | Jonas Borgström | |
|---|---|---|---|
| Priority: | normal | Milestone: | 0.7 |
| Component: | version control/browser | Version: | 0.6.1 |
| Severity: | normal | Keywords: | |
| Cc: | Branch: | ||
| Release Notes: | |||
| API Changes: | |||
| Internal Changes: | |||
Description (last modified by )
The way a sort is done in Browser.py causes the display order of names in the view to be inconsistent with normal python string order, can be seen at http://projects.edgewall.com/trac/browser/tags/ where 0.6 is listed after 0.6.1.
The following patch fixes this by stripping the trailing / from the name before doing the comparison in the sort. May not be the best way to do it but gives the desired results.
—-Browser.py 2004-04-22 09:09:36.000000000 -0400 +++ ../../../python2.3/site-packages/trac/Browser.py 2004-04-22 09:12:51.000000000 -0400 @@ -144,9 +144,9 @@
elif order == 'Date':
info.sort(lambda y, x: cmp(xdate_seconds, ydate_seconds))
elif order == 'Name':
+ info.sort(lambda y, x: cmp(xname, yname))
else:
+ info.sort(lambda x, y: cmp(xname, yname))
# Always put directories before files info.sort(lambda x, y: cmp(yis_dir, xis_dir))
Attachments (0)
Change History (6)
comment:1 by , 22 years ago
comment:2 by , 22 years ago
| Milestone: | → 0.6.2 |
|---|---|
| Status: | new → assigned |
Thanks, I'll apply this patch later
comment:3 by , 22 years ago
| Milestone: | 0.6.2 → 0.7 |
|---|---|
| Resolution: | → fixed |
| Status: | assigned → closed |
Fixed in [448]. But only in trunk.
comment:4 by , 19 years ago
| Priority: | normal → highest |
|---|
comment:5 by , 19 years ago
| Description: | modified (diff) |
|---|---|
| Priority: | highest → normal |
This is not a test system.
comment:6 by , 19 years ago
Hm… I don't remember having changed the description… hope it's not a bug.



Sorry about the formatting…
--- Browser.py 2004-04-22 09:09:36.000000000 -0400 +++ ../../../python2.3/site-packages/trac/Browser.py 2004-04-22 09:12:51.000000000 -0400 @@ -144,9 +144,9 @@ elif order == 'Date': info.sort(lambda y, x: cmp(x['date_seconds'], y['date_seconds'])) elif order == 'Name': - info.sort(lambda y, x: cmp(x['name'].rstrip('/'), y['name'].rstrip('/'))) + info.sort(lambda y, x: cmp(x['name'], y['name'])) else: - info.sort(lambda x, y: cmp(x['name'].rstrip('/'), y['name'].rstrip('/'))) + info.sort(lambda x, y: cmp(x['name'], y['name'])) # Always put directories before files info.sort(lambda x, y: cmp(y['is_dir'], x['is_dir']))