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

Re: Text-base upgrades

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Tue, 29 Jun 2010 21:03:08 +0100

Greg Stein <gstein_at_gmail.com> writes:

> On Tue, Jun 29, 2010 at 13:44, Philip Martin <philip_at_codematters.co.uk> wrote:
>>...
>> Then the automatic upgrade process for 1.7 working copies should be
>> changed so that it only runs if the workqueues are empty.  If there
>> are outstanding workqueues the user is forced to run "svn cleanup".
>
> I've thought about this before, and I disagree.
>
> The code that runs the workqueues is "today's" code. It may not
> operate against an old working copy. The upgrade must happen before
> the code can properly function. (or we start making *everything*
> understand all versions of the working copy)
>
> The position that I've been assuming is that an upgrade process may
> need to alter outstanding workqueue items.

So that means we have to understand all possible workqueue items?

I suppose my system for running the workqueue has the same problem.
Perhaps we just have to say that upgrade is not possible with
outstanding workqueue items? The user must use an old client to run
cleanup.

> For the text-base upgrade, you could fail on a PRISTINE insert if it
> exists already and skip the text-base move (on the assumption that a
> "move" workqueue item was installed at the same time as the row).

The case that worries me is an interrupted update that is going to
replace the text-base:

$ sqlite3 wc1/.svn/wc.db "select * from work_queue"
11|(write-old-props 56 /home/pm/sw/subversion/obj/wc1/.svn/prop-base/f.svn-base ())
12|(write-old-props 52 /home/pm/sw/subversion/obj/wc1/.svn/props/f.svn-work)
13|(loggy 30 /home/pm/sw/subversion/obj/wc1 68 <mv
   dest=".svn/text-base/f.svn-base"
   name=".svn/svn-ZIxV3z"/>
)
14|(file-install 32 /home/pm/sw/subversion/obj/wc1/f 1 0 1 1)
15|(write-old-props 52 /home/pm/sw/subversion/obj/wc1/.svn/props/f.svn-work)

The workqueue has a loggy mv to replace f.svn-base, the existing
f.svn-base is already out-of-date. The pristine store is empty as
this is a format 16 wc. The current upgrade code will put the
out-of-date text-base into the pristine store, and ignore the new
text-base.

How do you see the upgrade working?

-- 
Philip
Received on 2010-06-29 22:03:55 CEST

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