##// END OF EJS Templates
merge: perform background file closing in batchget...
merge: perform background file closing in batchget As 2fdbf22a1b63 demonstrated with stream clones, closing files on background threads on Windows can yield a significant speedup because closing files that have been created/appended to is slow on Windows/NTFS. Working directory updates can write thousands of files. Therefore it is susceptible to excessive slowness on Windows due to slow file closes. This patch enables background file closing when performing working directory file writes. The impact when performing an `hg up tip` on mozilla-central (136,357 files) from an empty working directory is significant: Before: 535s (8:55) After: 133s (2:13) Delta: -402s (6:42) That's a 4x speedup! By comparison, that same machine can perform the same operation in ~15s on Linux. So Windows went from ~35x to ~9x slower. Not bad but there's still work to do. As a reminder, background file closing is only activated on Windows because it is only beneficial on that platform. So this patch shouldn't change non-Windows behavior at all. It's worth noting that non-Windows systems perform working directory updates with multiple processes. Unfortunately, worker.py doesn't yet support Windows. So, there is still plenty of room for making working directory updates faster on Windows. Even if multiple processes are used on Windows, I believe background file closing will still provide a benefit, as individual processes will still be slowed down by the file close bottleneck (assuming the I/O system isn't saturated).

File last commit:

r20145:a5354990 stable
r28200:588695cc default
Show More
mercurial.ini
98 lines | 2.3 KiB | text/x-ini | IniLexer
Steve Borho
mercurial.ini: provide more useful info...
r9322 ; System-wide Mercurial config file.
;
; !!! Do Not Edit This File !!!
;
; This file will be replaced by the installer on every upgrade.
; Editing this file can cause strange side effects on Vista.
;
; http://bitbucket.org/tortoisehg/stable/issue/135
;
; To change settings you see in this file, override (or enable) them in
; your user Mercurial.ini file, where USERNAME is your Windows user name:
;
; XP or older - C:\Documents and Settings\USERNAME\Mercurial.ini
; Vista or later - C:\Users\USERNAME\Mercurial.ini
Lee Cantey
Convert default mercurial.ini file to Windows line endings
r4749
Thomas Arendsen Hein
merge with crew-stable
r5142 [ui]
Steve Borho
mercurial.ini: provide more useful info...
r9322 ; editor used to enter commit logs, etc. Most text editors will work.
Lee Cantey
Convert default mercurial.ini file to Windows line endings
r4749 editor = notepad
Pascal Quantin
Update mercurial.ini file packaged in win32 installer...
r7662 ; show changed files and be a bit more verbose if True
; verbose = True
Steve Borho
mercurial.ini: provide more useful info...
r9322
Pascal Quantin
Update mercurial.ini file packaged in win32 installer...
r7662 ; username data to appear in commits
; it usually takes the form: Joe User <joe.user@host.com>
; username = Joe User <j.user@example.com>
Steve Borho
mercurial.ini: provide more useful info...
r9322 ; In order to push/pull over ssh you must specify an ssh tool
;ssh = "C:\Progra~1\TortoiseSVN\bin\TortoisePlink.exe" -ssh -2
;ssh = C:\cygwin\bin\ssh
Lee Cantey
Convert default mercurial.ini file to Windows line endings
r4749
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;
; For more information about mercurial extensions, start here
; http://www.selenic.com/mercurial/wiki/index.cgi/UsingExtensions
;
; Extensions shipped with Mercurial
;
Lee Cantey
Convert default mercurial.ini file to Windows line endings
r4749 [extensions]
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;acl =
Pascal Quantin
win32: update Inno Setup installer script and extensions list
r19512 ;blackbox =
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;bugzilla =
;children =
;churn =
;color =
;convert =
Martin Geisler
win32text: mark this extension as deprecated
r11269 ;eol =
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;extdiff =
;fetch =
;gpg =
;hgcia =
;hgk =
;highlight =
Pascal Quantin
win32: update Inno Setup installer extensions list
r17278 ;histedit =
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;interhg =
Pascal Quantin
win32: update Inno Setup installer extensions list
r17278 ;largefiles =
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;keyword =
;mq =
;notify =
;pager =
;patchbomb =
Pascal Quantin
Add progress extension to win32 default config file
r10474 ;progress =
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;purge =
;rebase =
;record =
Pascal Quantin
win32: update Inno Setup installer extensions list
r17278 ;relink =
;schemes =
;share =
Pascal Quantin
win32: add shelve extension to mercurial.ini
r19946 ;shelve =
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;transplant =
;win32mbcs =
;zeroconf =
Lee Cantey
Convert default mercurial.ini file to Windows line endings
r4749
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;
; Define external diff commands
;
[extdiff]
;cmd.bc3diff = C:\Program Files\Beyond Compare 3\BCompare.exe
;cmd.vdiff = C:\Progra~1\TortoiseSVN\bin\TortoiseMerge.exe
;cmd.vimdiff = gvim.exe
Thomas Arendsen Hein
extdiff: escape filenames with vim/DirDiff and make quoting work with Windows...
r16242 ;opts.vimdiff = -f "+next" "+execute 'DirDiff' fnameescape(argv(0)) fnameescape(argv(1))"
Steve Borho
mercurial.ini: provide more useful info...
r9322
Pascal Quantin
Package hgk Tcl/Tk script in win32 installer...
r7663 [hgk]
; Replace the following with your path to hgk, uncomment it and
Steve Borho
mercurial.ini: provide more useful info...
r9322 ; install ActiveTcl (or another win32 port like tclkit)
Pascal Quantin
Package hgk Tcl/Tk script in win32 installer...
r7663 ; path="C:\Program Files\Mercurial\Contrib\hgk.tcl"
Steve Borho
mercurial.ini: provide more useful info...
r9322 ; vdiff=vdiff
Lee Cantey
Convert default mercurial.ini file to Windows line endings
r4749
Steve Borho
mercurial.ini: provide more useful info...
r9322 ;
; The git extended diff format can represent binary files, file
; permission changes, and rename information that the normal patch format
; cannot describe. However it is also not compatible with tools which
; expect normal patches. so enable git patches at your own risk.
;
[diff]
;git = false
;nodates = false
Pascal Quantin
Update mercurial.ini file packaged in win32 installer...
r7662