I (Julian Foad) wrote: [...] > I've converted svn_wc__open_writable_base() to use a generic temp dir > and unique file name, rather than a WC-1-specific path, and made all > three places use it for their WC-1 temp base file, it all still works. > > OK, that bit works. That's a bit neater. Committed in r919413.
A problem: In doing this, I made the temporary text-bases live at arbitrary paths rather than the special paths where they lived before. There is still one code path that looks on disk at the special text-base temp path, to see if there is a file there. After this change, there probably won't ever be. The code path is in workqueue.c:install_committed_file() - see it calling svn_wc__text_base_path(..., tmp=TRUE, ...) to find the special path. There is still one code path that *puts* a file at that special place. It is adm_crawler.c:svn_wc__internal_transmit_text_deltas(). I'm looking to see whether this is a real problem. It's remotely possible that the two remaining code paths (above) always go together and thus no problem, but that's unlikely. As the code paths are a little hard to follow, I may just end up assuming that there is a problem, and go on to fix it. My first thought on how to solve it is to somehow communicate the info that install_committed_file() needs in another way. (And, for completeness, change svn_wc__internal_transmit_text_deltas() to use an arbitrary path, and delete the "tmp=TRUE" option of svn_wc__text_base_path().) - Julian

