As an astute follower of commits@ will notice, I've started poking at
Editor v2 (Ev2). This is a brief mail to hopefully keep interested
parties aware of what I'm doing, and to solicit potential help.
Background: For those who don't know, Ev2 is a replacement API for the
ubiquitous "delta editor" throughout Subversion. Much like wc-ng,
it's designed with the benefit of 10 years of hindsight, and the hope
of both simplifying things and improving them moving forward. There
are some docs in notes/ and some on the mailing list, but the
canonical source of information is the header file: svn_editor.h.
With the hopes of eventually enabling some of the features that depend
upon it, I've started looking at implementing Ev2. *Unlike* wc-ng, I
think that Ev2 can be implemented in a modular fashion: we don't have
to rewrite all the editors in Subversion simultaneously. Part of that
modularity is a pair of shims, one from Ev2 to the delta editor, and a
reverse version. Protoversion of these can be found in
libsvn_delta/compat.c. In r1166900 I instrumented a large portion of
the Subversion code to optionally insert these shims when creating
delta editors to aid in testing (this is disabled by default). Once
the shims are written, we should be able to start looking at rewriting
individual editors.
I don't anticipate writing the shims to be difficult, just time
consuming, due to the differing paradigms between Ev2 and the delta
editor. I do expect these shims will introduce a bit of memory and
runtime overhead, which may limit our desire to use them in their
naïve form in a public release. The existing editors will serve as
the primary tests, with additional test cases in
libsvn_delta/editor-test.c
That's about all there is right now, but I figured folks would be
interested. I welcome any help, review, comments or questions as this
work goes forward.
Thanks,
-Hyrum
--
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com/
Received on 2011-09-08 23:06:41 CEST