libgit2 v0.22.2 发布,此版本是个维护版本,主要修复了以下问题:
1f25fe9 checkout: report correct invalid path
8633dd9 win32: further cleanups for 8.3 disabling
93be89c win32: cleanup 8.3 disabled tests
728a013 Fix test failures when 8.3 is disabled
1f726d0 git: make sure to close the network stream
3e163b6 checkout: free last created directory
3440c20 Initialize refs vector in git_remote_update_tips().
dcf6c0c Lower case the include directive of windows header
1dd5e28 http: do not try to use the cert callback on unencrypted streams
dd243fe indexer: set an error message on duplicate objects in pack
3a1dc42 Put back the number of expected references to 6 from the test repo
cf688ff Fixed active refspecs not reset by git_remote_upload()
7a5682f http: enforce the credential types
f008aeb branch: do capture the error code
283f31a git_branch_delete() should ignore errors from non-existing reflogs
aa409d5 Fix Mac build without OpenSSL
d884d1c Fix race in git_packfile_unpack.
277d647 Reinit `reader` pointer after reading included config file
3bdcea8 Check rebase options version on public entry points
7d8e4e3 mkdir: respect the root path
69455bc stat: don't remove trailing '/' from root on win32
7aee248 repo: ensure we can create repo at filesystem root
aa926fb Fix branch creation when branch name matches namespace of previously deleted branch
31ea8db Clarified git_repository_is_empty() documentation
ed64a1b Add libssh2's library and include directories.
5c3e01d Ensure the diff hunk callback is specified before trying to dereference it
fe61bb6 Ensure git_index_entry is not NULL before trying to free it
ae0cfac openssl: Add all required includes for AF_INET6 and in6_addr.
4738a33 Fixed git_repository_set_bare() not setting "core.bare" correctly
d0db408 Make sure sys/repository.h includes the required headers
eefe2e8 Fixed typo in git_repository_reinit_filesystem() documentation
8693335 Make binary detection work similar to vanilla git
d95c949 Include ws2tcpip.h in order to get in6_addr
e1314dd Include openssl headers last
09c2477 Fixed error when including git2/include/sys/stream.h
bd0a551 pathspec: do not try to dereference NULL
1ce9ea3 checkout tests: cleanup realpath impl on Win32
f9df7b6 checkout tests: emulate p_realpath poorly on Win32
8d65523 checkout: remove files before writing new ones
b295294 checkout: drop newline in error message
99367df checkout tests: nasty symlinks
9f1c873 checkout: don't recreate previous directory
1ca7fa9 git_path_join_unrooted: return base len
bd0e881 checkout: introduce git_checkout_perfdata
libgit2 是一个可移植、纯C语言实现的 Git 核心开发包,你可以使用它来编写自定义的 Git 应用。
libgit2已被广泛应用在许多应用程序上,包括GitHub网站,还被应用在Plastic SCM和强大的微软Visual Studio工具箱。
主要功能:
SHA转换、格式化和缩略词
抽象的ODB后端系统
提交、标签、树和BLOB解析、编辑、blob解析和回写
树遍历
revision walking
索引文件(临时区域)操作
引用管理(包括包引用)
配置文件管理
高级仓库管理
线程安全和可重入
错误信息描述非常详细
更多(超过175个不同的API调用)
目前,可以绑定到libgit2的语言有,并附上各个语言的绑定方法:
C++:https://projects.kde.org/projects/playground/libs/libqgit2/
Chicken Scheme:https://wiki.call-cc.org/egg/git
D:https://github.com/AndrejMitrovic/dlibgit
Delphi:https://github.com/libgit2/GitForDelphi
Erlang:https://github.com/carlosmn/geef
Go:https://github.com/libgit2/git2go
GObject:https://live.gnome.org/Libgit2-glib
Haskell:https://github.com/fpco/gitlib
Lua:https://github.com/libgit2/luagit2
.NET:https://github.com/libgit2/libgit2sharp、https://github.com/txdv/libgit2net
Node.js:https://github.com/libgit2/node-gitteh
nodegit:https://github.com/tbranyen/nodegit
Objective-C:https://github.com/libgit2/objective-git
OCaml:https://github.com/burdges/libgit2-ocaml
Parrot Virtual Machine:https://github.com/letolabs/parrot-libgit2
Perl:https://github.com/ghedo/p5-Git-Raw
PHP:https://github.com/libgit2/php-git
Python:https://github.com/libgit2/pygit2
Ruby:https://github.com/libgit2/rugged
Vala:https://github.com/apmasell/vapis/blob/master/libgit2.vapi
来自:开源中国社区

