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