[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