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

[TSVN] Speed optimizing the build process?

From: Markus Schuh <markus.schuh_at_sdm.de>
Date: 2005-08-07 15:55:09 CEST

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.

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.

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".

Well, I know that these changes may have their own problems and my not
be well suited for the TSVN repository.
As you write in build.txt
> Sure, the build script could just compile the libraries which
> are really needed for that build, but it's much easier to just build the
> whole solution instead of individual projects.

And looking at the build times of the nightlies (< 30 min) I really
should check why my VS.NET 2003 is so slow ...

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.

...
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
  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
  )
  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"
)

Markus

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Sun Aug 7 15:55:41 2005

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