[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn log -r based on a start date suddenly no longer returns any revisions

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Fri, 29 Mar 2019 10:19:45 -0400

Nate Kerkhofs wrote on Fri, 29 Mar 2019 09:08 +00:00:
> Checking the tag revisions done yesterday through the other unit tests,
> all the dates of the revisions are monotonically increasing, with time
> between dates ranging from 2 seconds to 2 hours, but always increasing
> compared to the previous date. I'm not sure if any older revisions
> might be causing the issue, but I'm assuming that any commits that have
> been done a day or earlier before the issues occurred probably didn't
> cause it, because I assume they'd have triggered the issue earlier. I'm
> not sure about that last thing, but it seems logical.

I don't think that's right, actually. Suppose that revisions 0:100 have
monotonically-increasing dates, then somebody creates a revision with an
old date (r101), then somebody creates a normal r102, then development
goes on at a rate of one revision per day. Because of how binary search
works, the backdated r101 would have no effect on the resolution of "in
the distant past" dates for a long time (and even once it does fire, it
will afterwards go latent again, because of how the math works).

You probably have a large chunk of backdated revisions, not just one.

Try running these commands:

svn info --show-item=revision -r "{2008-01-01T00:00:00}" ^/
svn info --show-item=revision -r "{2019-02-20T10:21:03}" ^/

I think you might find that the first of these two commands gives a
revision number more recent than you'd expect, probably for the reasons
explained in Andreas's first reply.

> In case it could actually be one of the earlier revisions, are there
> any tricks or software I can use to test whether revisions are broken
> in this manner?

Iterate the revisions from 0 to HEAD and check if their svn:date values
are monotonically increasing. It's all of 10 lines of code in any
scripting language. (If you use 'propget svn:date' you won't even need
a date arithmetic library, because sorting ISO-8601 data as ASCII
strings sorts it chronologically.)

Cheers,

Daniel

P.S. (Humour detour: rfc2550)
Received on 2019-03-29 15:19:57 CET

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.