OS file monitoring for large code bases?

Asked by Karl Bielefeldt

We have a very large code base at work---around 45000 versioned files in some 9000 directories, with up to 20000 unversioned files at times. I would like to propose switching to bazaar, but any operation that scans for new, modified, or deleted files is taking a very long time going through all those files. What I was wondering is if there is a plugin that uses the windows equivalent of inotify to keep track of working tree changes instead of having to scan the entire code base every time. If not, I may make one myself, although my Windows programming experience is practically non-existent (I use cygwin and develop for a POSIX-like embedded platform).

Also, are there any other general tips for working with such a large code base? I've already discovered using switch on a lightweight checkout.

Question information

Language:
English Edit question
Status:
Answered
For:
Bazaar Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Alexander Belchenko (bialix) said :
#1

There is Win32 API functions which can be used to monitor changes in filesystem. And I think they're using in TortoisBzr codebase.

Furthermore, TortoiseBzr is using this approach: it has service which scans versioned directories for changes in the background and icons overlay frontend just talks to that service when it needs to get information about each file/directory.

So, it seems very possible, and maybe it's possible to re-use some TBZR code.

The main problem would be to hook this information into bzr core. I'd suggest to send RFC mail to bzr mailing list and asking for clarification from other developers on how to hook intoify (or something similar) into bzr internals.

Can you help with this problem?

Provide an answer of your own, or ask Karl Bielefeldt for more information if necessary.

To post a message you must log in.