GSoC/GCI Archive
Google Code-in 2014 Copyleft Games

HGBot: Check Binary Files

completed by: Michal Proszek

mentors: Jon Neal, Arc Riley, Terri Oda, David Czech, AJ Williams, Amaury Medeiros

HGBot is a Python program that automates our Mercurial repository management, handles Mercurial authentication, and provides user interfaces such as IRC.

Binary files are a recurring problem for dVCS systems, especially Mercurial, in that they're usually fairly large, cannot be properly diff'ed, and are usually added by rookie contributors. Once committed, even if later deleted the binary file will be downloaded by anyone cloning the repository as part of its history.

Worse, because they can't be diff'ed or displayed properly, they appear only as a filename in the hg history which (esp executable files) creates a security risk through lack of transparency.

There are some cases where binary files are wanted or needed, though an experienced and trusted developer should do so after consideration. Often, its better to host such files through other means.

For this task, Contributor and Developer level users should have their commits filtered for binary files - and reject the changegroup if found. If the binary file is truely needed (such as new versions of waf), an Administrator level users can push that change - even on another developer's behalf.

While working on this task you should join and remain in #CopyleftGames on Freenode to get help, feedback, and guidance from mentors and other developers. Code updates which may affect your work are also announced here as they happen.

When you've done, commit your work and post the resulting changeset url to this task.