[PATCH] [RFC] convert: fix --datesort

Kirill Smelkov kirr at mns.spb.ru
Thu Dec 20 02:03:47 CST 2007


В сообщении от 19 декабря 2007 04:51 Matt Mackall написал(a):
> On Wed, Dec 19, 2007 at 01:52:22AM +0300, Maxim Dounin wrote:
> > Hello!
> >
> > On Thu, 13 Dec 2007, Kirill Smelkov wrote:
> > > # HG changeset patch
> > > # User Kirill Smelkov <kirr at mns.spb.ru>
> > > # Date 1197567565 -10800
> > > # Node ID 7a1570348d6df8f59289eddaee9452393033b078
> > > # Parent  eb2f94f6aeabff1638e0ad3c46fcbe80bf4e8fc2
> > > [RFC] convert: fix --datesort
> > >
> > > The problem is that previously commit.date was used for sorting, but
> > > it's a string like "1 Jan xxx 2007", so it it wrong to use it for
> > > sorting.
> > >
> > > Another problem is that why we are using depth for sorting -- I have no
> > > clear answer -- it seems to be plain wrong.
> >
> > As far as I understand, depth is here to make sure parent changeset
> > always commited before it's child regardless of dates specified.
> >
> > I don't think dropping this invariant is a good idea.
>
> Indeed, and it fails tests in our test suite.
>
> But never fear, I already fixed it and pushed it to mainline.

I agree that commits habe to go after their parents, but sorting on depth is 
wrong too.

Consider we have two named branches A & B,

- then we do 100 commits on A
- then 1 commit on B
- then another 100 commits on A
- then another 1 commit on B

All these commits are ordered by date.

Then we try to do hg convert --datesort, and what we'll have?

not strictly correct, but this illustrates the bug:

1 commit on A,
1 commit on B
1 commit on A
1 commit on B
198 commits on A

And this is plain wrong, and I was beaten by that!

Look:

=== original glog ===

@  changeset:   10:d13683078e74
|  branch:      B
|  tag:         tip
|  parent:      5:54fe72894895
|  user:        Kirill Smelkov <kirr at mns.spb.ru>
|  date:        Thu Dec 20 10:58:54 2007 +0300
|  summary:     B2
|
| o  changeset:   9:cd3df9d52053
| |  branch:      A
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:58:28 2007 +0300
| |  summary:     A8
| |
| o  changeset:   8:31902c8e8a48
| |  branch:      A
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:58:20 2007 +0300
| |  summary:     A7
| |
| o  changeset:   7:e98309760c13
| |  branch:      A
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:58:10 2007 +0300
| |  summary:     A6
| |
| o  changeset:   6:18f46f05ab58
| |  branch:      A
| |  parent:      4:ec5820a8c2c1
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:57:56 2007 +0300
| |  summary:     A5
| |
o |  changeset:   5:54fe72894895
| |  branch:      B
| |  parent:      0:f4b2f3fbbaa9
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:56:49 2007 +0300
| |  summary:     B1
| |
| o  changeset:   4:ec5820a8c2c1
| |  branch:      A
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:55:55 2007 +0300
| |  summary:     A4
| |
| o  changeset:   3:7c6d41dced08
| |  branch:      A
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:55:48 2007 +0300
| |  summary:     A3
| |
| o  changeset:   2:9bb4aac192f3
| |  branch:      A
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:55:42 2007 +0300
| |  summary:     A2
| |
| o  changeset:   1:cd9458c9b6c0
|/   branch:      A
|    user:        Kirill Smelkov <kirr at mns.spb.ru>
|    date:        Thu Dec 20 10:55:35 2007 +0300
|    summary:     A1
|
o  changeset:   0:f4b2f3fbbaa9
   user:        Kirill Smelkov <kirr at mns.spb.ru>
   date:        Thu Dec 20 10:55:21 2007 +0300
   summary:     init


=== glog after 'convert --datesort' ===

o  changeset:   10:e9374b2608ee
|  branch:      A
|  tag:         tip
|  user:        Kirill Smelkov <kirr at mns.spb.ru>
|  date:        Thu Dec 20 10:58:28 2007 +0300
|  summary:     A8
|
o  changeset:   9:7d9e1603a6fb
|  branch:      A
|  user:        Kirill Smelkov <kirr at mns.spb.ru>
|  date:        Thu Dec 20 10:58:20 2007 +0300
|  summary:     A7
|
o  changeset:   8:31d97e8cfe32
|  branch:      A
|  user:        Kirill Smelkov <kirr at mns.spb.ru>
|  date:        Thu Dec 20 10:58:10 2007 +0300
|  summary:     A6
|
o  changeset:   7:cbfde5a12bf1
|  branch:      A
|  user:        Kirill Smelkov <kirr at mns.spb.ru>
|  date:        Thu Dec 20 10:57:56 2007 +0300
|  summary:     A5
|
o  changeset:   6:4734eb0bd13b
|  branch:      A
|  user:        Kirill Smelkov <kirr at mns.spb.ru>
|  date:        Thu Dec 20 10:55:55 2007 +0300
|  summary:     A4
|
o  changeset:   5:5bbf68d73eff
|  branch:      A
|  parent:      3:47019eb481c8
|  user:        Kirill Smelkov <kirr at mns.spb.ru>
|  date:        Thu Dec 20 10:55:48 2007 +0300
|  summary:     A3
|
| o  changeset:   4:bb2555c88a57
| |  branch:      B
| |  parent:      2:18de0c5ddaf0
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:58:54 2007 +0300
| |  summary:     B2
| |
o |  changeset:   3:47019eb481c8
| |  branch:      A
| |  parent:      1:6ca2ca71c041
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:55:42 2007 +0300
| |  summary:     A2
| |
| o  changeset:   2:18de0c5ddaf0
| |  branch:      B
| |  parent:      0:1ab6672b0df8
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:56:49 2007 +0300
| |  summary:     B1
| |
o |  changeset:   1:6ca2ca71c041
|/   branch:      A
|    user:        Kirill Smelkov <kirr at mns.spb.ru>
|    date:        Thu Dec 20 10:55:35 2007 +0300
|    summary:     A1
|
o  changeset:   0:1ab6672b0df8
   user:        Kirill Smelkov <kirr at mns.spb.ru>
   date:        Thu Dec 20 10:55:21 2007 +0300
   summary:     init


For completness

=== glog after 'convert' ===

o  changeset:   10:bb2555c88a57
|  branch:      B
|  tag:         tip
|  user:        Kirill Smelkov <kirr at mns.spb.ru>
|  date:        Thu Dec 20 10:58:54 2007 +0300
|  summary:     B2
|
o  changeset:   9:18de0c5ddaf0
|  branch:      B
|  parent:      0:1ab6672b0df8
|  user:        Kirill Smelkov <kirr at mns.spb.ru>
|  date:        Thu Dec 20 10:56:49 2007 +0300
|  summary:     B1
|
| o  changeset:   8:e9374b2608ee
| |  branch:      A
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:58:28 2007 +0300
| |  summary:     A8
| |
| o  changeset:   7:7d9e1603a6fb
| |  branch:      A
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:58:20 2007 +0300
| |  summary:     A7
| |
| o  changeset:   6:31d97e8cfe32
| |  branch:      A
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:58:10 2007 +0300
| |  summary:     A6
| |
| o  changeset:   5:cbfde5a12bf1
| |  branch:      A
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:57:56 2007 +0300
| |  summary:     A5
| |
| o  changeset:   4:4734eb0bd13b
| |  branch:      A
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:55:55 2007 +0300
| |  summary:     A4
| |
| o  changeset:   3:5bbf68d73eff
| |  branch:      A
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:55:48 2007 +0300
| |  summary:     A3
| |
| o  changeset:   2:47019eb481c8
| |  branch:      A
| |  user:        Kirill Smelkov <kirr at mns.spb.ru>
| |  date:        Thu Dec 20 10:55:42 2007 +0300
| |  summary:     A2
| |
| o  changeset:   1:6ca2ca71c041
|/   branch:      A
|    user:        Kirill Smelkov <kirr at mns.spb.ru>
|    date:        Thu Dec 20 10:55:35 2007 +0300
|    summary:     A1
|
o  changeset:   0:1ab6672b0df8
   user:        Kirill Smelkov <kirr at mns.spb.ru>
   date:        Thu Dec 20 10:55:21 2007 +0300
   summary:     init


This needs fixing!


--
	Всего хорошего, Кирилл.

BTW: I was not notified about my patch inclusion via rss. A bug?



More information about the Mercurial-devel mailing list