Defect #3567

Sorting for changesets might go wrong on Mercurial repos

Added by Ammler _ over 8 years ago. Updated almost 7 years ago.

Status:ClosedStart date:2009-06-30
Priority:NormalDue date:
Assignee:Toshi MARUYAMA% Done:

100%

Category:SCM
Target version:1.1.0
Resolution:Fixed Affected version:

Description

The DVCS Mercurial allows to commit changesets with configureable, i.e. with "hg ci -d "2222-10-20...", then the next changeset could have a earlier date. Of course, ususally it shouldn't happen, but it can, maybe only seconds but it does. :-)

So the sorting depend on revision number for Mercurial, Git doesn't have numbers (in Redmine), so it can't be used as general setting.

I don't know, if it's a bug or a feature request, feel free to decide that self. ;-)

Examples from 2 repos (the "bad" version is r137):

redmine_hg_sorting.png (22 KB) Ammler _, 2009-07-01 13:18

redmine-sort-by-date.png (12.8 KB) Toshi MARUYAMA, 2010-03-07 12:58

redmine-sort-by-revno.png (14.3 KB) Toshi MARUYAMA, 2010-03-07 12:58

hg-order-before.png (45.9 KB) Toshi MARUYAMA, 2010-10-08 12:27

hg-order-after.png (50.7 KB) Toshi MARUYAMA, 2010-10-08 12:27


Related issues

Related to Redmine - Defect #3449: Redmine Takes Too Long On Large Mercurial Repository Closed 2009-06-05

Associated revisions

Revision 4611
Added by Toshi MARUYAMA almost 7 years ago

Fixed: repository: mercurial: sort changesets by revision (#3449, #3567).

In DVCS, changesets are not in date order.
Because Mercurial backend inserts changesets from eariest, 'ORDER BY id'
means 'order by revision number'.

Contributed by Yuya Nishihara.

Revision 5644
Added by Toshi MARUYAMA over 6 years ago

scm: git: add comments of revision order in fetch_changesets().

Related issues.
#5357, #6013, #7146, #4773, #4547, #1406, #3449, #3567.

History

#1 Updated by Mischa The Evil over 8 years ago

Edited description to prevent unwanted output

#2 Updated by Ammler _ over 8 years ago

attached a screen with the "wrong" sorting, as the example repository above might change...

#3 Updated by Ammler _ over 8 years ago

following patch "fixes" the sorting for mercurial, but of course, it doesn't work anymore for git and maybe other VCS,
http://dev.openttdcoop.org/hg_sorting.diff

#4 Updated by Ammler _ over 8 years ago

He, usually, I have edit rights for tickets. ;-)

I totally forgot to mention the used revision: it is trunk r2778

#5 Updated by Toshi MARUYAMA over 7 years ago

I fix this problem at #4455 follwing patch.
http://www.redmine.org/issues/4455#note-56

#6 Updated by Yuya Nishihara over 7 years ago

It seems we can simply use ORDER BY id. At least, both Subversion and Mercurial insert changesets from earliest.

http://bitbucket.org/yuja/redmine-mq/src/tip/sort-changesets-by-id.diff

#7 Updated by Yuya Nishihara over 7 years ago

Yuya Nishihara wrote:

It seems we can simply use ORDER BY id. At least, both Subversion and Mercurial insert changesets from earliest.

No! It breaks git backend (#5357.) The patch needs updated to take effect only for Mercurial.

#8 Updated by Toshi MARUYAMA about 7 years ago

These are test repository images of hg-changeset-order.patch at http://www.redmine.org/issues/4455#note-144
This patch take effect only for Mercurial.

Before patch applied

After patch applied

#9 Updated by Toshi MARUYAMA almost 7 years ago

  • Assignee set to Toshi MARUYAMA
  • Target version set to 1.1.0

#10 Updated by Toshi MARUYAMA almost 7 years ago

  • Status changed from New to Closed
  • Resolution set to Fixed

Fixed in svn trunk by r4611 and 1.1 by r4612.

Also available in: Atom PDF