{"push_id":1100735451,"size":108,"distinct_size":91,"ref":"refs/heads/pu","head":"ff3d9b660a4b6e9d3eeb664ce1febe717adff737","before":"9155c772784903415ad8b4cb1438bdcb44f87da8","commits":[{"sha":"19dd7d06e5d2c58895dd101025c013404025e192","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"t1404: demonstrate a bug resolving references\n\nAdd some tests checking that it is possible to work with a reference\neven if there is an empty directory where the loose ref would be stored.\n\nOne of the new tests demonstrates a bug that has been with us since at\nleast 2.5.0--single reference lookup gives up when it sees the\ndirectory, even if the reference exists as a packed ref. This probably\nhasn't been reported before because Git usually cleans up empty\ndirectories when packing references.\n\nThis bug will be fixed shortly.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/19dd7d06e5d2c58895dd101025c013404025e192"},{"sha":"5387c0d8839e366c44838c808ccc20eb7f9bd358","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"commit_ref(): if there is an empty dir in the way, delete it\n\nPart of the bug revealed in the last commit is that resolve_ref_unsafe()\nincorrectly returns EISDIR if it finds a directory in the place where it\nis looking for a loose reference, even if the corresponding packed\nreference exists. lock_ref_sha1_basic() notices the bogus EISDIR, and\nuse it as an indication that it should call remove_empty_directories()\nand call resolve_ref_unsafe() again.\n\nBut resolve_ref_unsafe() shouldn't report EISDIR in this case. If we\nwould simply make that change, then remove_empty_directories() wouldn't\nget called anymore, and the empty directory would get in the way when\ncommit_ref() calls commit_lock_file() to rename the lockfile into place.\n\nSo instead of relying on lock_ref_sha1_basic() to delete empty\ndirectories, teach commit_ref(), just before calling commit_lock_file(),\nto check whether a directory is in the way, and if so, try to delete it.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/5387c0d8839e366c44838c808ccc20eb7f9bd358"},{"sha":"e167a5673e25b960dce118fb967d54da30b69def","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"read_raw_ref(): don't get confused by an empty directory\n\nEven if there is an empty directory where we look for the loose version\nof a reference, check for a packed reference before giving up. This\nfixes the failing test that was introduced two commits ago.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/e167a5673e25b960dce118fb967d54da30b69def"},{"sha":"e95792e532bde75fd4a1e91aecfcf9a28ba23955","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"safe_create_leading_directories(): improve docstring\n\nDocument the difference between this function and\nsafe_create_leading_directories_const(), and that the former restores\npath before returning.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/e95792e532bde75fd4a1e91aecfcf9a28ba23955"},{"sha":"728af2832c3e58222965521682414adb9a80932b","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"remove_dir_recursively(): add docstring\n\nAdd a docstring for the remove_dir_recursively() function and the\nREMOVE_DIR_* flags that can be passed to it.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/728af2832c3e58222965521682414adb9a80932b"},{"sha":"39950fef8bb45e944655e48393ee04c0b33211f5","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"refname_is_safe(): use skip_prefix()\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/39950fef8bb45e944655e48393ee04c0b33211f5"},{"sha":"35db25c65f6f77c153ef2b1183ea7821236201c8","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"refname_is_safe(): don't allow the empty string\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/35db25c65f6f77c153ef2b1183ea7821236201c8"},{"sha":"e40f3557f7e767bd2be2a824bc3bc2379aa69931","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"refname_is_safe(): insist that the refname already be normalized\n\nThe reference name is going to be compared to other reference names, so\nit should be in its normalized form.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/e40f3557f7e767bd2be2a824bc3bc2379aa69931"},{"sha":"76fc394d50efef8f1308a0f0d56087f502dac689","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"commit_ref_update(): write error message to *err, not stderr\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/76fc394d50efef8f1308a0f0d56087f502dac689"},{"sha":"e711b1af2ead2ffad5c510aadbbc387c7d8aa4c7","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"rename_ref(): remove unneeded local variable\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/e711b1af2ead2ffad5c510aadbbc387c7d8aa4c7"},{"sha":"366668e3785a18ca82587ab018ea72eb597e87ba","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"ref_transaction_commit(): remove local variable n\n\nThis microoptimization doesn't make a significant difference in speed.\nAnd it causes problems if somebody ever wants to modify the function to\nadd updates to a transaction as part of processing it, as will happen\nshortly.\n\nMake the same change in initial_ref_transaction_commit().\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/366668e3785a18ca82587ab018ea72eb597e87ba"},{"sha":"01fdd8bc94d4d207f7043c138809163ad56ea2e4","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"read_raw_ref(): rename flags argument to type\n\nThis will hopefully reduce confusion with the \"flags\" arguments that are\nused in many functions in this module as an input parameter to choose\nhow the function should operate.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/01fdd8bc94d4d207f7043c138809163ad56ea2e4"},{"sha":"4de20012b2428116751facc0897a3d3b3a2541e8","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"read_raw_ref(): clear *type at start of function\n\nThis is more convenient and less error-prone for callers.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/4de20012b2428116751facc0897a3d3b3a2541e8"},{"sha":"a81d595d8d327a37a98cffcdf5dc798969cfd39f","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"read_raw_ref(): rename symref argument to referent\n\nAfter all, it doesn't hold the symbolic reference, but rather the\nreference referred to.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/a81d595d8d327a37a98cffcdf5dc798969cfd39f"},{"sha":"3531b94aa4ba673eafdb92ec43838fbf4e619bc2","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"read_raw_ref(): improve docstring\n\nAmong other things, document the (important!) requirement that input\nrefname be checked for safety before calling this function.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/3531b94aa4ba673eafdb92ec43838fbf4e619bc2"},{"sha":"1443ddf162783043699ba2bc5c9cb0995b9b08cd","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"read_raw_ref(): move docstring to header file\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/1443ddf162783043699ba2bc5c9cb0995b9b08cd"},{"sha":"3484a284a7e2d495bff9179aef5ecf29d309e8c1","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"lock_ref_sha1_basic(): remove unneeded local variable\n\nresolve_ref_unsafe() can cope with being called with NULL passed to its\nflags argument. So lock_ref_sha1_basic() can just hand its own type\nparameter through.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/3484a284a7e2d495bff9179aef5ecf29d309e8c1"},{"sha":"b846ae21daff8fbbeb1b8ed9c8dbfb2a8035a81b","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"refs: make error messages more consistent\n\n* Always start error messages with a lower-case letter.\n\n* Always enclose reference names in single quotes.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/b846ae21daff8fbbeb1b8ed9c8dbfb2a8035a81b"},{"sha":"e053eafabefce5e91ef00fa69f0ff33270507de2","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"ref_transaction_create(): disallow recursive pruning\n\nIt is nonsensical (and a little bit dangerous) to use REF_ISPRUNING\nwithout REF_NODEREF. Forbid it explicitly. Change the one REF_ISPRUNING\ncaller to pass REF_NODEREF too.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/e053eafabefce5e91ef00fa69f0ff33270507de2"},{"sha":"f5bb5bf956f86d78f321b49ff444469bf274bc4c","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"ref_transaction_commit(): correctly report close_ref() failure\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/f5bb5bf956f86d78f321b49ff444469bf274bc4c"}]}