0 Content
=========

1 Introduction
2 Condensed list of defines and environment variables
3 Defines tweaking SVN defaults
4 Defines enabling or disabling features
5 Defines controling debug support
6 Defines that affect unit tests
7 Environment variables


1 Introduction
==============

This is a document intended for use by Subversion developers only.
In particular, interface naming rules do not apply here. I.e. even
SVN_* identifiers are not part of the public API unless declared
as public in some public header file.

The SVN source code boasts a number of enviroment variable or C pre-
processor enabled tweaks that are mainly aimed at developer support.
If you introduce new ones, please document them here.

Macros documented in the configure-generated ../subversion/svn_private_config.h
file are not repeated here.

2 Defines and Environment Variables
===================================

2.1 Defaults

DEFAULT_FS_TYPE
DEFAULT_HTTP_LIBRARY
MAX_SECS_TO_LINGER
SUFFIX_LINES_TO_KEEP
SVN_FS_FS_DEFAULT_MAX_FILES_PER_DIR
SVN_FS_FS_MAX_LINEAR_DELTIFICATION
SVN_FS_FS_MAX_DELTIFICATION_WALK
SVN_UNALIGNED_ACCESS_IS_OK

2.2 Features

CHECK_FOR_SAME_FILE
SVN_DIFF3_HAS_DIFF_PROGRAM_ARG
SVN_DISABLE_ENTRY_CACHE
SVN_MERGE__ALLOW_ALL_FORWARD_MERGES_FROM_SELF
SVN_USE_WIN32_CRASHHANDLER
SVN_DAV_SEND_VTXN_NAME
SVN_DISABLE_PREFIX_SUFFIX_SCANNING
SVN_FS_FS_DELTIFY_DIRECTORIES
SVN_FS_FS_DELTIFY_PROPS
SVN_SQLITE_MIN_VERSION_NUMBER
SVN_SQLITE_MIN_VERSION

2.3 Debugging Support

SVN_DBG_QUIET
SVN_DEBUG
SVN_CLIENT_COMMIT_DEBUG
SVN_DEBUG_CACHE_DUMP_STATS
SVN_DEBUG_CACHE_MEMBUFFER
SVN_DEBUG_DSO
SVN_DEBUG_WORK_QUEUE
PACK_AFTER_EVERY_COMMIT
DEBUG_DOUBLE_FREE
SERF_VERBOSE
SSL_VERBOSE
SVN_DEPRECATED
SVN_FS__TRAIL_DEBUG
SVN_UTF_NO_UNINITIALISED_ACCESS

2.4 Test-only

QUOPRINT_SVNDIFFS
SVN_ENABLE_DEPRECATION_WARNINGS_IN_TESTS
TEST16K_ADD

2.5 Environment Variables

SVNSYNC_UNSUPPORTED_STRIP_MERGEINFO
SVNSYNC_UNSUPPORTED_MIGRATE_SVNMERGE
SVN_I_LOVE_CORRUPTED_WORKING_COPIES_SO_DISABLE_RELOCATE_VALIDATION
SVN_I_LOVE_CORRUPTED_WORKING_COPIES_SO_DISABLE_SLEEP_FOR_TIMESTAMPS
SVN_I_LOVE_PANGALACTIC_GARGLE_BLASTERS
SVN_I_LIKE_LATENCY_SO_IGNORE_HTTPV2


3 Defines tweaking SVN defaults
===============================

3.1 DEFAULT_FS_TYPE

  Scope:     (global)
  Purpose:   selects the default FS type to be used for a new repository
             if no type is provided
  Range:     strings "fsfs", "bdb"
  Default:   "fsfs"
  Suggested: "fsfs"

3.2 DEFAULT_HTTP_LIBRARY

  Scope:     (global)
  Purpose:   selects the default http library to be used for accessing
             remote repositories using http/https protocol
  Range:     strings "serf", "neon"
  Default:   "serf"
  Suggested: "serf"

3.3 MAX_SECS_TO_LINGER

  Scope:     svn protocol
  Purpose:   
  Range:     
  Default:   30
  Suggested: 

3.4 SUFFIX_LINES_TO_KEEP

  Scope:     libsvn_diff
  Purpose:   control the identical prefix / identical suffix diff(blame)
             optimizations.
  Range:     natural integers
  Default:   50
  Suggested: 0, 1, 999999

3.5 SVN_FS_FS_DEFAULT_MAX_FILES_PER_DIR

  Scope:     libsvn_fs_fs
  Purpose:   set fsfs default shard size
  Default:   1000
  Range:     natural integers
  Suggested: 1, 2, 3, 4, 5, 7, 11

3.6 SVN_FS_FS_MAX_LINEAR_DELTIFICATION

  Scope:     libsvn_fs_fs
  Purpose:   Controls the space efficiency vs. reconstruction costs tradeoff
             of rep deltification.  Defines the max length of the linear
             deltification history before skip-deltification kicks in.
             Values < 2 result in skip-delta-only behavior.
  Default:   16
  Range:     natural integers; should be a power of 2
  Suggested: 1, 4, 8, 16, 32, 64

3.7 SVN_FS_FS_MAX_DELTIFICATION_WALK

  Scope:     libsvn_fs_fs
  Purpose:   Limits the skip deltification range to provide commit runtime
             guarantees. Change histories longer than that will be restarted
             with a fulltext.  Values < 1 disable deltification.
  Default:   1023
  Range:     natural integers; should be a power of 2 minus one
  Suggested: 0, 63, 1023, 4095, 16383

3.8 SVN_UNALIGNED_ACCESS_IS_OK

  Scope:     (global)
  Purpose:   enable data accesss optimizations.
             If your target CPU supports unaligned memory access without
             significant performance penalties, you should enable this
             optimization as it allows for processing 4 or 8 bytes at
             once instead of just one byte at a time. 
  Range:     0 1
  Default:   platform dependant (see svn_types.h)
  Suggested: 0


4 Defines enabling or disabling features
========================================

4.1 CHECK_FOR_SAME_FILE

  Scope:     libsvn_subr (file copy)
  Purpose:   Test whether we try to do no-op file copies. If defined, 
             svn_io_copy_file() will return an error when source and
             destination are the same file.
  Range:     definedness
  Default:   not defined
  Suggested: not defined

4.2 SVN_DIFF3_HAS_DIFF_PROGRAM_ARG

  Scope:     libsvn_subr
  Purpose:   
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined

4.3 SVN_DISABLE_ENTRY_CACHE

  Scope:     libsvn_wc
  Purpose:   If defined, ADM entries will not be cached.
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined

4.4 SVN_MERGE__ALLOW_ALL_FORWARD_MERGES_FROM_SELF

  Scope:     libsvn_client
  Purpose:   
  Range:     definedness
  Default:   not defined
  Suggested: not defined

4.5 SVN_USE_WIN32_CRASHHANDLER

  Scope:     libsvn_subr
  Purpose:   Define this in the Win32 platform if you want to enable the
             crash handler allowing for post-mortem analysis after fatal
             application failures.
  Range:     definedness
  Default:   defined (Windows only), not defined (elsewhere)
  Suggested: defined (Windows only), not defined

4.6 SVN_DAV_SEND_VTXN_NAME

  Scope:     libsvn_ra_serf, libsvn_ra_neon
  Purpose:   Testing VTXN name for v2 commits.
             Defining this causes the client to send a VTXN name header.
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined

4.7 SVN_DISABLE_PREFIX_SUFFIX_SCANNING

  Scope:     libsvn_diff
  Purpose:   Define this symbol to disable the prefix/suffix scanning
             of the diff processing, letting all lines be handled by the
             full-fledged diff algorithm (with LCS algorithm). This define
             can be useful for focusing on testing the LCS algorithm, or
             for comparing diff performance with and without prefix/suffix
             scanning.
  Range:     definedness
  Default:   not defined
  Suggested: not defined

4.8 SVN_FS_FS_DELTIFY_DIRECTORIES

  Scope:     libsvn_fs_fs
  Purpose:   Define this symbol to enable directory deltification in FSFS.
             When activated, previous versions of Subversion will still be
             able to read from and write to this repository.
  Range:     definedness
  Default:   not defined
  Suggested: defined

4.9 SVN_FS_FS_DELTIFY_PROPS

  Scope:     libsvn_fs_fs
  Purpose:   Define this symbol to enable node property deltification in
             FSFS.  When activated, previous versions of Subversion will
             still be able to read from and write to this repository.
  Range:     definedness
  Default:   not defined
  Suggested: not defined

4.10 SVN_SQLITE_MIN_VERSION_NUMBER

  Scope:     libsvn_subr
  Purpose:   The minimum SQLite version to have run-time support for.
  Range:     SQLite version numbers, as packed integers
  Default:   SQLITE_VERSION_NUMBER (i.e., the compile-time-sqlite version)
  Suggested: not defined (to use default)

4.11 SVN_SQLITE_MIN_VERSION

  Scope:     libsvn_subr
  Purpose:   See SVN_SQLITE_MIN_VERSION_NUMBER.  The two must be overridden
             (or not overridden) together; defining one but leaving the other
             at its default will cause undefined behaviour.
  Range:     SQLite versions, as string literals
  Default:   SQLITE_VERSION
  Suggested: not defined (to use default)


5 Defines controling debug support
==================================

5.1 SVN_DBG_QUIET

  Scope:     (global)
  Purpose:   Reduce noise created by SVN_DBG() statements.
             Defining this symbol in the source file, before including
             svn_debug.h, will switch off the debug output issued by 
             SVN_DBG. Calls will still be made to svn_dbg__preamble() 
             for breakpoints.
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined

5.2 SVN_DEBUG

  Scope:     (global)
  Purpose:   Enables various, debug-mode-only checks and other development
             code. Never define this in release builds.
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined

5.3 SVN_CLIENT_COMMIT_DEBUG

  Scope:     libsvn_client
  Purpose:   Enables detailed client-side SVN_DBG output during commits.
  Range:     definedness
             (if defined, SVN_DEBUG must be defined as well)
  Default:   not defined
  Suggested: defined, not defined

5.4 SVN_DEBUG_CACHE_DUMP_STATS

  Scope:     FSFS
  Purpose:   Monitor FSFS object cache effectiveness.
             If defined, FSFS sessions will dump caching statistics
             to stdout just before the end of that session.
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined

5.5 SVN_DEBUG_CACHE_MEMBUFFER

  Scope:     membuffer_cache
  Purpose:   Detecting logic issues like key collisions etc. within
             the membuffer_cache.
             If you define this macro, the getter functions of the
             membuffer_cache will performed expensive checks on the 
             cached items, requested keys and entry types. If any 
             mismatch is detected, therespective getter will return
             an error.
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined

5.6 SVN_DEBUG_DSO

  Scope:     libsvn_subr (dso)
  Purpose:   detection of failures of dynamic loading of libraries
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined

5.7 SVN_DEBUG_WORK_QUEUE

  Scope:     libsvn_wc (workqueue)
  Purpose:   protocol workqueue operations via SVN_DBG
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined

5.8 PACK_AFTER_EVERY_COMMIT

  Scope:     libsvn_fs (only affects libsvn_fs_fs)
  Purpose:   stress test 
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined

5.9 DEBUG_DOUBLE_FREE

  Scope:     serf
  Purpose:   detect double-free calls to serf_bucket_mem_free()
  Range:     definedness
  Default:   defined
  Suggested: defined, not defined

5.10 SERF_VERBOSE

  Scope:     serf
  Purpose:   write protocol handling debug information to stdout
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined

5.11 SSL_VERBOSE

  Scope:     serf
  Purpose:   write SSL bucket handling debug information to stdout
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined

5.12 SVN_DEPRECATED

  Scope:     (everywhere)
  Purpose:   disable "deprecated function calls" warnings
  Range:     function declaration decorator
  Default:   (compiler dependant)
  Suggested: "" (disable deprecation warnings), or compiler-specific decorators

5.13 SVN_FS__TRAIL_DEBUG

  Scope:     libsvn_fs_base
  Purpose:   
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined

5.14 SVN_UTF_NO_UNINITIALISED_ACCESS

  Scope:     libsvn_subr
  Purpose:   Disables some code that triggers warnings in memory tools
             such as valgrind and address sanitizer.
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined

6 Defines that affect unit tests
================================

6.1 QUOPRINT_SVNDIFFS

  Scope:     svndiff-test
  Purpose:   
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined

6.2 SVN_ENABLE_DEPRECATION_WARNINGS_IN_TESTS

  Scope:     (all tests)
  Purpose:   
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined

6.3 TEST16K_ADD

  Scope:     client-test
  Purpose:   If defined, an expensive test will be activated that adds
             16384 files in single folder and commits that. This is used
             to detect performance abnormalies. Typical runtimes are 20
             to 200 seconds.
  Range:     definedness
  Default:   not defined
  Suggested: defined, not defined


7 Environment variables:
========================

7.1 SVNSYNC_UNSUPPORTED_STRIP_MERGEINFO

  Scope:     
  Purpose:   

7.2 SVNSYNC_UNSUPPORTED_MIGRATE_SVNMERGE

  Scope:     
  Purpose:   

7.3 SVN_I_LOVE_CORRUPTED_WORKING_COPIES_SO_DISABLE_RELOCATE_VALIDATION

  Scope:     
  Purpose:   

7.4 SVN_I_LOVE_CORRUPTED_WORKING_COPIES_SO_DISABLE_SLEEP_FOR_TIMESTAMPS

  Scope:     
  Purpose:   

7.5 SVN_I_LOVE_PANGALACTIC_GARGLE_BLASTERS

  Scope:     
  Purpose:   

7.6 SVN_I_LIKE_LATENCY_SO_IGNORE_HTTPV2

  Scope:     libsvn_ra_neon and libsvn_ra_serf, if SVN_DEBUG
  Purpose:   A "yes" value causes the RA modules to ignore the server's
             advertisement of HTTPv2 protocol support (if any), effectively
             causing them to only speak our original HTTP protocol.

7.7 SVN_SVNMUCC_IS_SVNSYITF

  Scope:     'make install-tools'
  Purpose:   Symlinks $prefix/bin/svnsyitf to $prefix/bin/svnmucc

7.8 SVN_X_DOES_NOT_MARK_THE_SPOT

  Scope:     svn_cache__t subsystem (used by FSFS, svnserve, etc)
  Purpose:   Disable the subsystem.  Requires -D SVN_DEBUG.

* (TODO: others)

