Make fsfs dumpfile converter output deltified windows, primarily to serve as an example for the real FSFS code.
Make fsfs dumpfile converter output deltified windows, primarily to
serve as an example for the real FSFS code.

* libsvn_fs_fs/make-revs.c
  (struct rep_poiner): Add text_len field to separate rep length
   from expanded length.  (Should have been done last time.)
  (struct parse_baton): Add delta_start field to track beginning of
   rep, since header now has variable length.  Add text_len to track
   expanded length.  Add delta_pool field since we're now allocating a
   lot of memory for a contents operation.  Eliminate the empty_stream
   field, which is no longer needed.
  (struct rep_state): New structure to track state as we read a single
   representation.
  (struct contents_baton): New structure to track the state as we
   expand a representation; contain.
  (init_rep): Initialize text_len field.
  (repstr): Output expanded length properly.
  (write_hash_rep): Set text_len field (same as len, in this case).
  (open_and_seek_rev): Convenience function to open a rev file at a
   specific offset.
  (parse_base_rep): Parse the contents of a DELTA header which
   specifies a delta base.
  (build_rep_list): Build a list of the delta reps leading up to a
   plain text or self-compressed delta rep.
  (get_combined_window): Compose the corresponding delta windows of
   the rep list until we reach one that doesn't need a delta source,
   or until we reach the end.
  (contents_read): Stream read handler for retrieving rep contents,
   using above helper functions.
  (get_contents): Produce a stream using the above read handler.
  (choose_delta_base): Walk the predecessor list of an entry to choose
   the appropriate base using the skip-delta algorithm.
  (text_write): Update text_len field.
  (text_close): Set text_len field.  Destroy the delta pool.
  (set_fulltext): Deltify against a base, using choose_delta_base and
   get_contents to retrieve the contents.  Create a pool for the
   delta.  Initialize the text_len field.
  (main): Don't initialize empty_stream, since we've punted it.

jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion