On 28 April 2015 at 18:32, Philip Martin <philip.martin_at_wandisco.com> wrote:
> Ivan Zhakov <ivan_at_visualsvn.com> writes:
>
>>>> SVN_ERR(svn_stream__create_for_install(&stream, deep_dir, pool, pool));
>>>> SVN_ERR(svn_stream_puts(stream, "stream1 content"));
>>>> + SVN_ERR(svn_stream_close(stream));
>>>> SVN_ERR(svn_stream__install_stream(stream,
>>>> final_abspath,
>>>> TRUE,
>>>
>>>
>>> Um, surely that can't be right? Using the stream after it's been closed?
>>>
>> I'm also find this behavior a little bit confusing, but this is how it
>> works now: install_stream should be closed before installing. Windows
>> implementation perform flush on close, while unix implementation
>> closes the file handle. The current callers (run_file_install in
>> workqueue.c:587) also closes install_stream before installing it.
>
> While svn_stream__install_stream doesn't explicitly document that a
> closed stream can be passed it is part of the documentation for
> svn_stream__install_get_info.
>
> The documentation for svn_stream__create_for_install appears to have got
> mangled:
>
> Creates as *INSTALL_STREAM a stream that once completed can be installed
> using Windows checkouts much slower than Unix.
>
> What does "can be installed using Windows checkouts much slower than
> Unix" mean?
>
I have no idea. This function was added in r1559758 [1] as preparation
to fix issue #4450 "Windows checkouts much slower then Unix" [2]. May
issue summary leaked to function docstring for some reason.
[1] https://svn.apache.org/r1559758
[2] http://subversion.tigris.org/issues/show_bug.cgi?id=4450
--
Ivan Zhakov
Received on 2015-04-28 17:39:12 CEST