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

Re: ISSUE+PATCH: author & date of logentry can be empty in specific situation, problems with log.dtd & javahl

From: <kfogel_at_collab.net>
Date: 2005-08-17 20:25:42 CEST

Lieven Govaerts <lgo@mobsol.be> writes:
> I encountered a situation this morning ( which I first mailed to the
> users-list ) in which the xml generated by svn log --xml, and more
> specific svn_client_log2, is invalid.
>
> Consequences are:
> 1. Validation of xml with the current DTD files fails.
> 2. JavaHL bindings will crash the Java VM when parsing the xml!
>
> The situation is very specific, but easily reproduced with apache &
> subversion.
>
> I have a public repository at http://www.mobsol.be/svn/public, which is
> world readable. In that repository I have a branch branches/1.0, which
> is private, and can only be read with correct credentials.
>
> My svnaccess.conf:
> ...
> [public:/]
> * = r
> @publicdev = rw
>
> [public:/branches/1.0]
> *=
> @publicdev = rw
> ...
>
> My apache is configured to first try anonymous access to the repository
> for read-only actions:
> ( extract of httpd subversion.conf )
> ...
> <Limit GET PROPFIND OPTIONS REPORT>
> Satisfy any
> </Limit>
> ...
> Require valid-user
>
> This works without problem in most situations.
>
> But, when I request the log of this repository ( feel free to try ), I
> get:
>
> # svn log http://www.mobsol.be/svn/public
> ...
> ------------------------------------------------------------------------
> r14 | (no author) | (no date) | 1 line
>
> ------------------------------------------------------------------------
> r13 | (no author) | (no date) | 1 line
> ...
>
> Since the target of svn log is in the public zone, no credentials are
> asked. Later, revision 13 & 14 alter files in the branches/1.0 folder,
> which is private. Since no credentials were asked at first, svn log
> cannot read these specific revisions.

I don't quite understand this explanation.

Whether the target of 'svn log' requires credentials or not shouldn't
matter. The question is whether the *commit* (the one that resulted
in the revisions being displayed) required credentials.

In your last paragraph above, you seem to be saying that r13 and r14
alter files in a "private" folder, which I presume means a folder that
would require credentials for committing inside. Therefore, there
should be non-empty authors on those revisions.

Furthermore, regardless of whether authn credentials were submitted or
not, every revision should have a date. Thus, the only way I can
understand the output above is if someone went in and *deleted* the
'svn:date' revision property, and perhaps the 'svn:author' revprop as
well.

What's going on here? :-)

> This seems a bit tricky, but is understandable and probably correct
> behaviour.

As I understand it so far, it is not correct, or at least it is very
suspicious.

> The two consequenses:
> 1. When asking for XML output, this results in logentries with undefined
> author&date tags:
> ...
> <logentry
> revision="14">
> <msg></msg>
> </logentry>
> <logentry
> revision="13">
> <msg></msg>
> </logentry>
> ...
> This is not allowed according to log.dtd, so I guess this is a problem.

They don't appear to be "undefined", they appear to be "absent"! :-)

We could just include them, with empty content. But first I'd like to
know how the repository got into this situation in the first place.

-Karl

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Aug 17 21:24:55 2005

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

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