Instantaneous status on Linux, Windows (GSOC 2009)

Peter Arrenbrecht peter.arrenbrecht at gmail.com
Wed Mar 11 02:23:59 CDT 2009


2009/3/11 Tomasz Buchert <thinred at gmail.com>:
> 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

Hi Tomasz

This looks like a worthy application. Please allow me a few questions.



More information about the Mercurial-devel mailing list