[Bug 3745] New: checkrequireslfiles causes very slow push with large repo store
mercurial-bugs at selenic.com
mercurial-bugs at selenic.com
Thu Dec 27 08:23:45 CST 2012
http://bz.selenic.com/show_bug.cgi?id=3745
Priority: normal
Bug ID: 3745
CC: mercurial-devel at selenic.com, natosha at gmail.com
Assignee: bugzilla at selenic.com
Summary: checkrequireslfiles causes very slow push with large
repo store
Severity: bug
Classification: Unclassified
OS: Windows
Reporter: oliviertrempe at hotmail.com
Hardware: PC
Status: UNCONFIRMED
Version: 2.4.1
Component: largefiles
Product: Mercurial
Overview:
Our repo store contains 22659 entries. Pushes to remo repo are very slow
and I narrowed it down to this method:
C:\Python27\Lib\site-packages\hgext\largefiles\reposetup.py:reposetup.checkrequireslfiles()
If your repo doesn't require largefiles, this method builds a list by
walking the repo store:
util.any(lfutil.shortname+'/' in f[0] for f in repo.store.datafiles())
and it takes ~35 seconds for 22659 entries.
Largefiles extension is enabled even if this particular repo doesn't require it
because we have many repos managed with RhodeCode. Some of them require
largefiles so it has to be enabled globally in RhodeCode.
Steps to reproduce:
1. With largefiles extension enabled, push a changeset to a repo having a large
store, but not requiring largefiles extension.
2. Add the 'largefiles' requirement to the repo (in .hg/requires) and push
again to see the push time considerably reduced. (Because the code which slowly
builds the list is bypassed in the if condition)
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Mercurial-devel
mailing list