svn-summit
Wiki: DayTwoAgenda

Edit this page | Links to this page | Page information | Attachments | Refresh page

 

Day Two: October 15, 2008

Goals

Continue topic exploration from DayOneAgenda.

Agenda

Greg's Keynote

Great job, Greg.

Topic Exploration

Unicode encoding

Problem Definition
  • Currently broken due to NFC/NFD issues
  • Shows up on OSX today, who knows where else tomorrow
  • Sounds like we need to do two things:
    1. Solution for todays repositories where encoding is not normalized.
    2. Better solution for new repository format where encodings are normalized.

Old Repos

New Repos

Old WC

Same as current

New WC

Fully normalized

Phased Switchover

Tackle working copy first and eventually normalize everything. This should fix OSX while giving a path for future.

  • Phase 1
    1. Server would need to be enhanced when receiving a decomposed file to reject commit if it already had the composed version.
    2. Client would need to continue to send decomposed format for new files. Maintains compat with older clients.
    3. Client would need to send "repos format" back to server on commits.
    4. Client would need to perform encoding insensitive comparisons and normalize path strings used in hash keys.
  • Phase 2 == fully normalized storage (might require "2.0" due to changing API and protocol expectations)

Server-imposed Policies/Configs

  • global ignores
  • auto-props/enable
  • log msg template
  • client-side hooks
  • use-commit-times
  • no-unlock

Server-side hook script that received paths for operation and returns configuration. Client would store this in WC root. Checkout, Update and Commit would all need to call this new RA API to get the latest config.

Administrator, via logic of script, decides the settings to send to client. Paths will be available to hook script to allow path-based differences in the output.

WC-NG

Erik gave an overview of his initial concerns with libsvn_wc (which cmpilato, inspired by his local environment, joked meant "libsvn_watercloset"). Initial (primary) problem was that the WC lacked true design and definition. (It has since been opined that perhaps there should never have been a libsvn_wc, but that this functionality should have just been part of libsvn_client.)

Some problems for near-term correction:

  • node type changes not consistently handled
  • scheduled tree replace + subtree delete not modeled
  • shared working copies not working
  • ...

Future goals:

  • offline commits

Other open WC items:

  • no guarantee user doesn't change file between file save and final commit

We delved off into a discussion about upgrading working copy formats -- how to avoid having to do it so often (futureproofing); how Greg anticipates the WC-NG code handling it; and so on.


See DayThreeAgenda for the continuation of this topic exploration, or go back to FrontPage

DayTwoAgenda (last edited 2008-10-15 14:59:42 -0700 by ?cmpilato)