Dan Christian <dchristian@google.com>

Found Patch
r869351, r868586, r865414 r871321, r870663, r869866, r869720, r869522, r866458, r866311, r865285, r864946, r864839

r864839 | epg | 2007-04-24 21:54:52 +0000 (Tue, 24 Apr 2007)

* subversion/libsvn_subr/io.c
  (svn_io_remove_dir): Remove all non-directory files, rather
  than just APR_REG files.

Patch by: Dan Christian <dchristian@google.com>

r864946 | cmpilato | 2007-05-01 18:23:30 +0000 (Tue, 01 May 2007)

Fix use of obsolete APIs.

* tools/examples/headrev.c: 
  (main): Update to use svn_ra_open2 and svn_ra_get_latest_revnum.

Patch by: Dan Christian <dchristian@google.com>

r865285 | epg | 2007-05-30 19:25:38 +0000 (Wed, 30 May 2007)

Avoid branching using uninitialized data (valgrind).

* subversion/libsvn_ra_serf/serf.c
* subversion/libsvn_ra_serf/update.c
  Initialize last_status_code when conn is created.

Patch by: Dan Christian <dchristian@google.com>

r865414 | hwright | 2007-06-08 21:16:29 +0000 (Fri, 08 Jun 2007)

* subversion/libsvn_ra_serf/log.c
  (svn_ra_serf__get_log): Fix parameter order to match declaration.

Found by: Dan Christian <dchristian@google.com>

r866311 | rooneg | 2007-08-21 22:29:03 +0000 (Tue, 21 Aug 2007)

Convert old svn_hash_read calls in fs_fs.c to new svn_hash_read2.  This
ends up saving 4 file system calls per transaction.  Much of the change
is concerned with handling the semantic difference betweent he two, where
svn_hash_read silently handles empty files and svn_hash_read2 does not.
This case is avoided by simply not creating the empty files in the first

Patch by: Dan Christian <dchristian@google.com>

* subversion/libsvn_fs_fs/fs_fs.c
  (svn_fs_fs__revision_proplist): Switch to svn_hash_read2, and fix a minor
   memory leak that happened if we retried on ESTALE.
  (get_txn_proplist, get_txn_mergeinfo): Open without APR_CREATE and switch
   to svn_hash_read2.
  (svn_fs_fs__change_txn_prop, svn_fs_fs__change_txn_mergeinfo): Handle
   file not existing yet.

r866458 | rooneg | 2007-08-29 19:17:50 +0000 (Wed, 29 Aug 2007)

If a test exits due to a signal, then show the signal number.  If the
test exits with a non-0 value, show the value.  This only has effect
in verbose mode and on platforms that return status values.

Patch by: Dan Christian <dchristian@google.com>

* subversion/tests/cmdline/svntest/main.py
  (spawn_process):  Fix exit code handling and add messages.

r868586 | glasser | 2007-12-17 20:09:14 +0000 (Mon, 17 Dec 2007)

Fix use of uninitialized pointer (introduced in r28403) in wc-to-repos
copy code mergeinfo calculation.

* subversion/libsvn_client/copy.c
  (wc_to_repos_copy): Don't add a mergeinfo property change element to
   outgoing_prop_changes unless we actually have mergeinfo.

Found by: Dan Christian <dchristian@google.com>
Review by: cmpilato

r869351 | glasser | 2008-02-11 21:17:39 +0000 (Mon, 11 Feb 2008)

Followup to r27098: fix potential segfault by using pools correctly.

* subversion/libsvn_fs_fs/fs_fs.c
 (svn_fs_fs__rev_get_root): Keep a string out of a pool that might
  be cleared.

Found by: epg
          Dan Christian <dchristian@google.com>

r869522 | epg | 2008-02-20 18:32:35 +0000 (Wed, 20 Feb 2008)

Expand ESTALE macros to cover two other recoverable error cases, and
rename them.

* subversion/libsvn_fs_fs/fs_fs.c
  (RETRY_RECOVERABLE): Rename from SVN_RETRY_ESTALE; also retry
    on NOENT and EIO; and expand comments.
  (IGNORE_RECOVERABLE): Rename from SVN_IGNORE_ESTALE and also ignore EIO.
  (read_current, svn_fs_fs__revision_proplist,
   get_and_increment_txn_key_body): Pass new filehandle argument to

Patch by: Dan Christian <dchristian@google.com>
(Tweaked by me.)

r869720 | glasser | 2008-02-29 21:58:32 +0000 (Fri, 29 Feb 2008)

* configure.ac:
  Rename enable_dso to use_dso so --enable-dso is truly ignored as an

Patch by: Dan Christian <dchristian@google.com>

r869866 | kfogel | 2008-03-08 01:31:58 +0000 (Sat, 08 Mar 2008)

Add some more information on the FSFS improvements.

* www/svn_1.5_releasenotes.html
  (fsfs-sharding): Edit.
  (fsfs-isolate-immutable): New section.

Patch by: Dan Christian <dchristian@google.com>
(Tweaked by me.)

r870663 | glasser | 2008-04-15 00:19:39 +0000 (Tue, 15 Apr 2008)

Configuration for apr_memcache.

The tricky bit here is that apr_memcache is distributed as a
standalone library but will also be in apr-util 1.3.

* Makefile.in
  Add substituted SVN_APR_MEMCACHE_* variables.

* aclocal.m4
  Include apr_memcache.m4.

* build.conf
  (libsvn_subr): Depend on apr_memcache.
  (apr_memcache): New.

* build/ac-macros/apr_memcache.m4

* configure.ac
  Run apr_memcache code, and define SVN_HAVE_MEMCACHE.

* gen-make.py
  Pass through and document --with-apr_memcache arg.

Patch by: Dan Christian <dchristian@google.com>

r871321 | glasser | 2008-05-16 23:15:06 +0000 (Fri, 16 May 2008)

On the in-memory-cache branch:

Fulltext caching!

Note: I didn't actually test this with memcached yet; will do so on
Monday.  Also, there should probably be a check for maximum size of
cached texts.

* subversion/libsvn_fs_fs/fs.h
  (fs_fs_data_t): Add fulltext_cache field.

* subversion/libsvn_fs_fs/caching.c
  (svn_fs_fs__initialize_caches): Set up fulltext cache.

* subversion/libsvn_fs_fs/fs_fs.c
  (struct rep_read_baton): Add fulltext_cache_key and current_fulltext
  (rep_read_get_baton): Add fulltext_cache_key argument; initialize
  (rep_read_contents): Append bytes to current_fulltext.  If done,
   store in cache.
  (read_representation): Check cache first.  Pass fulltext key to

* subversion/include/svn_cache.h
* subversion/libsvn_subr/cache-memcache.c
   The default serialization function now assumes values are
   stringbufs, not strings.

* subversion/include/svn_io.h
  (svn_stream_from_string): New.

* subversion/libsvn_subr/stream.c
  (stringbuf_stream_baton, read_handler_stringbuf,
   write_handler_stringbuf): Rename from string_stream_baton,
   read_handler_string, and write_handler_string.
  (string_stream_baton, read_handler_string, svn_stream_from_string):

Patch by: dberlin
          Dan Christian <dchristian@google.com>
(concept by dberlin and Dan Christian)