{"push_id":701017981,"size":14,"distinct_size":1,"ref":"refs/heads/gitahead","head":"4f8e6876e90ba24b02888e1186b01098fb3cbc1d","before":"cf529a3380de19c07c4d3fbafbc6aa8b85196010","commits":[{"sha":"77596fcfd7cd14d0998b333af5f2d11ffea84843","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"diff: add failing test for racy-git in the index\n\nWe update the index and then immediately change the contents of the\nfile. This makes the diff think there are no changes, as the timestamp\nof the file agrees with the cached data. This is however a bug, as the\nfile has obviously changed contents.\n\nThe test is a bit fragile, as it assumes that the index writing and the\nfollowing modification of the file happen in the same second, but it's\nenough to show the issue.","distinct":false,"url":"https://api.github.com/repos/stinb/libgit2/commits/77596fcfd7cd14d0998b333af5f2d11ffea84843"},{"sha":"316b820b6fed712d4b6fae886ba1e6c44afc6c81","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"index: zero the size of racily-clean entries\n\nIf a file entry has the same timestamp as the index itself, it is\nconsidered racily-clean, as it may have been modified after the index\nwas written, but during the same second. We take extra steps to check\nthe contents, but this is just one part of avoiding races.\n\nFor files which do have changes but have not been updated in the index,\nupdating the on-disk index means updating its timestamp, which means we\nwould no longer recognise these entries as racy and we would trust the\ntimestamp to tell us whether they have changed.\n\nIn order to work around this, git zeroes out the file-size field in\nentries with the same timestamp as the index in order to force the next\ndiff to check the contents. Do so in libgit2 as well.","distinct":false,"url":"https://api.github.com/repos/stinb/libgit2/commits/316b820b6fed712d4b6fae886ba1e6c44afc6c81"},{"sha":"c4e6ab5f23819c35dc0c1a0fd7f50e5a194f0d5a","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"crlf: tick the index forward to work around racy-git behaviour\n\nIn order to avoid racy-git, we zero out the file size for entries with\nthe same timestamp as the index (or during the initial checkout). This\nis the case in a couple of crlf tests, as the code is fast enough to do\neverything in the same second.\n\nAs we know that we do not perform the modification just after writing\nout the index, which is what this is designed to work around, tick the\nmtime of the index file such that it doesn't agree with the files\nanymore, and we do not zero out these entries.","distinct":false,"url":"https://api.github.com/repos/stinb/libgit2/commits/c4e6ab5f23819c35dc0c1a0fd7f50e5a194f0d5a"},{"sha":"e44abe16bd20512c76331e6889f390e35993153a","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"tests: tick the index when we count OID calculations\n\nThese tests want to test that we don't recalculate entries which match\nthe index already. This is however something we force when truncating\nracily-clean entries.\n\nTick the index forward as we know that we don't perform the\nmodifications which the racily-clean code is trying to avoid.","distinct":false,"url":"https://api.github.com/repos/stinb/libgit2/commits/e44abe16bd20512c76331e6889f390e35993153a"},{"sha":"121c3171e5b4918337910250487691efa8dbbd49","author":{"email":"01e52f97b955c0550893d63da521b4a784d67022@microsoft.com","name":"Edward Thomson"},"message":"Introduce p_utimes and p_futimes\n\nProvide functionality to set the time on a filesystem entry,\nusing utimes or futimes on POSIX type systems or SetFileTime\non Win32.","distinct":false,"url":"https://api.github.com/repos/stinb/libgit2/commits/121c3171e5b4918337910250487691efa8dbbd49"},{"sha":"fef5344c50e33d01c08bec1687cb8a14a2a5efa2","author":{"email":"01e52f97b955c0550893d63da521b4a784d67022@microsoft.com","name":"Edward Thomson"},"message":"merge::workdir::dirty: tick idx to defeat racy-git","distinct":false,"url":"https://api.github.com/repos/stinb/libgit2/commits/fef5344c50e33d01c08bec1687cb8a14a2a5efa2"},{"sha":"892abf93157ea576fc3f2ccac118045a6a47247c","author":{"email":"01e52f97b955c0550893d63da521b4a784d67022@microsoft.com","name":"Edward Thomson"},"message":"checkout: allow workdir to contain checkout target\n\nWhen checking out some file 'foo' that has been modified in the\nworking directory, allow the checkout to proceed (do not conflict)\nif 'foo' is identical to the target of the checkout.","distinct":false,"url":"https://api.github.com/repos/stinb/libgit2/commits/892abf93157ea576fc3f2ccac118045a6a47247c"},{"sha":"a56db99234017eb7814258dfe8bcdec365417a3b","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"Merge pull request #3219 from libgit2/cmn/racy-diff\n\nZero out racily-clean entries' file_size","distinct":false,"url":"https://api.github.com/repos/stinb/libgit2/commits/a56db99234017eb7814258dfe8bcdec365417a3b"},{"sha":"534d136da32047a9fbde738bc47fa0e6196303eb","author":{"email":"e88116dcd19eff75c6264107b29ab273c69b34a0@microsoft.com","name":"Jeff Hostetler"},"message":"Fix memory leak in tests/network/refspecs.c","distinct":false,"url":"https://api.github.com/repos/stinb/libgit2/commits/534d136da32047a9fbde738bc47fa0e6196303eb"},{"sha":"83a04a69da717aee7f313433b6b1eb7e3c4ebdec","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"Merge pull request #3227 from jeffhostetler/memory_leak__tests_network_refspecs\n\nFix memory leak in tests/network/refspecs.c","distinct":false,"url":"https://api.github.com/repos/stinb/libgit2/commits/83a04a69da717aee7f313433b6b1eb7e3c4ebdec"},{"sha":"85a5e8ebe171afa948e0ad18fe3769e0fe1244b5","author":{"email":"d28b28e5a8b7d1595ffb8af57514f7705db4d09c@mac.com","name":"Pierre-Olivier Latour"},"message":"Fixed Xcode 6.1 build warnings","distinct":false,"url":"https://api.github.com/repos/stinb/libgit2/commits/85a5e8ebe171afa948e0ad18fe3769e0fe1244b5"},{"sha":"6e0470e0f573b5ccecaa5048d906c1c80239333a","author":{"email":"eecb638c0e60875b4a70118790d5be43bb59c2d6@dwim.me","name":"Carlos Martín Nieto"},"message":"Merge pull request #3229 from git-up/build_warnings\n\nFixed Xcode 6.1 build warnings","distinct":false,"url":"https://api.github.com/repos/stinb/libgit2/commits/6e0470e0f573b5ccecaa5048d906c1c80239333a"},{"sha":"a6912a3e2cee0b98270195d0f6f64bb126bb89d4","author":{"email":"68c46a606457643eab92053c1c05574abb26f861@scitools.com","name":"Jason Haslam"},"message":"Add diff progress callback.","distinct":false,"url":"https://api.github.com/repos/stinb/libgit2/commits/a6912a3e2cee0b98270195d0f6f64bb126bb89d4"},{"sha":"4f8e6876e90ba24b02888e1186b01098fb3cbc1d","author":{"email":"68c46a606457643eab92053c1c05574abb26f861@scitools.com","name":"Jason Haslam"},"message":"Added blame progress callback.","distinct":true,"url":"https://api.github.com/repos/stinb/libgit2/commits/4f8e6876e90ba24b02888e1186b01098fb3cbc1d"}]}