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.


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_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

2.3 Debugging Support

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

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_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


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.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.6 DEBUG_DOUBLE_FREE

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

5.9 SERF_VERBOSE

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

5.10 SSL_VERBOSE

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

5.11 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.12 SVN_FS__TRAIL_DEBUG

  Scope:     libsvn_fs_base
  Purpose:   
  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.

* (TODO: others)

