Edgewall Software
Modify

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?.rstrip('/'), yname?.rstrip('/')))

+ info.sort(lambda y, x: cmp(xname?, yname?))

else:

  • info.sort(lambda x, y: cmp(xname?.rstrip('/'), yname?.rstrip('/')))

+ 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@…

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']))

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.

View

Add a comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
The resolution will be deleted. Next status will be 'reopened'
to The owner will be changed from jonas. Next status will be 'closed'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.