Git before 1.8.5.6, 1.9.x before 1.9.5, 2.0.x before 2.0.5, 2.1.x before 2.1.4, and 2.2.x before 2.2.1 on Windows and OS X; Mercurial before 3.2.3 on Windows and OS X; Apple Xcode before 6.2 beta 3; mine all versions before 08-12-2014; libgit2 all versions up to 0.21.2; Egit all versions before 08-12-2014; and JGit all versions before 08-12-2014 allow remote Git servers to execute arbitrary commands via a tree containing a crafted .git/config file with (1) an ignorable Unicode codepoint, (2) a git~1/config representation, or (3) mixed case that is improperly handled on a case-insensitive filesystem.
Add note in the documentation about the API being unstable
Update libgit2 to f42beff
Update checkout strategies' names: "update_unmodified", "update_missing", "update_modified" and "update_untracked" have been removed (incompatible change)
Repository -> head() now takes an additional optional parameter $new_head used to change the repository's HEAD (GH#7)
Repository -> workdir() now takes an additional optional parameter $new_dir used to change the repository's working directory (GH#8, #9) (thanks, @thaljef)
Add Tree -> entry_by{name,path}() methods (GH#10) (thanks, @keedi!)