hg log with files is very slow

Brian Wallis brian.wallis at infomedix.com.au
Thu Jul 3 23:25:45 CDT 2008


The mercurial eclipse plugin uses the attached style file to gather  
the revision details about the files in a repository.

hg log --debug --style /path/to/style/log_style_with_files /path/to/ 
repo/root

In a large repository this can take a very long time to execute (6  
minutes in a 800M repo that has 6000-8000 files in a typical workspace  
checkout)

I ran truss on the above command and can see that the log command is  
continuously opening, seeking, reading and closing 00changelog.d and  
00manifest.d.

These are not large files in our large repository:

2% ls -l /Users/bwallis/InfoMedix/Hg-Infomedix/.hg/store/
total 31288
-rw-r--r--   1 bwallis  bwallis   1067452 Jul  4 12:19 00changelog.d
-rw-r--r--   1 bwallis  bwallis    277120 Jul  4 12:19 00changelog.i
-rw-r--r--   1 bwallis  bwallis  14386898 Jul  4 12:19 00manifest.d
-rw-r--r--   1 bwallis  bwallis    277056 Jul  4 12:19 00manifest.i
drwxr-xr-x  16 bwallis  bwallis       544 Jun  4 14:09 data
-rw-r--r--   1 bwallis  bwallis      2296 Jul  4 12:19 undo

Would it be very difficult to get mercurial to cache these files  
rather than all the open/seek/read/close. I suspect that would improve  
the performance somewhat.

In my particular case, open for 00manifest and 00changelog is called  
3035 times.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: log_style_with_files
Type: application/octet-stream
Size: 262 bytes
Desc: not available
Url : http://selenic.com/pipermail/mercurial/attachments/20080704/f2e88280/attachment.obj 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: log_style_with_files.tmpl
Type: application/octet-stream
Size: 296 bytes
Desc: not available
Url : http://selenic.com/pipermail/mercurial/attachments/20080704/f2e88280/attachment-0001.obj 
-------------- next part --------------

Brian Wallis
InfoMedix
p: 3 8615 4553 | f: 3 8615 4501 | e: brian.wallis at infomedix.com.au
Level 5, 451 Little Bourke Street, Melbourne VIC 3000





More information about the Mercurial mailing list