{"push_id":672538381,"size":26,"distinct_size":3,"ref":"refs/heads/thinpack","head":"d11850253d181769af08480d792dadd240167ce3","before":"e1f31d7d964470ffd2ca4966f3bc6e91f1266268","commits":[{"sha":"713e11e0b1ad72d6905641669655fe860767c310","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"index: use a diff to perform update_all\n\nWe currently iterate over all the entries and re-add them to the\nindex. While this provides correctness, it is wasteful as we try to\nre-insert files which have not changed.\n\nInstead, take a diff between the index and the worktree and only re-add\nthose which we already know have changed.","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/713e11e0b1ad72d6905641669655fe860767c310"},{"sha":"197307f6b1b12c9cf00a0e6802001fd18171bea9","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"index: refactor diff-based update_all to match other applies\n\nRefactor so we look like the code we're replacing, which should also\nallow us to more easily inplement add-all.","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/197307f6b1b12c9cf00a0e6802001fd18171bea9"},{"sha":"0a78a52ed9c6945151536d0f19aa39b081a4a8ac","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"index: make add_all to act on a diff\n\nInstead of going through each entry we have and re-adding, which may not\neven be correct for certain crlf options and has bad performance, use\nthe function which performs a diff against the worktree and try to add\nand remove files from that list.","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/0a78a52ed9c6945151536d0f19aa39b081a4a8ac"},{"sha":"2b2dfe80f065f284aa53351d7203e31cf001cf8a","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"index: include TYPECHANGE in the diff\n\nWithout this option, we would not be able to catch exec bit changes.","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/2b2dfe80f065f284aa53351d7203e31cf001cf8a"},{"sha":"874cc35a8d130735d3d8160191e697021e1ab8fb","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"index: add a CHANGELOG entry for the diff usage","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/874cc35a8d130735d3d8160191e697021e1ab8fb"},{"sha":"8a4d77f990b4453e42e3c2cc61df5175b39586d3","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"path: don't let direach overwrite the callback's error message\n\nThis function deals with functions doing IO which means the amount of\nerrors that can happen is quit large. It does not help if it always\novewrites the underlying error message with a less understandable\nversion of \"something went wrong\".\n\nInstead, only use this generic message if there was no error set by the\ncallback.","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/8a4d77f990b4453e42e3c2cc61df5175b39586d3"},{"sha":"54738368ec469dd9706c5c8f97d24affde9edae8","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"fileops: set an error message if we fail to link a file\n\nNow that `git_path_direach` lets us specify an error message to report,\nset an appropriate error message while linking.","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/54738368ec469dd9706c5c8f97d24affde9edae8"},{"sha":"edef91ee25eddcda1db9af64c99d3913c45e3a18","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"fileops: set an error on write error for file copy\n\nWe set an error if we get an error when reading, but we don't bother\nsetting an error message for write failing. This causes a cryptic error\nto be shown to the user when the target filesystem is full.","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/edef91ee25eddcda1db9af64c99d3913c45e3a18"},{"sha":"0aa603363e39e51e8313a2952710f565141080cb","author":{"email":"01e52f97b955c0550893d63da521b4a784d67022@edwardthomson.com","name":"Edward Thomson"},"message":"Merge pull request #3132 from libgit2/cmn/path-direach-cberror\n\nProvide error messages for git_path_direach operations","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/0aa603363e39e51e8313a2952710f565141080cb"},{"sha":"acc573cba3212c637d02520fb520326b36dcdd39","author":{"email":"01e52f97b955c0550893d63da521b4a784d67022@edwardthomson.com","name":"Edward Thomson"},"message":"Merge pull request #3109 from libgit2/cmn/index-use-diff\n\nUse a diff for iteration in index_update_all and index_add_all","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/acc573cba3212c637d02520fb520326b36dcdd39"},{"sha":"e3435673b8ed862266b5351b9e18cb55ed55d335","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"ssh: read from stderr if stdout is empty\n\nWhen we fail to read from stdout, it's typically because the URL was\nwrong and the server process has sent some output over its stderr\noutput.\n\nRead that output and set the error message to whatever we read from it.","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/e3435673b8ed862266b5351b9e18cb55ed55d335"},{"sha":"1396c381782f446ae5ea177b0f5c407f90197c97","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"errors: add GIT_EEOF to indicate early EOF\n\nThis can be used by tools to show mesages about failing to communicate\nwith the server. The error message in this case will often contain the\nserver's error message, as far as it managed to send anything.","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/1396c381782f446ae5ea177b0f5c407f90197c97"},{"sha":"c06e180a98db734036614b32d55d63df7356aba5","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"Merge pull request #3137 from libgit2/cmn/server-errors\n\nImprove server error reporting","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/c06e180a98db734036614b32d55d63df7356aba5"},{"sha":"cd3f3c2844715b12583eb4d4a6129d3050f115a4","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"Add a missing include for reset\n\nOur doc parser really wants the types to be declared in the header it's\nreading.","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/cd3f3c2844715b12583eb4d4a6129d3050f115a4"},{"sha":"2c57114f1117ea94e3023d989018748be76d52eb","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"ignore: clear the error when matching a pattern negation\n\nWhen we discover that we want to keep a negative rule, make sure to\nclear the error variable, as it we otherwise return whatever was left by\nthe previous loop iteration.","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/2c57114f1117ea94e3023d989018748be76d52eb"},{"sha":"d30155f2f9135adc73025af7dce3386863ad121b","author":{"email":"68c46a606457643eab92053c1c05574abb26f861@scitools.com","name":"Jason Haslam"},"message":"Fix error when building as C++.","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/d30155f2f9135adc73025af7dce3386863ad121b"},{"sha":"fa9a969d80a44a1f6d4ef733be0223b94db1b213","author":{"email":"01e52f97b955c0550893d63da521b4a784d67022@microsoft.com","name":"Edward Thomson"},"message":"index_add_all: include untracked files in new subdirs","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/fa9a969d80a44a1f6d4ef733be0223b94db1b213"},{"sha":"3e85be2bf1e6cee7778a1b61b1fe389f2f2ae325","author":{"email":"01e52f97b955c0550893d63da521b4a784d67022@edwardthomson.com","name":"Edward Thomson"},"message":"Merge pull request #3144 from libgit2/cmn/ignored-ignore\n\nignore: clear the error when matching a pattern negation","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/3e85be2bf1e6cee7778a1b61b1fe389f2f2ae325"},{"sha":"cbfeecf33f4e3e23370687ef92591f3206d4c58f","author":{"email":"01e52f97b955c0550893d63da521b4a784d67022@edwardthomson.com","name":"Edward Thomson"},"message":"git_index_add_all: don't recurse ignored dirs\n\nNo need to get reports about individual ignored files, having a\nsingle ignored directory delta is enough.","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/cbfeecf33f4e3e23370687ef92591f3206d4c58f"},{"sha":"6675aaba883952a1c1b28390866301ee5c281d37","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"Merge pull request #3146 from ethomson/add_untracked_files\n\nindex_add_all: include untracked files in new subdirs","distinct":false,"url":"https://api.github.com/repos/ethomson/libgit2/commits/6675aaba883952a1c1b28390866301ee5c281d37"}]}