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

is svn_wc__loggy_append acceptable?

From: David Glasser <glasser_at_davidglasser.net>
Date: 2007-10-26 19:43:15 CEST

loggy commands are supposed to be either idempotent (ie, ok to rerun)
or evident if it's already been done. svn_wc__loggy_append is none of
those. There's no way to know if you've already appended one file to
another. (Additionally, the append operation itself isn't atomic, so
if you cancel while the file is only part-appended, you'd get a
half-written file.)

The good news is it's only used for the relatively unimportant task of
writing a human-legible *.prej file. Should we try to remove it and
use something else there? Or mark it with a big "do not use for
anything where you care about data consistency" comment? Removing it
would be pretty simple; instead of doing:

  * loggily append reject_tmp to reject_real

we would just do

  * copy reject_real to a new reject_current_tmp file
  * append reject_tmp to reject_current_tmp
  * loggily rename reject_current_tmp to reject_real

(Also, the cp_and_translate implementation also runs a
maybe_set_read_only and a maybe_set_executable at the end, but if you
cancel after the copy but before these maybes, they'll be skipped on
rerun. Perhaps they should be removed and any caller should be
writing separate loggys for these "maybe" commands? There's even
already loggy functions for them.)

--dave

-- 
David Glasser | glasser_at_davidglasser.net | http://www.davidglasser.net/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Oct 26 19:43:32 2007

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