stef...@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