{"push_id":2045328354,"size":38,"distinct_size":38,"ref":"refs/heads/master","head":"8ac8c78c35905f7f9cc37f240c3d633a7cc5a5e3","before":"524c1d3c9eef1f63d058ca5d4a61af7d5588ebfb","commits":[{"sha":"c17c3f8a07377d76432fb2e4369b9805387ac099","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"travis: drop support for Ubuntu Precise\n\nUbuntu Precise is end of life since April 2017. At that point in time,\nPrecise was still the main distro on which Travis CI built upon, with\nthe Trusty-based images still being in a beta state. But since June\n21st, Trusty has officially moved out of beta and is now the default\nimage for all new builds. Right now, we build on both old and new images\nto assure we support both.\n\nUnfortunately, this leaves us with the highest minimum version for CMake\nbeing 2.8.7, as Precise has no greater version in its repositories. And\nbecause of this limitation, we cannot actually use object libraries in\nour build instructions. But considering Precise is end of life and\nTrusty is now the new default for Travis, we can and should drop support\nfor this old and unmaintained distribution. And so we do.","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/c17c3f8a07377d76432fb2e4369b9805387ac099"},{"sha":"1d9dd882b32cbaa5d4c8b0b39558ce8ac16274fa","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"cmake: distinguish libgit2 objects and sources\n\nDistinguish variables keeping track of our internal libgit2 sources and\nthe final objects which shall be linked into the library. This will ease\nthe transition to use object libraries for our bundled dependencies\ninstead of linking them in.","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/1d9dd882b32cbaa5d4c8b0b39558ce8ac16274fa"},{"sha":"cf9f345217d7d28a55a08e7a25a9fdfca9fc3beb","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"cmake: bump minimum version to 2.8.11\n\nOur current minimum CMake version is 2.8. This version does not yet\nallow us to use object libraries (introduced in 2.8.8) and target\ninclude directories (introduced in 2.8.12), which are both mechanisms we\nwant to use to fix some specific problems. We previously were not able\nto bump our CMake version to a version supporting object libraries\nbecause Ubuntu Precise only had CMake version 2.8.7 in its repositories.\nBut due to Precise being end of life now, we shouldn't need to honor it\nanymore. A current survey of some of the more conservative distributions\nbrings up the following versions of CMake:\n\n- CentOS 5: 2.6.2\n- CentOS 6: 2.8.12.2\n- Debian 7: 2.8.11\n- Fedora 23: 3.3.2\n- OpenSUSE 13.2: 3.0.2\n- Ubuntu Precise: 2.8.7\n- Ubuntu Trusty: 2.8.12\n\nThe only two outliers here are CentOS 5 and Ubuntu Precise. CentOS is\ncurrently unsupported due to our minimum version being 2.8 and Ubuntu\nPrecise is not maintained anymore. So the next smallest version\nsupported by all major distributions is 2.8.11. While this does not yet\nsupport target include directories, it at least enables us to use object\nlibraries. So this becomes our new minimum required version.","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/cf9f345217d7d28a55a08e7a25a9fdfca9fc3beb"},{"sha":"172a585f8860f87c80800add5bf6d47470bb0f7e","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"cmake: always use object library for git2internal\n\nAs we have bumped our minimum CMake version to 2.8.11, we can now\nunconditionally make use of object libraries. So remove the version\ncheck for the git2internal object library and always use it.","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/172a585f8860f87c80800add5bf6d47470bb0f7e"},{"sha":"d8d2f21e24933cddabf30f2d4a4ddf1be0072e56","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"cmake: unify version check for target include directories\n\nThere are two locations where we check whether CMake supports\n`TARGET_INCLUDE_DIRECTORIES`. While the first one uses `VERSION_LESS\n2.8.12`, the second one uses `VERSION_GREATER 2.8.11`, which are\nobviously equivalent to each other. It'd still be easier to grep for\nspecific CMake versions being required for some features if both used\nthe same conditional mentioning the actual target version required. So\nthis commit refactors these conditions to make them equal.","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/d8d2f21e24933cddabf30f2d4a4ddf1be0072e56"},{"sha":"8c19969a88c3b6e72564e812537b15cbc0fb4cc0","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"cmake: fix static linking for bundled deps\n\nOur bundled deps are being built as simple static libraries which are\nthen linked into the libgit2 library via `TARGET_LINK_LIBRARIES`. While\nthis works for a dynamically built libgit2 library, using this function\nto link two static libraries does not have the expected outcome of\nmerging those static libraries into one big library. This leads to\nsymbols of our bundled deps being undefined in the resulting libgit2\narchive.\n\nAs we have bumped our minimum CMake version to 2.8.11, we can now easily\nmake use of object libraries for our bundled dependencies. So build\ninstructions are still self-contained inside of the dependency\ndirectories and the resulting object libraries can just be added to the\nLIBGIT2_OBJECTS list, which will cause them to be linked into the final\nresulting static library. This fixes the issue of undefined symbols.","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/8c19969a88c3b6e72564e812537b15cbc0fb4cc0"},{"sha":"49551254c3146274dfb5764318f4661ce47a6f0a","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"cmake: use static dependencies when building static libgit2\n\nCMake allows us to build a static library by simply setting the variable\n`BUILD_SHARED_LIBS` to `OFF`. While this causes us to create a static\nlibgit2.a archive, it will not automatically cause CMake to only locate\nstatic archives when searching for dependencies. This does no harm in\ncase of building our libgit2.a, as we do not want to include all\nrequired dependencies in the resulting archive anyway. Instead, we ask\nusers of a static libgit2.a to link against the required set of static\narchives themselves, typically aided by the libgit2.pc file.\n\nWhere it does cause harm, though, is when we build the libgit2_clar test\nsuite. CMake has happily populated our LIBGIT2_LIBS variable with shared\nlibraries, and so linking the final libgit2_clar test does not do the\nright thing. It will simply ignore those shared libraries, we end up\nwith a test suite with undefined symbols.\n\nTo fix the issue, we can instruct CMake to only locate libraries with a\ncertain suffix. As static libraries are typically identifiable by their\n\".a\" suffix on Unix-based systems, we can instruct CMake to only locate\nlibraries with this suffix to restrict it from finding any shared\nlibraries. This fixes building a static libgit2_clar test suite.\n\nNote that this ignores the problem on Windows. The problem here is that\nwe cannot even distinguish static and dynamic libraries by only\ninspecting their suffix. So we just ignore the problem on Windows, for\nnow.","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/49551254c3146274dfb5764318f4661ce47a6f0a"},{"sha":"44527f5c338320a2ddbd0fab81a635dfcb2adb90","author":{"name":"Carlos Martín Nieto","email":"3bdff5ae478ebaf22d6b4b229bf308484e9decc1@dwim.me"},"message":"proxy: add a free function for the options's pointers\n\nWhen we duplicate a user-provided options struct, we're stuck with freeing the\nurl in it. In case we add stuff to the proxy struct, let's add a function in\nwhich to put the logic.","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/44527f5c338320a2ddbd0fab81a635dfcb2adb90"},{"sha":"406b47bf4086f09a6686db97099347f52291a4a7","author":{"name":"Carlos Martín Nieto","email":"3bdff5ae478ebaf22d6b4b229bf308484e9decc1@dwim.me"},"message":"curl: free the proxy options","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/406b47bf4086f09a6686db97099347f52291a4a7"},{"sha":"6f8d1eb946c8558085b6d09f4601af2bd1bf24b3","author":{"name":"Carlos Martín Nieto","email":"3bdff5ae478ebaf22d6b4b229bf308484e9decc1@dwim.me"},"message":"curl: free the user-provided proxy credentials","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/6f8d1eb946c8558085b6d09f4601af2bd1bf24b3"},{"sha":"366f4136ec50888d2d52316dc07d775a71bed97e","author":{"name":"Carlos Martín Nieto","email":"3bdff5ae478ebaf22d6b4b229bf308484e9decc1@dwim.me"},"message":"travis: keep installing our custom libcurl build\n\nThe block in the script installs the packages if we're _not_ on Precise. This\nwas dropped in c17c3f8a (\"travis: drop support for Ubuntu Precise\") in error.","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/366f4136ec50888d2d52316dc07d775a71bed97e"},{"sha":"c7c5f2c4ecc727ac555f51bd20353f7f3ae9c07a","author":{"name":"Carlos Martín Nieto","email":"3ae4287760ec89ba1a3d31b56eaebebb81e219d8@github.com"},"message":"Merge pull request #4339 from pks-t/pks/static-linking\n\nStatic linking for bundled deps","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/c7c5f2c4ecc727ac555f51bd20353f7f3ae9c07a"},{"sha":"9fe70c9e46fabae11ed7df8e9f97d3136802ba13","author":{"name":"Andreas Smas","email":"80b780c8305f0f75fc9380899bda91aa1af94a74@lonelycoder.com"},"message":"Use SOCK_CLOEXEC when creating sockets","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/9fe70c9e46fabae11ed7df8e9f97d3136802ba13"},{"sha":"b112b1e9adb6e90f77762aa2cb1eb376f709412f","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"refs: do not use peeled OID if peeling to a tag\n\nIf a reference stored in a packed-refs file does not directly point to a\ncommit, tree or blob, the packed-refs file will also will include a\nfully-peeled OID pointing to the first underlying object of that type.\nIf we try to peel a reference to an object, we will use that peeled OID\nto speed up resolving the object.\n\nAs a reference for an annotated tag does not directly point to a commit,\ntree or blob but instead to the tag object, the packed-refs file will\nhave an accomodating fully-peeled OID pointing to the object referenced\nby that tag. When we use the fully-peeled OID pointing to the referenced\nobject when peeling, we obviously cannot peel that to the tag anymore.\n\nFix this issue by not using the fully-peeled OID whenever we want to\npeel to a tag. Note that this does not include the case where we want to\nresolve to _any_ object type. Existing code may make use from the fact\nthat we resolve those to commit objects instead of tag objects, even\nthough that behaviour is inconsistent between packed and loose\nreferences. Furthermore, some tests of ours make the assumption that we\nin fact resolve those references to a commit.","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/b112b1e9adb6e90f77762aa2cb1eb376f709412f"},{"sha":"ec76cc486058f36d878eca7511aaa9f764bf1b83","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"Merge pull request #4364 from andoma/master\n\nUse SOCK_CLOEXEC when creating sockets","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/ec76cc486058f36d878eca7511aaa9f764bf1b83"},{"sha":"56ac6c0a4b7c4be60642fcda702b9b68c3eb8a75","author":{"name":"Jacob Wahlgren","email":"1e416145aeba2dcde05f30557c5402522d5910a1@gmail.com"},"message":"graph: document that a commit isn't a descendant of itself","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/56ac6c0a4b7c4be60642fcda702b9b68c3eb8a75"},{"sha":"62ac39314c11ec43e34e2930f990c3d4ad13153b","author":{"name":"Patrick Steinhardt","email":"dd3653c239993b88599b227c6c68cda1bb01ca42@pks.im"},"message":"Merge pull request #4362 from jacwah/graphdoc\n\nDocument that a commit is not a descendant of itself","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/62ac39314c11ec43e34e2930f990c3d4ad13153b"},{"sha":"7138ce370b0b39c53249c7ec6804e197c0080c22","author":{"name":"Carson Howard","email":"f98588ed99078e0b8ca990751b9fb6b40d8123db@axosoft.com"},"message":"remote: add typedef to normalize push_update_reference callback\n\nVery many callbacks in libgit2 have some sort of typedef to normalize the name at git_<name_of_operation>_cb. Add a typedef for push_update_references in the remote so the name follows the same conventions.","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/7138ce370b0b39c53249c7ec6804e197c0080c22"},{"sha":"752b7c792d7e2aad7be43a88114552233c230780","author":{"name":"Edward Thomson","email":"f29eca94f40f9951b20ba47162df375f3575c58c@github.com"},"message":"checkout: treat files as modified if mode differs\n\nWhen performing a forced checkout, treat files as modified when the\nworkdir or the index is identical except for the mode.  This ensures\nthat force checkout will update the mode to the target.  (Apply this\ncheck for regular files only, if one of the items was a file and the\nother was another type of item then this would be a typechange and\nhandled independently.)","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/752b7c792d7e2aad7be43a88114552233c230780"},{"sha":"9dc21efdbf275dec18b9c34b472f8df9f8e8c169","author":{"name":"Edward Thomson","email":"f29eca94f40f9951b20ba47162df375f3575c58c@edwardthomson.com"},"message":"travis: add custom apt sources\n\nMove back to Travis's VM infrastructure for efficiency.","distinct":true,"url":"https://api.github.com/repos/Neonking/libGit2/commits/9dc21efdbf275dec18b9c34b472f8df9f8e8c169"}]}
{"actor":{"display_login":"Neonking"}}