[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:04:25 CEST

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.

Received on Sat Oct 21 14:36:09 2006

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