Author: stefan2
Date: Mon May 9 20:54:37 2011
New Revision: 1101219
URL: http://svn.apache.org/viewvc?rev=1101219&view=rev
Log:
* notes/knobs: reformat; add all SVN-specific defines used by #ifdef or #ifndef
Modified:
subversion/trunk/notes/knobs
Modified: subversion/trunk/notes/knobs
URL:
http://svn.apache.org/viewvc/subversion/trunk/notes/knobs?rev=1101219&r1=1101218&r2=1101219&view=diff
==============================================================================
--- subversion/trunk/notes/knobs (original)
+++ subversion/trunk/notes/knobs Mon May 9 20:54:37 2011
@@ -1,62 +1,339 @@
+0 Content
+=========
-This files documents various debugging knobs in Subversion.
-
-The usual namespace rules apply: only names that begin with "SVN_" and don't
-contain double underscores are considered part of the public API. Everything
-else is not officially supported.
-
-Compile-time:
-=============
-
-* SUFFIX_LINES_TO_KEEP
- Scope: libsvn_diff
- Purpose: control the identical prefix / identical suffix diff(blame)
optimizations.
- Range: natural integers
- Default: 50
+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
+==============
+
+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.
+
+The usual namespace rules apply: only names that begin with "SVN_"
+and don't contain double underscores are considered part of the public
+API. Everything else is not officially supported.
+
+
+2 Defines and Environment Variables
+===================================
+
+2.1 Defaults
+
+DEFAULT_FS_TYPE
+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_SERF_SEND_VTXN_NAME
+
+2.3 Debugging Support
+
+SVN_DBG_QUIET
+SVN_DEBUG
+SVN_CLIENT_COMMIT_DEBUG
+DEBUG_CACHE_DUMP_STATS
+DEBUG_CACHE_MEMBUFFER
+DEBUG_WORK_QUEUE
+PACK_AFTER_EVERY_COMMIT
+DEBUG_DOUBLE_FREE
+SERF_VERBOSE
+SSL_VERBOSE
+
+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 MAX_SECS_TO_LINGER
+
+ Scope: svn protocol
+ Purpose:
+ Range:
+ Default: 30
+ Suggested:
+
+3.3 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
-* PACK_AFTER_EVERY_COMMIT
- Scope: libsvn_fs (only affects libsvn_fs_fs)
- Purpose: stress test
- Range: boolean
-
-* SVN_DEPRECATED
- Scope: (everywhere)
- Purpose: disable "deprecated function calls" warnings
- Range: function declaration decorator
- Default: (compiler dependant)
- Suggested: "" (disable those warnings)
-
-* SVN_FS_FS_DEFAULT_MAX_FILES_PER_DIR
- Scope: libsvn_fs_fs
- Purpose: set fsfs default shard size
- Default: 1000
- Range: natural integers
+3.4 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
-* SVN_UNALIGNED_ACCESS_IS_OK
- Scope: ?
- Purpose: enable memory operations optimizations
- Range: boolean values (must be defined)
- Default: platform dependant
+3.5 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
-* (TODO: others)
-Environment variables:
-======================
+4 Defines enabling or disabling features
+========================================
+
+4.1 CHECK_FOR_SAME_FILE
+
+ Scope: libsvn_subr (file copy)
+ Purpose:
+ 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:
+ 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:
+ Range: definedness
+ Default: defined (Windows only), not defined (elsewhere)
+ Suggested: defined (Windows only), not defined
+
+4.6 SVN_SERF_SEND_VTXN_NAME
+
+ Scope: serf
+ Purpose:
+ Range: definedness
+ Default: not defined
+ Suggested: defined, 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:
+ Range: definedness
+ Default: not defined
+ Suggested: defined, not defined
+
+5.3 SVN_CLIENT_COMMIT_DEBUG
+
+ Scope: libsvn_client
+ Purpose:
+ Range: definedness
+ Default: not defined
+ Suggested: defined, not defined
+
+5.4 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 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 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
+
+
+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
-* 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
- 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.
+ 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)