On Wed, 2010-10-06 at 09:32 +0100, Philip Martin wrote: > I'd like to enable NODES as a replacement for BASE_NODE and > WORKING_NODE. This would involve bumping the format number, and old > working copies would get automatically upgraded.
+1 from me, ASAP. We're still working on the op_depth support and it's more complex than I originally thought. It looks like doing this transition in two separate format bumps will be more expedient. Please give me 24h to change the order of NODES columns first - see separate email. - Julian > This is not the final NODES data model. It currently just uses > NODES.op_depth as 0 or 2 to indicate the equivalent of BASE_NODE and > WORKING_NODE. Another wc upgrade will be required in the future to > enable full op_depth behaviour. > > The advantages of the proposed upgrade include: dropping the > conditional code, having everyone exercise the new code. > > The disadvantages include: a wc upgrade, the testsuite is slightly > (maybe 2% on my machine) slower. > > If you build the current format 19 with SVN_WC__NODES then both NODES > and BASE_NODE/WORKING_NODE tables are created. DB writes modify both > NODES and BASE/WORKING and DB reads check that the same data is > obtained from NODES and BASE/WORKING. The regression tests pass like > this so we have confidence that NODES is an adequate replacement for > BASE/WORKING. > > If you build format 19 with both SVN_WC__NODES and SVN_WC__NODES_ONLY > then only the NODES table is written and read, BASE/WORKING remain > empty. The upgrade would be using this code, but would also enable > the upgrade and dropping of the BASE/WORKING tables. The change would > be the patch below: > > * subversion/libsvn_wc/wc.h > (SVN_WC__VERSION): Bump to 20. > > * subversion/libsvn_wc/wc.h > (STMT_UPGRADE_TO_20): Renamed from DISABLED_STMT_UPGRADE_TO_20 and > enabled, drop the "inherited" BASE_NODE format 99 stuff. [...]