[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [TSVN] Speed optimizing the build process?

From: SteveKing <steveking_at_gmx.ch>
Date: 2005-08-07 19:17:31 CEST

Markus Schuh wrote:
> Since my build environment is awfully slow (> 12 hours for compiling
> all) I tried to speed optimize the build process in my installation of
> the TSVN sources.

Wow! 12 hours is really a *lot*! What are the specs of your machine?

> IMHO it is not necessary to always rebuild the subversion sources twice
> during the build. As soon as svn_private_config.h is changed the VS.NET
> project files should know which parts has to be recompiled. At least if
> the time stamp of the changed svn_private_config.h is newer than the
> time stamps of all already compiled *.obj files. Since
> svn_private_config.h is automatically build from svn_private_config.hw
> if it does not exist yet, it seems to be best to only delete
> svn_private_config.h after every change of svn_private_config.hw.

I know it's not necessary to rebuild twice. But it's just easier that way ;)

> Next change: In the "netless" subversion compile only the necessary
> libraries has to be compiled, so I don't compile "__ALL__" but these
> libraries one after the other. Since TSVN is a subversion client it
> should only need those libraries which other subversion clients use too.
> Therefore I changed the project in the "normal" subversion compile from
> "__ALL__" to "svn".

Even better would be if we just would compile the required library
projects. We don't need the 'svn' project either because that will build
the command line exe.

> At the moment I'm only testing. In dependence of your feedback I may try
> to produce a real patch. Here are only some of the batch lines which I
> use at the moment.

A real patch would very much be appreciated!

> ...
> if DEFINED _RELEASE (
> rem first, compile without any network/repository support
> echo building netless Subversion
> if EXIST subversion\svn_private_config.h del
> subversion\svn_private_config.h
> move /Y subversion\svn_private_config.hw
> subversion\svn_private_config_copy.hw
> copy /Y %startdir%\svn_private_config.h subversion\svn_private_config.hw
> if not EXIST Release mkdir Release
> if not EXIST Release\subversion_netless mkdir Release\subversion_netless
> :: ToDo: add a subversion dependency project "netless" and build this
> in one run

How would you add an extra project? The Subversion solution file is
built automatically by the gen-make.py script.

> for %%P in ( libsvn_client libsvn_delta libsvn_diff libsvn_fs
> libsvn_fs_base libsvn_fs_fs libsvn_ra libsvn_ra_dav libsvn_ra_local
> libsvn_ra_svn libsvn_repos libsvn_subr libsvn_wc ) do (
> devenv subversion_vcnet.sln /useenv /build release /project "%%P"
> if not EXIST Release\subversion_netless\%%P mkdir
> Release\subversion_netless\%%P
> copy Release\subversion\%%P\%%P-1.lib Release\subversion_netless\%%P
> )

That will do! No need for an extra project.

> echo building Subversion
> if EXIST subversion\svn_private_config.h del
> subversion\svn_private_config.h
> move /Y subversion\svn_private_config_copy.hw
> subversion\svn_private_config.hw
> devenv subversion_vcnet.sln /useenv /build release /project "svn"
> )

Your changes look very good! Can you create a patch of this and send it?

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.tigris.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Sun Aug 7 19:18:03 2005

This is an archived mail posted to the TortoiseSVN Dev mailing list.