Mercurial > hg
view contrib/win32/hg.bat @ 40978:42f59d3f714d
delta: exclude base candidate much smaller than the target
If a revision's full text is that much bigger than a base candidate full text,
we no longer consider that candidate.
This solves a pathological case we encountered on a very specify repository.
It contains a long series of changesets with a very small manifest (one file)
co-existing with others changesets using a very large manifest.
Without this filtering, we ended up considering a large number of tiny full
snapshots as a potential base. It resulted in very large delta (the size of
the full text) and mercurial spending 99% of its time compressing these
deltas.
The timing of a commit moved from about 400s to about 10s (still slow, but not
ridiculously slow).
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Mon, 17 Dec 2018 10:42:19 +0100 |
parents | 975c4fc4a512 |
children | fc8a5c9ecee0 |
line wrap: on
line source
@echo off rem Windows Driver script for Mercurial setlocal set HG=%~f0 rem Use a full path to Python (relative to this script) if it exists, rem as the standard Python install does not put python.exe on the PATH... rem Otherwise, expect that python.exe can be found on the PATH. rem %~dp0 is the directory of this script if exist "%~dp0..\python.exe" ( "%~dp0..\python" "%~dp0hg" %* ) else ( python "%~dp0hg" %* ) endlocal exit /b %ERRORLEVEL%