Please review the following patches in this branch. They will be merged into /trunk after passing the review. * r982335 Limit the amount of unused memory kept in apr_pools to the same amount as everywhere else, e.g. SVN.exe main(). Justification: (1) uniform handling of memory pools (2) Without this change, apr pools will fragment indefinitely (?) for strings (e.g. fulltexts) and other chunks larger than 80kB. This already happens on trunk if memcached usage has been enabled. * r984984 Reduce the number of revprop lookups during export and checkout by caching rev,author,timestamp triples locally in the report generation code. Justification: (1) Reduce I/O overhead, especially for pre-1.7 repos (2) Ensures consistent reports even if revprops get changed by concurrent accesses * r985472 Minimize the number of retry attempts when looking for an unused temporary file name. Justification: Some functions (e.g. svn export) request temp file names without any randomized sub-string in it, thus retries may take longer and longer. This seems to hurt SVN developers more often than ordinary users (process gets killed more frequently) but it also makes the client less sensitive to cluttered TEMP folders etc. * r985477 Eliminate OS overhead for determining the default permissions for temp files. Justification: Significant reduction in sys / OS overhead in svn export. * r985482 Reduce the calling overhead for svn I/O functions by inlining the APR result -> svn_error_t conversion wrapper. Justification: A very simple change that reduces the costs of our deep calling hierarchies. * r985500 Just another temp file name handling improvement: Use the already properly encoded file name information from the APR file instead of constructing it. Justification: Further reduction of the client-side overhead in svn export (and possibly others). * r985606 A somewhat larger change: Reduce the ra_svn de-marshalling overhead mainly by pre-allocating sufficient container capacity in various places. Justification: In LAN environments, the data processing on the client becomes a bottleneck for faster servers. * r986453 An even larger change: Speed up file translation by further optimizing the search for "interesting chars" and replacing EOLs only if they have actually changed (allowing for larger chunks of data per write output operation). Justification: Apart from the physical I/O and the MD5 translation, this is the most CPU-demanding part of an svn export. This patch more than doubles its performance. It should also speed up svn checkout by the same amount (not factor) of time. * r987888 Ignore files generated by MS VisualStudio 2010. Justification: Dev usability improvement. No functional changes.