stefan2_at_apache.org wrote:
> Log:
> Make svn ls faster and more streamy on svn://
>
> * subversion/svnserve/serve.c
> (get_dir): don't collect entries but send them immediately
> + /* Fetch the directory entries if requested and send them immediately. */
> if (want_contents)
> {
> + const char *zero_date = svn_time_to_cstring(0, pool);
This looks wrong. Here you construct a date string something like "1 Jan 1970", to send if no date is available...
> + cdate = NULL;
> if ((dirent_fields & SVN_DIRENT_LAST_AUTHOR)
> || (dirent_fields & SVN_DIRENT_TIME)
> || (dirent_fields & SVN_DIRENT_CREATED_REV))
> {
> /* created_rev, last_author, time */
[...]
> SVN_CMD_ERR(svn_repos_get_committed_info(&entry.created_rev,
> &cdate,
> }
> + if (cdate == NULL)
> + cdate = zero_date;
[...]
> - if (cdate)
> - SVN_CMD_ERR(svn_time_from_cstring(&entry->time, cdate,
> - subpool));
> - else
> - entry->time = (time_t) -1;
> }
[...]
> - /* Write out response. */
> - if (want_contents)
> - {
> - for (hi = apr_hash_first(pool, entries); hi; hi = apr_hash_next(hi))
> - {
> - const char *name = svn__apr_hash_index_key(hi);
> - svn_dirent_t *entry = svn__apr_hash_index_val(hi);
>
> - cdate = (entry->time == (time_t) -1) ? NULL
> - : svn_time_to_cstring(entry->time, pool);
... but the original code used NULL as the value to send if there was no date.
- Julian
Received on 2012-03-06 12:56:57 CET