|
https://github.com/libgit2/libgit2/compare/b641c00...5aee963
This also change naming convention of libgit2 binaries.
Each LibGit2Sharp version works against a specific version of libgit2.
LibGit2Sharp managed code relies on the dynamic loader to find the proper libgit2 binary. This binary is located in a directory structure next to the managed assembly, and the loader is instructed to search within this directory structure.
Up until now, the binary being searched for was bearing a generic name: [lib]git2.(dll|so|dylib).
However, on Windows, if one older version of the native binary, with the same name, is already loaded in the memory, the loader will reuse this one, no matter what directory it's been loaded from. Chances are great that this old libgit2 version is incompatible with what the newer version of LibGit2Sharp expects from its API or behavior.
In order to mitigate this, libgit2 binaries are now suffixed with the libgit2 commit sha they've been build from and LibGit2Sharp will bind to a specifically named binary:
- git2-{short_sha}.dll on Windows
- libgit2-{short_sha}.so on Linux
- libgit2-{short_sha}.dylib on Mac OS X.
This should allow one to run two different future version of LibGit2Sharp, side by side, without any name clash.
|