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
Received on 2009-12-10 17:55:11 CET