{"push_id":704679304,"size":71,"distinct_size":71,"ref":"refs/heads/pu","head":"59b012b18decdf5cd441c4322b2c17d452e5dcd2","before":"9039c98c80c1e4e3213c0e1aec01bc37136cd29c","commits":[{"sha":"caf00b63ef2670a4b6287b7a2759266ca5729f4f","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"Move lockfile API documentation to lockfile.h\n\nRearrange/rewrite it somewhat to fit its new environment.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/caf00b63ef2670a4b6287b7a2759266ca5729f4f"},{"sha":"792ee815b94f896710265f6d12e7b181b022f87a","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"tempfile: a new module for handling temporary files\n\nA lot of work went into defining the state diagram for lockfiles and\nensuring correct, race-resistant cleanup in all circumstances.\n\nMost of that infrastructure can be applied directly to *any* temporary\nfile. So extract a new \"tempfile\" module from the \"lockfile\" module.\nReimplement lockfile on top of tempfile.\n\nThis first step is a pretty direct transplant of code. Subsequent\ncommits will improve the boundary between the two modules and add\nusers of the new module.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/792ee815b94f896710265f6d12e7b181b022f87a"},{"sha":"25ce7ac30194a8aac5bf4dcd59333c6a43a066a8","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"lockfile: remove some redundant functions\n\nRemove the following functions and rewrite their callers to use the\nequivalent tempfile functions directly:\n\n* fdopen_lock_file() -> fdopen_tempfile()\n* reopen_lock_file() -> reopen_tempfile()\n* close_lock_file() -> close_tempfile()\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/25ce7ac30194a8aac5bf4dcd59333c6a43a066a8"},{"sha":"9e8b262dba9ee2946c8ec7a62f49c6ee082e0440","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"commit_lock_file(): use get_locked_file_path()\n\nFirst beef up the sanity checking in get_locked_file_path() to match\nthat in commit_lock_file(). Then rewrite commit_lock_file() to use\nget_locked_file_path() for its pathname computation.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/9e8b262dba9ee2946c8ec7a62f49c6ee082e0440"},{"sha":"aaed77efc96f1012bcbf36d2bdabc1d53b620739","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"register_tempfile_object(): new function, extracted from create_tempfile()\n\nThis makes the next step easier.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/aaed77efc96f1012bcbf36d2bdabc1d53b620739"},{"sha":"709c0c612755c7da5402de695fd72b2afa7b2681","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"tempfile: add several functions for creating temporary files\n\nAdd several functions for creating temporary files with\nautomatically-generated names, analogous to mkstemps(), but also\narranging for the files to be deleted on program exit.\n\nThe functions are named according to a pattern depending how they\noperate. They will be used to replace many places in the code where\ntemporary files are created and cleaned up ad-hoc.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/709c0c612755c7da5402de695fd72b2afa7b2681"},{"sha":"56185cd5421e63e78ad699819a2b43baa7c0700a","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"register_tempfile(): new function to handle an existing temporary file\n\nAllow an existing file to be registered with the tempfile-handling\ninfrastructure; in particular, arrange for it to be deleted on program\nexit.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/56185cd5421e63e78ad699819a2b43baa7c0700a"},{"sha":"8317ed074247475ea2c65d0361a63330c44815dc","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"write_shared_index(): use tempfile module\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/8317ed074247475ea2c65d0361a63330c44815dc"},{"sha":"1024de1ea9ac4e46b5f964c04c7257df72a38a5e","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"setup_temporary_shallow(): use tempfile module\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/1024de1ea9ac4e46b5f964c04c7257df72a38a5e"},{"sha":"472ec10b2f257a6cfd7e9d60122f7cbb8f8bae07","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"diff: use tempfile module\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/472ec10b2f257a6cfd7e9d60122f7cbb8f8bae07"},{"sha":"aeecef05e341ab2adc936e7a819ff58fc30ce60e","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"lock_repo_for_gc(): compute the path to \"gc.pid\" only once\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/aeecef05e341ab2adc936e7a819ff58fc30ce60e"},{"sha":"457590ba43dcca0c71f10c97ea68dacc7a6b8e24","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"gc: use tempfile module to handle gc.pid file\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/457590ba43dcca0c71f10c97ea68dacc7a6b8e24"},{"sha":"3839aef92d1e779dc4a4919631c18da61f3858b8","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"credential-cache--daemon: delete socket from main()\n\nmain() is responsible for cleaning up the socket in the case of\nerrors, so it is reasonable to also make it responsible for cleaning\nit up when there are no errors. This change also makes the next step\neasier.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/3839aef92d1e779dc4a4919631c18da61f3858b8"},{"sha":"f1336752489643c6a62efd27af9554a79e15458c","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"credential-cache--daemon: use tempfile module\n\nUse the tempfile module to ensure that the socket file gets deleted on\nprogram exit.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/f1336752489643c6a62efd27af9554a79e15458c"},{"sha":"78cc1a540ba127b13f2f3fd531777b57f3a9cd46","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Revert \"diff-lib.c: adjust position of i-t-a entries in diff\"\n\nThis reverts commit d95d728aba06a34394d15466045cbdabdada58a2.\n\nIt turns out that many other commands that need to interact with the\nresult of running diff-files and diff-index, e.g.  \"git apply\", \"git\nrm\", etc., need to be adjusted to the new world order it brings in.\nFor example, it would break this sequence to correct a whitespace\nbreakage in the parts you changed:\n\n\tgit add -N file\n\tgit diff --cached file | git apply --cached --whitespace=fix\n\tgit checkout file\n\nIn the old world order, \"diff\" showed a patch to modify an existing\nempty file by adding its full contents, and \"apply\" updated the\nindex by modifying the existing empty blob (which is what an\nIntent-to-Add entry records in the index) with that patch.\n\nIn the new world order, \"diff\" shows a patch to create a new file\nwith its full contents, but because \"apply\" thinks that the i-t-a\nentry already exists in the index, it refused to accept a creation.\n\nAdjusting \"apply\" to this new world order is easy, but we need to\nassess the extent of the damage to the rest of the system the new\nworld order brought in before going forward and adjust them all,\nafter which we can resurrect the commit being reverted here.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/78cc1a540ba127b13f2f3fd531777b57f3a9cd46"},{"sha":"c2d7eebccd37d45ee42f813a0227e263d078bc74","author":{"email":"53fb8db7833fca1e1746dd8592f61048d350f64c@gmx.de","name":"Johannes Schindelin"},"message":"t3404: demonstrate CHERRY_PICK_HEAD bug\n\nWhen rev-list's --cherry option does not detect that a patch has already\nbeen applied upstream, an interactive rebase would offer to reapply it and\nconsequently stop at that patch with a failure, mentioning that the diff\nis empty.\n\nTraditionally, a `git rebase --continue` simply skips the commit in such a\nsituation.\n\nHowever, as pointed out by Gábor Szeder, this leaves a CHERRY_PICK_HEAD\nbehind, making the Git prompt believe that a cherry pick is still going\non. This commit adds a test case demonstrating this bug.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/c2d7eebccd37d45ee42f813a0227e263d078bc74"},{"sha":"24b2fef5621942dd27759b72cc919dc807623836","author":{"email":"53fb8db7833fca1e1746dd8592f61048d350f64c@gmx.de","name":"Johannes Schindelin"},"message":"rebase -i: do not leave a CHERRY_PICK_HEAD file behind\n\nWhen skipping commits whose changes were already applied via `git rebase\n--continue`, we need to clean up said file explicitly.\n\nThe same is not true for `git rebase --skip` because that will execute\n`git reset --hard` as part of the \"skip\" handling in git-rebase.sh, even\nbefore git-rebase--interactive.sh is called.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/24b2fef5621942dd27759b72cc919dc807623836"},{"sha":"0282f4dced029230024196e460b9d9f971f494dd","author":{"email":"53fb8db7833fca1e1746dd8592f61048d350f64c@gmx.de","name":"Johannes Schindelin"},"message":"fsck: offer a function to demote fsck errors to warnings\n\nThere are legacy repositories out there whose older commits and tags\nhave issues that prevent pushing them when 'receive.fsckObjects' is set.\nOne real-life example is a commit object that has been hand-crafted to\nlist two authors.\n\nOften, it is not possible to fix those issues without disrupting the\nwork with said repositories, yet it is still desirable to perform checks\nby setting `receive.fsckObjects = true`. This commit is the first step\nto allow demoting specific fsck issues to mere warnings.\n\nThe `fsck_set_msg_types()` function added by this commit parses a list\nof settings in the form:\n\n\tmissingemail=warn,badname=warn,...\n\nUnfortunately, the FSCK_WARN/FSCK_ERROR flag is only really heeded by\ngit fsck so far, but other call paths (e.g. git index-pack --strict)\nerror out *always* no matter what type was specified. Therefore, we need\nto take extra care to set all message types to FSCK_ERROR by default in\nthose cases.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/0282f4dced029230024196e460b9d9f971f494dd"},{"sha":"5d477a334a68698709f07ebda4999c10997ef6f7","author":{"email":"53fb8db7833fca1e1746dd8592f61048d350f64c@gmx.de","name":"Johannes Schindelin"},"message":"fsck (receive-pack): allow demoting errors to warnings\n\nFor example, missing emails in commit and tag objects can be demoted to\nmere warnings with\n\n\tgit config receive.fsck.missingemail=warn\n\nThe value is actually a comma-separated list.\n\nIn case that the same key is listed in multiple receive.fsck.<msg-id>\nlines in the config, the latter configuration wins (this can happen for\nexample when both $HOME/.gitconfig and .git/config contain message type\nsettings).\n\nAs git receive-pack does not actually perform the checks, it hands off\nthe setting to index-pack or unpack-objects in the form of an optional\nargument to the --strict option.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/5d477a334a68698709f07ebda4999c10997ef6f7"},{"sha":"71ab8fa840fcca4b4f80acba6a529e3cbc174b65","author":{"email":"53fb8db7833fca1e1746dd8592f61048d350f64c@gmx.de","name":"Johannes Schindelin"},"message":"fsck: report the ID of the error/warning\n\nSome repositories written by legacy code have objects with non-fatal\nfsck issues. To allow the user to ignore those issues, let's print\nout the ID (e.g. when encountering \"missingEmail\", the user might\nwant to call `git config --add receive.fsck.missingEmail=warn`).\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/git/git/commits/71ab8fa840fcca4b4f80acba6a529e3cbc174b65"}]}