[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

answering Ben's question in libsvn_wc/versions.c

From: Karl Fogel <kfogel_at_galois.collab.net>
Date: 2000-09-25 21:39:00 CEST

Ben, I misunderstood your question in the source code just now -- in
fact, what you detected was a bug. I was opening a file for writing,
and then calling a function that would do the same thing again.
Badness! Thanks for spotting.

-K

> 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'
> file?!? */
>
> 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
> for it.
>
> -K
Received on Sat Oct 21 14:36:09 2006

This is an archived mail posted to the Subversion Dev mailing list.