Philip Martin <philip.mar...@wandisco.com> writes: > svnadmin create repo > svn import -mm repo/format file://$PWD/repo/A/f > svn co -r0 file://$PWD/repo wc > svn mkdir wc/A > svn st -u wc > > That's obviously a bug. It's crashing in make_file_baton: > > f->repos_relpath = svn_relpath_join(find_dir_repos_relpath(pb, pool), > f->name, pool); > > when find_dir_repos_relpath returns NULL. We could set f->repos_relpath > to NULL, which matched what happens for the directory baton for A, but > is that correct? find_dir_repos_relpath is returning NULL because the > "obstructing" A is not versioned, although there is an A in the > repository. I'm not sure what repos_relpath is supposed to represent > here. Is it the repository path associated with the name in the > repository, or the repository path associated with the node in wc.db?
There is a commment in find_dir_repos_relpath: /* Note that status->repos_relpath could be NULL in the case of a missing * directory, which means we need to recurse up another level to get * a useful relpath. */ if (status) return status->repos_relpath; but the code doesn't recurse. Should that if be changed to if (status && status->repos_relpath) return status->repos_relpath; If we do that does that mean that find_dir_repos_relpath can never return NULL as it always recurses up to some non-NULL path? Should we remove the "return NULL? -- uberSVN: Apache Subversion Made Easy http://www.uberSVN.com