Re: Switching from CVS to GIT
From: Eli Zaretskii <hidden>
Date: 2016-06-15 22:43:42
Date: Tue, 16 Oct 2007 13:39:12 +0100 (BST) From: Johannes Schindelin <redacted> cc: Daniel Barkalow <redacted>, raa.lkml@gmail.com, ae@op5.se, tsuna@lrde.epita.fr, git@vger.kernel.orgquoted
As I wrote in my other message, using native APIs improves performance by at least a factor of two.Somehow this does not appeal to my "portability is good" side. You know, if we had to do such trickeries for every platform we support, we'd soon be as big as Subversion *cough*.
You have to decide whether you care about performance enough to do that or not. If you do, then introducing file I/O abstractions at higher level than the normal ``use-library-functions'' method is not such a hard problem, and doesn't make the binary larger because each platform gets only its own backend. In practice, I have found that in most cases a few well-designed and strategically placed macros is all you need.
For me, this is the most annoying part about programming Win32. They went out of their way to make it incompatible with everything else, and as a consequence it is a PITA to maintain crossplatform programs.
Portability is a two-way street. A program that wasn't designed to be portable will by definition be hard to port. To me, what's annoying is a program that was designed around a single-OS model of APIs. Cross-platform programs are not that hard if you design them to be like that from the ground up. I'm working for a firm that does that for a living: we develop software that compiles and runs on Windows and Linux from the same source.
Explorer often accesses files it should not lock. On the machine I test msysGit on, this is the most common reason for a test case to fail: it cannot delete the temporary directory, which _should_ be unused. Indeed, a second after that, it _is_ unused.
One more reason not to launch Explorer, if you ask me ;-) But maybe you have valid reasons to do that. All I can say is that I never saw such problems, but then I don't usually run programs that rewrite files in a frenzy.