Ben checked in this comment:
/* TODO: Karl... what makes these two file-open calls any different?
Won't they both result in opening the *same* `path/tmp/versions'
To answer: no, because the first call passes APR_READ, whereas the
second is an APR_WRITE call. Writes in the adm area *always* result
in a tmp file being opened; optionally, it will be atomically renamed
on close, or else you can sync it by hand (there's a function for
that) if the implementation requires that level of control.
So you can open an adm file for reading, and open it for writing at
the same time, and they won't conflict. This is useful (or anyway is
intended to be useful, and so far has been I think) because very often
one needs to read in an adm file and write it back out with a minor
change -- this is how in-place editing is done, given that Subversion
can't just invoke vi or emacs on the file. :-)
Hope that helps; this is sort of explained in wc.h, but the text could
be clearer about how things work, and I'd gladly accept a doc patch
Received on Sat Oct 21 14:36:09 2006