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

Re: Re: Re: Seeking possible reason for error by diff -r PREV

From: John Szakmeister <john_at_szakmeister.net>
Date: Mon, 26 Oct 2009 04:22:02 -0400

On Sun, Oct 25, 2009 at 7:55 AM, Kotaro Murakami <kmurakami_at_collab.net> wrote:
> Hi John and Stein,
>
> Thanks for the reply.
> I tryied "svn log file.cpp -l 1" and it returned r17535.

I'm not sure how that last part is relevant (maybe I missed something
else in the thread). 'svn diff' and 'svn log' don't take the same
paths through the repository backend.

> I have not dump the repos but did "svnadmin verify" and it returned no error.

If 'svnadmin verify' didn't fail, you may be okay (although if you're
using a more recent version of svn, I believe it's regressed in some
regards).

From your original email:
> svn: REPORT request failed on '/svnroot/・・・/file.cpp'
> svn: File not found: revision 10838, path '/・・・/file.cpp'
>
> I checked log of the file.cpp and the revisions in the logs look:
>
> r17535
> r16730
> r16152
> r14113
> r13155
> r12709
> r12130
> r11114 <- this is the first ci of this file
>
> Btw the BASE is 20422. Where did revision 10838 in the error message come from?
> So I thought that the diff command (diff -r PREV file.cpp) would compare r16730(PREV) and BASE.

It does, but how it gets there is another story. Deltas are stored on
the backend to help reduce the amount of storage required. Subversion
uses a technique called skip-deltas to avoid forming a long chain of
deltas that must be recombined to obtain the full text of the file.
That means the chain of deltas that form the full text for r17535 may
be different than the ones for r16730.

This error is coming from the backend because it expected to find
file.cpp in a revision, but didn't. It can get there one of two ways:
user error (you specified a wrong revision), or something is wrong in
the backend. I have seen some corruptions where a change was destined
for one revision (say X, and it even included most of the underlying
infrastructure) but the somehow got recorded in the changelog portion
of a different revision (usually X+1). I suspect you have a similar
issue here.

Without seeing a revision file, it'll be hard to help you any further.
 You can send them to me off-list, or if they're large, post them
somewhere that I can grab them. I'd start with revision 10838... and
probably 11114. There's probably a few folks at collab.net that can
help you too.

-John

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2411289

To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_subversion.tigris.org].
Received on 2009-10-26 09:23:09 CET

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