On Fri, 2009-12-04, Julian Foad wrote:
> I don't expect anyone to review the whole of this, but any comments
> would be welcome. It's about time I posted what I'm up to. It's not a
> "finished" patch, by any stretch of the imagination, so please don't
> commit it.

I fixed up a load of this and committed it in r889320.

> Concerns/unfinished business:
> 
>   - Should I be using the DAG layer to do these manipulations? Are there
>     DAG functions that already do such duplication, or part of it? I
>     found some that were useful, but don't understand what the
>     significant difference is between the DAG layer and other levels.
>     (I did read the description in <> section "".)

Not resolved, but I think the right direction is to call dag-layer
functions from revs-txns, and for the dag-layer functions to call down
further.

For now, I have put my helper functions in a separate file
subversion/libsvn_fs_base/obliterate.[ch].

>   - All the "dup" functions could take the old-txn-id as a parameter, and
>     only change txn-ids that match it. If there are any txn-id fields that
>     refer to the current txn in some cases but not in other cases, then
>     we need this, and need to compare with the old-txn-id to decide whether
>     to change it. Are there any such cases?

I think it's correct as is.

>   - I don't know whether I should change the copy-ids. I don't think I
>     should, because future revs refer to them, but I can't dup the copies
>     table rows in the same way unless I give them new copy-ids. If
>     necessary, I could possibly dup them to new ids and then translate
>     the new ids back to the old ones at "commit-obliteration" time.

Decided I should not change any copy-ids, and should just update the
existing entries in the copies table at oblit-commit time. Not done yet.

>   - In a normal txn, are the "changes" rows used and updated during txn
>     building, or only filled in at commit time? If the former, I need to
>     dup them at begin-obliteration-txn time; if the latter, at
>     commit-obliteration-txn time.

I think the latter, and added comments to that effect.

>   - In "rep_dup()", when I dup a child rep in a "rep window" (or "delta
>     chunk"), I need to set an "offset" field. I expect there's a
>     function I should be using to ensure that gets set correctly.

Not resolved.

- Julian


Reply via email to