Instantaneous status on Linux, Windows (GSOC 2009)

Tomasz Buchert thinred at gmail.com
Tue Mar 10 19:44:22 CDT 2009


Hi!
My name is Tomasz Buchert. I am a student from Poland interested in joining
this year's Google Summer of Code. I am particularly interested
in project "Instantaneous status ...". I would like to improve (rewrite?)
inotify extension to make it more portable and robust.

Here is my proposal:
   1) Make notification server interface OS-independent. This may 
involve use
       of TCP sockets (instead of Unix Domain Sockets) because they are
       available everywhere. Alternatively I may write specific code for 
every OS +
       nice abstraction to treat each implementation transparently. This 
means,
       for instance, that Unix Domain Sockets would be used to communicate
       with the server on Unix-like OSes, Named Pipes on Windows and so 
on. Motivation is
       that while TCP sockets are portable, there are issues like 
firewalls and port allocation.
       Possibly many methods of communication would be available and the 
user
       should choose the favorite one.
   2) I don't have Apple computers right now, so I would be able to take 
care
       of Windows and Linux implementation. Actually I am thinking about 
3 implementations
       of server code:
            I) Linux - this would be probably partially rewritten code 
of inotify extension.
            II) Windows - this will have to be implemented,
            III) Generic fallback implementation - when no notification 
API is available then
               repository is sequentially rescanned by the server (in 
fact doing what normal status does)
               and providing this information instantly. This emulates 
notification API and should still
               provide boost to dirstate algorithms (because repository 
scan is performed in the background).
               However, because of the performance issues, this one 
should be much more intelligent than the latter ones.

I must admit it is quite rough draft of what should be done, but I await 
your feedback.
I think that this approach is flexible and will allow not only to speed 
up mercurial on Windows but also
on any other system which does not support fs notifications.

I also send few words about my motivation and myself (my CV is here: 
http://pentium.hopto.org/~thinred/files/CV.pdf).

I am experienced computer scientist and was awarded few times during my 
academic education.
I currently study Computer Science at Poznań University of Technology 
(IV year) and Mathematics
at Adam Mickiewicz University in Poznań (III year). I am specializing in 
Computer Networks and Distributed Systems.
However I am very much interested in Version Control Systems and am, 
most recently, a fan of Mercurial. It is even possible
that my master's thesis will concern VCSs.
Before Mercurial I have been using Subversion in my projects. Mercurial 
seems to be much
better solution because of its distributed fashion. I started to use 
Mercurial in all my projects some time ago and began
to advertise Mercurial to my friends and coworkers. It's a hard job to 
convince people that there can be something better
than Subversion, though.
I am also a big fan of Python language. I find it very "mathematical" 
and powerful. I also like the development
process of this language which is really democratic one. I have used 
Python in my past projects and am very satisfied with it.
Actually, I became interested in Mercurial because it is written in Python.
I chose "Instantaneous status..." project because it concerns 
interesting features of operating systems and
this is a topic I am interested in. I believe I am the right person to 
take care of this project.

Don't hesitate to contact me with any question.

Regards
Tomasz Buchert


More information about the Mercurial-devel mailing list