Mercurial > hg > mercurial-crew-with-dirclash
view contrib/win32/win32-build.txt @ 2577:fa76c5d609c9
bdiff: improve worst case behavior by 100x.
on 5.8MB (244.000 lines) text file with similar lines, hash before
this change made diff against empty file take 75 seconds. this change
improves performance to 0.6 seconds. result is that clone of smallish
repo (137MB) with some files like this takes 1 minute instead of 10
minutes.
common case of diff is 10% slower now, probably because of worse cache
locality. but diff does not affect overall performance in common case
(less than 1% of runtime is in diff when it is working ok), so this
tradeoff looks good.
author | Vadim Gelfer <vadim.gelfer@gmail.com> |
---|---|
date | Fri, 07 Jul 2006 15:02:55 -0700 |
parents | 068b32d06873 |
children | d1dd16256114 |
line wrap: on
line source
The standalone Windows installer for Mercurial is built in a somewhat jury-rigged fashion. It has the following prerequisites, at least as I build it: Python for Windows http://www.python.org/ftp/python/2.4.1/python-2.4.1.msi MinGW http://www.mingw.org/ Python for Windows Extensions http://sourceforge.net/projects/pywin32/ mfc71.dll (just download, don't install) http://starship.python.net/crew/mhammond/win32/ The py2exe distutils extension http://sourceforge.net/projects/py2exe/ Inno Setup http://www.jrsoftware.org/isinfo.php ISTool http://www.istool.org/default.aspx/ add_path (you need only add_path.exe in the zip file) http://www.barisione.org/apps.html#add_path And, of course, Mercurial itself. Once you have all this installed and built, clone a copy of the Mercurial repository you want to package, and name the repo C:\hg\hg-release. In a shell, build a standalone copy of the hg.exe program: python setup.py build -c mingw32 py2exe -b 1 Copy mfc71.dll and add_path.exe into the dist directory that just got created. Run ISTool, and open the C:\hg\hg-release\contrib\win32\mercurial.iss file. In ISTool, type Ctrl-F9 to compile the installer file. The actual installer will be in the C:\hg\hg-release\Output directory.