C. Michael Pilato wrote on Wed, Sep 21, 2011 at 12:13:17 -0400:
> On 09/21/2011 11:50 AM, C. Michael Pilato wrote:
> > Well, BDB being a real database, we can do this sort of backfill operation
> > without attending to any higher-level Subversion concepts such as revisions
> > at all. A cursor walk through the `nodes' table should suffice:
> >
> > for key, value in nodes_table.rows()
> > successor_id = key
> > node_rev = parse_node_revision_skel(value)
> > successors_table.add_row(node_rev.predecessor_id, successor_id)
>
> I should point out, though, that this approach is definitely *not* to be
> used on a live repository.
>
... because new entries might be inserted to NODES by concurrent
writers, and preventing that requires an exclusive lock that would
block concurrent readers and writers for too long?
> --
> C. Michael Pilato <cmpilato_at_collab.net>
> CollabNet <> www.collab.net <> Distributed Development On Demand
>
Received on 2011-09-21 18:59:43 CEST