https://msdn.microsoft.com/en-us/library/ms235460.aspx
“Potential Errors Passing CRT Objects Across DLL Boundaries”

And really the first paragraph summarizes what happens here:
“When you pass C Run-time (CRT) objects such as file handles, locales, and 
environment variables into or out of a DLL (function calls across the DLL 
boundary), unexpected behavior can occur if the DLL, as well as the files 
calling into the DLL, use different copies of the CRT libraries.”

TortoiseSVN started to use a statically used CRT in all their .DLLs and just 
passed the CRT file handle of stdout between them.

They reverted to using a shared CRT in the latest builds which fixes these 
problems.

Bert


From: Fredrik Klasson
Sent: vrijdag 18 september 2015 13:36
To: b...@qqmail.nl
Cc: users@subversion.apache.org
Subject: Re: Redirection "svn info -r HEAD"


Ok thanks for the input :) Sounds reasonable to suspect CRT linkage issues 
since stdout/stderr I/O operations probably rely on the CRT behaving.
I'll see if a TortoiseSVN daily fixes the problem as soon as I get time. But if 
that doesn't fix it, so I should file a bug with TortoiseSVN instead then?

(Just out of curiosity, is there a particular set of bugs/mailinglist messages 
about the root cause for those CRT linkage problems? (being a developer I find 
it interesting to learn from other's linker/-age issues))

On Fri, Sep 18, 2015 at 11:47 AM, <b...@qqmail.nl> wrote:
The TortoiseSVN build of the commandline binaries in 1.9.0 and 1.9.1 have known 
issues. Please retry with another release (following the CRT linkage rules), or 
use a newer 1.9.x daily build of TortoiseSVN where the linkage problem is fixed.
 
I’m not sure if this fixes your specific problem, but I don’t have this known 
broken set of commandline binaries installed on my system. (I had to track a 
few similar cases earlier this week, all caused by this CRT linkage problem)
 
Bert
 

From: Fredrik Klasson
Sent: vrijdag 18 september 2015 11:34
To: users@subversion.apache.org
Subject: Redirection "svn info -r HEAD"
 
 
TL;DR: "svn info -r HEAD > testfile" produces and empty file with svn 1.9.1 on 
Windows. But svn 1.8.13 produces expected output in the file. Does this only 
happen for me?
 
When I updated to TortoiseSVN 1.9.1 (from 1.8.11), which uses svn 1.9.1 it 
seems redirection of "svn info -r HEAD" (or any other revision specification) 
no longer works for me in MS Windows. So I wonder if anyone else has 
experienced this too with subversion 1.9.1?
 
Some steps to reproduce the issue.
1. Install TortosieSVN 1.9.1
2. In a cmd.exe prompt with cwd being a svn working copy, type:
 svn info
(expected output)
 svn info > testfile
 type testfile
(output that matches running without redirection)
3. Then try with the revisionargument (using -r or --revision):
 svn info -r HEAD
(expected output)
 svn info -r HEAD > testfile
 type testfile
(nothing, i.e .file is empty; cf. running without the redirect)
 
And just for the sake of testing adding "--xml" makes svn info produce the 
expected output to the redirected file (that is "svn info -r HEAD --xml > 
testfile" works). So it seems only "plain"/"old" output is broken.
 
Downgrading to TortoiseSVN 1.8.11 which uses svn 1.8.13 makes "svn info -r HEAD 
> testfile" produce the expected file contents in the test file again.
 
For good measure, I've also tested building on a Linux machine, using 
subversion 1.9.1 (build from the svn tag/1.9.1). Redirection of "svn info -r 
..." works as expected with that build. (My distro uses 1.8.13 currently so 
that's why I build from vanilla sources to test that). So this seems to only 
affect Windows.
 
Some additional info:
OS version: Windows 7 Professional (x64)
 
I couldn't find any bug report for this, but maybe I just didn't ask the 
database the right question. I haven't had time to try to build trunk or 1.9.1 
vanilla on Windows, and I don't know if TortoiseSVN applies any patches on top 
of the svn it includes (I'd guess they do not apply any though).
 
Passing a path to a repo does not affect the behavior. Passing an invalid 
revision (e.g. "-r FOOBAR") produces an error message (as expected).
 
Cheers
/Fredrik
 
-- 
... a professor saying: "use this proprietary software to learn computer 
science" is the same as English professor handing you a copy of Shakespeare and 
saying: "use this book to learn Shakespeare without opening the book itself.
- Bradley Kuhn
 
 




-- 
... a professor saying: "use this proprietary software to learn computer 
science" is the same as English professor handing you a copy of Shakespeare and 
saying: "use this book to learn Shakespeare without opening the book itself.
- Bradley Kuhn


Reply via email to