RFC: tortoise strategy document, part 2

Alexander Belchenko bialix at ukr.net
Thu Apr 3 13:05:52 BST 2008

Mark Hammond пишет:
> -- start of new text --
> Performance considerations:
> ----------------------------
> The following discussions assume the "Hybrid Python and C++ implementation"
> strategy, discussed above, is chosen for implementation.  To recap, TSVN
                             IMO, you talk here about TBZR, not TSVN, right?

> becomes a C++ implemented DLL using RPC to talk to a Python implemented
> "server" which does all BZR work.
> As discussed above, the model used by Tortoise is that most "interesting"
> things are done by external applications.  TSVN does show read-only columns

But I'm not sure about this one. Is it also should be read as TBZR?

> We will also allow all of the above to be disabled via user preferences.
> Thus, Icon Overlays could be disabled if it did cause a problem for some
> people, for example.

Completely agree.

> Vista versus XP
> ------------------
> Let's try and avoid an OS advocacy debate :)  But it is probably true that
> TBZR will, over its life, be used by more Vista computers than XP ones.  In
> short, Vista has changed a number of shell related interfaces, and while
> TSVN is slowly catching up (http://tortoisesvn.net/vistaproblems) they are a
> pain.
> XP has IColumnProvider (as implemented by Tortoise), but Vista changes this
> model.  The new model is based around "file types" (eg, .jpg files) and it
> appears each file type can only have 1 provider!  TSVN also seems to think
> the Vista model isn't going to work (see previous link).  It's not clear how
> much effort we should expend on a column system that has already been
> abandoned by MS.  I would argue we spend effort on other parts of the system
> (ie, the external GUI apps themselves, etc) and see if a path forward does
> emerge for Vista.  Re can re-evaluate this based on user feedback and more
                      "Re" or "We"?

> information about features of the Vista property system.
> Implementation plan:
> --------------------
> * Design the RPC mechanism used for icon overlays (ie, binary format used
> for communication)
> * Create Python prototype of the C++ "shim": modify the existing TBZR Python
> code so that all references to "bzrlib" are removed.  Implement the client
> side of the RPC mechanism and implement icon overlays using this RPC
> mechanism.
> * Create initial implementation of RPC server in Python.  This will use
> bzrlib, but will also maintain a local cache to achieve the required
> performance.  The initial implementation may even be single-threaded, just
> to keep synchronization issues to a minimum.
> * Analyze performance of prototype.  Verify that technique is feasible and
> will offer reasonable performance and user experience.
> * Implement C++ shim: replace the Python prototype with a light-weight C++
> version.  We would work from the current TSVN sources, including its new
> support for sharing icon overlays.  Advice on if we should "fork" TSVN, or
> try and manage our own svn based branch in bazaar are invited.
> * Implement property pages and context menus in C++.  Expand RPC server as
> necessary.
> * Create binary for alpha releases, then go round-and-round until its baked

I'm impressed too much.

More information about the bazaar mailing list