djh in subversion

Add sasl library and debug symbols file to Windows distribution

for clients that desire static linking.

* build/win32/

(_disttree): Add libsasl files.

Fix Visual Studio meta-projects on VS2008.

* build/generator/

(Generator.write_project): Change the meta-project targets (such as

__ALL__) to Utility project types so they don't cause issues when building

with VS2008.

Add svnauthz-validate to Windows distribution.

* build/win32/

(_disttree): Add svnauthz-validate.

Add serf files to Windows distribution.

* build/win32/

(_disttree): Add serf license and lib.

Add new files to the windows binary distribution and use newer apr

binaries by default.

* build/win32/

(_disttree): Add cyrus-sasl binaries and license, svnmucc, svn-push,

svn-populate-node-origins-index, and openssl executables. Also fix

paths to javahl.

Fix sample VC6 build script.

* build/win32/

Correct zlibstaterr label name to match the goto,

and use setlocal / endlocal to limit the environment changes to the

duration of the script.

Patch by: Dave Lawrence <>

* www/faq.html (mod_dav_svn-win32): Add intl3_svn.dll to list.
Only generate X64 platforms on supported visual studio releases (Update

to r26854)

* build/generator/

(WinGeneratorBase) Only add x64 platform for VS2005 and VS2008

(move_proj_file) Provide platforms and configs data to project templates.

* build/generator/neon.vcproj.ezt

* build/generator/serf.vcproj.ezt

* build/generator/svn_locale.vcproj.ezt

* build/generator/zlib.vcproj.ezt

Use platforms to generate project files.

* build/generator/svn_config.vcproj.ezt

Use platforms and configs data to generate project file.

Patch by: Bert Huijben <>

Found by: Daniel <>

Fix compiler warnings on Windows.

Patch by: Hannes Eder <>

Tweaked by: me

* subversion/libsvn_subr/utf.c

(get_xlate_handle_node): Add cast.

(convert_to_stringbuf): Ditto.

Make generated solution and project files compatible with VS2008 and

MSBuild 3.5 if the --vsnet-version=2008 option is used.

Patch by: Bert Huijben <>

* build/generator/

Check for new version and use VS2005 solution template

* build/generator/

Allow more versions and set solution and project version for VS2008

Fixed a typo in the error case

* build/generator/vc2005_sln.ezt

Updated to insert "2005" or "2008" based on the selected version.


Updated --help documentation

Follow up to r27780. Fix the DLL build on Windows.

* build.conf

(libsvn_repos): Remove private\svn_repos_private.h

Add sqlite3.dll to the windows binary distribution.

* build/win32/

(_disttree): Add sqlite3.dll.

* packages/windows-innosetup/Readme.txt

Add path_sqlite to the 'Dynamic build data' section.

* packages/windows-innosetup/svn.iss

Add sqlite3.dll to [Files] section.

* packages/windows-innosetup/templates/svn_dynamics.iss

Define path to sqlite3.dll.

Patch by: G.J. Doornink

Fix to build Subversion with IPv6 support on Windows:

include the <winsock2.h> header file before <windows.h>.

* subversion/libsvn_subr/config_win.c,


Patch by: Stefan Küng <>

Add support for the x64 platform to the Windows build.

* build/generator/

Added 'x64' platform

* build/generator/neon.vcproj.ezt

* build/generator/serf.vcproj.ezt

* build/generator/svn_config.vcproj.ezt

* build/generator/svn_locale.vcproj.ezt

* build/generator/zlib.vcproj.ezt

Added 'x64' debug and release configurations

* build/generator/vcnet_vcproj.ezt

Fixed platform configuration generation to use [platforms] macro

instead of 'Win32'

* subversion/libsvn_subr/win32_crashrpt_dll.h

* subversion/libsvn_subr/win32_crashrpt.c

Use 5.1+ DbgHelp api to enable the crash handler on non x86 cpu's

Patch by: Bert Huijben <>

Followup to r25948.

* subversion/libsvn_subr/io.c

(file_open): Fix potential AS400 breakage by moving status variable

declaration to top of scope.

Followup to r25595 - fix another sporadic file i/o issue on Windows.

* subversion/libsvn_subr/io.c

(file_open): Use the retry loop when opening files.

* STATUS: Nominate r25520 and r25595
Fix sporadic file i/o issues on Windows that show up often in Vista.

The underlying problem is that deletes are asynchronous on Windows (files and

directories are not actually deleted until they have been closed by all

applications). For instance, this can cause us to fail creating a temp

directory we thought we successfully deleted.

* subversion/libsvn_subr/io.c

(WIN32_RETRY_LOOP): Add comment about async delete's on Windows and add

another return code they can cause to the list of return codes we retry on.

(svn_io_make_dir_recursively): Add the retry loop to creating directories.

(svn_io_remove_dir2): Stop doing the rewind workaround on Windows.

(dir_make): Add the retry loop to creating directories and don't fail the

whole call if stat returns an error (or incomplete) when we're trying

to set the sgid bit.

Followup to r21357.

Suggested by: Malcolm Rowe <>

* subversion/libsvn_fs/fs-loader.c

(get_library_vtable_direct, svn_fs_create, svn_fs_open,

svn_fs_recover, svn_fs_create_berkeley, svn_fs_open_berkeley):

Change prioritization of error returned if we get a mutex-release

error as well as an error from the serialized function call. The

function call error will be returned. Also corrected an

indentation mistake.

Followup to r25137.

* subversion/libsvn_fs/fs-loader.c

(get_library_vtable_direct): Remove unused status variable.

Fix the undefined behavior invoked when the fs module is dynamically

unloaded and the bdb cache tries to clean itself up.

This occurred because the bdb cache was allocated in the global pool

which gets cleaned up *after* the fs module has been unloaded from

memory (meaning the cleanup hook code may or may not still

actually be there depending on what the OS does with the newly freed


The fix is to pass the fs module's common_pool down to the fs_base

and fs_fs module's init routines so that they can allocate fs global

stuff and know that they can clean it up before they are unloaded.

In addition, this changes the fs modules vtables to get rid of the

serialized_init function. Instead, we serialize open/create calls

passing them the common_pool and they then call their own init

functions internally as needed.

* subversion/libsvn_fs_base/bdb/env.h

(svn_fs_bdb__init): Add a pool parameter that we can use to store

the bdb cache in since it is fs module scoped.

* subversion/libsvn_fs_base/bdb/env.c

(svn_fs_bdb__init, bdb_init_cb): Add and use the new fs module

scoped pool for the bdb cache.

* subversion/libsvn_fs_base/fs.c

(fs_vtable): Drop serialized_init function.

(base_create, base_open, base_open_for_recovery): Add common_pool

parameter and pass it on to the internal init functions as needed.

(svn_fs_base__init): Add common_pool parameter and pass it on

to the underlying init functions.

* subversion/include/svn_fs.h:

(svn_fs_initialize): Update docs to note that undefined behavior can

result if the fs module is dynamically loaded and the bdb fs is used.

* subversion/include/private/svn_atomic.h

(svn_atomic__init_once): Add pool parameter.

* subversion/libsvn_fs/fs-loader.h

(fs_library_vtable_t): Add common_pool parameter to create, open

and open_for_recovery functions.

(fs_init_func_t): Add common_pool parameter.

(svn_fs_base__init, svn_fs_fs__init): Add common_pool parameter.

(fs_vtable_t): Get rid of the serialized_init function which is now called

internally by the open or create functions.

* subversion/libsvn_fs/fs-loader.c

(common_pool): Document usage changes for common_pool.

(serialized_init): Dropped and moved the best-effort common_pool init to...

(get_library_vtable_direct): here in order to init it earlier when

svn_fs_initialize is not called. Also pass the common_pool on

to the init function for the underlying fs module.

(acquire_fs_mutex, release_fs_mutex): New functions to get and drop

the mutex guarding the fs module's common_pool.

(svn_fs_create, svn_fs_open, svn_fs_recovery, svn_fs_create_berkeley,

svn_fs_open_berkeley): Pass the common_pool parameter on to the

underlying fs' functions after acquiring the fs mutex to serialize the


* subversion/libsvn_subr/atomic.c

(svn_atomic__init_once): Add pool parameter and pass it to

the init_func.

* subversion/libsvn_fs_fs/fs.c

(fs_vtable): Drop the serialized_init function which is now called internally

by the open/create/open_for_recovery functions as needed.

(fs_create, fs_open, fs_open_for_recovery): Add common_pool parameter

and pass it on to internal init functions as needed.

(svn_fs_fs__init): Add common_pool parameter.

Add support for building a ruby .gem file to the Win32 dist.

* build/win32/

(_make_dist): Call make_gem.rb to make a ruby .gem for the bindings.

Add imports missed but needed for changes in r24289.

Patch by: Jens Peters <>

* tools/backup/

Add missing imports.

Replace os.rmtree with the safe_rmtree implementation from the test

suite so that we can remove read-only files on Windows.

Suggested by: Chris Foote <>

Jens Peters <>

* tools/backup/

(chmod_tree): New method for setting permissions on a tree.

(safe_rmtree): New method for dropping possibly read-only directory trees.

* STATUS: Vote for r22209, approving it.
* COMMITTERS: Update my email address.
* STATUS: Nominate r23004.
Fix dependencies for VS200x solution generation.

Since we aren't generating the apr project files for VS200x anymore

we need to make sure the solution file we generate contains the

correct guids or else project dependencies will not work.

* build/generator/

(Generator.getguid): New method to get the guid of an existing project

if it has one.

(Generator.write): Use getguid if it is an external project and fall

back to makeguid as needed.

Fix illegal C89 variable declaration.

* subversion/libsvn_client/copy.c

(do_wc_to_wc_moves): Move variable declaration to top of scope.

On the merge tracking branch: Improve the error message when the path

to sqlite is not passed.

Patch by: Vivek Chenecharry <>

* build/generator/

(parse_options): Make sure the path to sqlite is specified.