Ticket #277 (closed defect: fixed)
Opened 8 years ago
Last modified 6 years ago
Sort by name when browsing svn filesystem incorrect
| Reported by: | pw@… | Owned by: | jonas |
|---|---|---|---|
| Priority: | normal | Milestone: | 0.7 |
| Component: | version control/browser | Version: | 0.6.1 |
| Severity: | normal | Keywords: | |
| Cc: | |||
| Release Notes: | |||
| API Changes: | |||
Description (last modified by cboos) (diff)
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
Change History
comment:1 Changed 8 years ago by pw@…
comment:2 Changed 8 years ago by jonas
- Milestone set to 0.6.2
- Status changed from new to assigned
Thanks, I'll apply this patch later
comment:3 Changed 8 years ago by jonas
- Milestone changed from 0.6.2 to 0.7
- Resolution set to fixed
- Status changed from assigned to closed
Fixed in [448]. But only in trunk.
comment:4 Changed 6 years ago by anonymous
- Priority changed from normal to highest
comment:5 Changed 6 years ago by cboos
- Description modified (diff)
- Priority changed from highest to normal
This is not a test system.
comment:6 Changed 6 years ago by cboos
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']))