{"push_id":1780189747,"size":98,"distinct_size":0,"ref":"refs/heads/jk/xdl-siphash","head":"ee5833e88e2e90b420bb8e7bbea870105c67bdbd","before":"1cda922c6236b1487664292913528869e25dd5b9","commits":[{"sha":"9f41c7a6b3e3cc3ac4a739364400393fa2492880","author":{"name":"Jeff Hostetler","email":"87a0b6b6f0619ada6ac211e42d56c1d3a55141dc@microsoft.com"},"message":"read-cache: close index.lock in do_write_index\n\nTeach do_write_index() to close the index.lock file\nbefore getting the mtime and updating the istate.timestamp\nfields.\n\nOn Windows, a file's mtime is not updated until the file is\nclosed.  On Linux, the mtime is set after the last flush.\n\nSigned-off-by: Jeff Hostetler <jeffhost@microsoft.com>\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/9f41c7a6b3e3cc3ac4a739364400393fa2492880"},{"sha":"cf5e77223a012737930e1bbacc85c6423b03af77","author":{"name":"Marc Branchaud","email":"df7d11699776ba7d63abbda292eec23974306c03@xiplink.com"},"message":"diff: make the indent heuristic part of diff's basic configuration\n\nThis heuristic was originally introduced as an experimental feature,\nand therefore part of the UI configuration.\n\nBut the user often sees diffs generated by plumbing commands like\ndiff-tree.  Moving the indent heuristic into diff's basic configuration\nprepares the way for diff plumbing commands to respect the setting.\n\nThe heuristic itself merely makes the diffs more aesthetically\npleasing, without changing their correctness.  Scripts that rely on\nthe diff plumbing commands should not care whether or not the heuristic\nis employed.\n\nSigned-off-by: Marc Branchaud <marcnarc@xiplink.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/cf5e77223a012737930e1bbacc85c6423b03af77"},{"sha":"37590ce3c535f92e28da83893f843cc0099873bf","author":{"name":"Marc Branchaud","email":"df7d11699776ba7d63abbda292eec23974306c03@xiplink.com"},"message":"diff: have the diff-* builtins configure diff before initializing revisions\n\nThis matches how the diff Porcelain works.  It makes the plumbing commands\nrespect diff's configuration options, such as indentHeuristic, because\ninit_revisions() calls diff_setup() which fills in the diff_options struct.\n\nSigned-off-by: Marc Branchaud <marcnarc@xiplink.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/37590ce3c535f92e28da83893f843cc0099873bf"},{"sha":"33de7163879ca83be7d6e1583c125f84e1e7c329","author":{"name":"Stefan Beller","email":"75e5af3a5fc6e432c184f339c5c73c118a246be6@google.com"},"message":"diff: enable indent heuristic by default\n\nThe feature was included in v2.11 (released 2016-11-29) and we got no\nnegative feedback. Quite the opposite, all feedback we got was positive.\n\nTurn it on by default. Users who dislike the feature can turn it off\nby setting diff.indentHeuristic (which also configures plumbing commands,\nsee prior patches).\n\nThe change to t/t4051-diff-function-context.sh is needed because the\nheuristic shifts the changed hunk in the patch.  To get the same result\nregardless of the heuristic configuration, we modify the test file\ndifferently:  We insert a completely new line after line 2, instead of\nsimply duplicating it.\n\nHelped-by: Jeff King <peff@peff.net>\nSigned-off-by: Stefan Beller <sbeller@google.com>\nSigned-off-by: Marc Branchaud <marcnarc@xiplink.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/33de7163879ca83be7d6e1583c125f84e1e7c329"},{"sha":"1fa8a66bf76953c6fb9cfe5e17b26a3a0920f538","author":{"name":"Jeff King","email":"7e57302763bea699aee296fb53304dc616ab92d5@peff.net"},"message":"add--interactive: drop diff.indentHeuristic handling\n\nNow that diff.indentHeuristic is handled automatically by the plumbing\ncommands, there's no need to propagate it manually.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Marc Branchaud <marcnarc@xiplink.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/1fa8a66bf76953c6fb9cfe5e17b26a3a0920f538"},{"sha":"ca7b2ab07da7551a16f1eed49ade21aa5334021b","author":{"name":"Junio C Hamano","email":"3228067b6039a0d99bddaf967dafdecd5cc61600@pobox.com"},"message":"Merge branch 'bc/object-id'\n\n* bc/object-id: (53 commits)\n  object: convert parse_object* to take struct object_id\n  tree: convert parse_tree_indirect to struct object_id\n  sequencer: convert do_recursive_merge to struct object_id\n  diff-lib: convert do_diff_cache to struct object_id\n  builtin/ls-tree: convert to struct object_id\n  merge: convert checkout_fast_forward to struct object_id\n  sequencer: convert fast_forward_to to struct object_id\n  builtin/ls-files: convert overlay_tree_on_cache to object_id\n  builtin/read-tree: convert to struct object_id\n  sha1_name: convert internals of peel_onion to object_id\n  upload-pack: convert remaining parse_object callers to object_id\n  revision: convert remaining parse_object callers to object_id\n  revision: rename add_pending_sha1 to add_pending_oid\n  http-push: convert process_ls_object and descendants to object_id\n  refs/files-backend: convert many internals to struct object_id\n  refs: convert struct ref_update to use struct object_id\n  ref-filter: convert some static functions to struct object_id\n  Convert struct ref_array_item to struct object_id\n  Convert the verify_pack callback to struct object_id\n  Convert lookup_tag to struct object_id\n  ...","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/ca7b2ab07da7551a16f1eed49ade21aa5334021b"},{"sha":"23739aa2b3d2546c3b3ff0e06eb5171b37e31a90","author":{"name":"Michael Haggerty","email":"63ccb4d9e500fc508c7d045328459e7f9a66afd1@alum.mit.edu"},"message":"t3600: clean up permissions test properly\n\nThe test of failing `git rm -f` removes the write permissions on the\ntest directory, but fails to restore them if the test fails. This\nmeans that the test temporary directory cannot be cleaned up, which\nmeans that subsequent attempts to run the test fail mysteriously.\n\nInstead, do the cleanup in a `test_when_finished` block so that it\ncan't be skipped.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/23739aa2b3d2546c3b3ff0e06eb5171b37e31a90"},{"sha":"fd2ce9c01c91a093fbc8f7e444d4d80c0d89432a","author":{"name":"Michael Haggerty","email":"63ccb4d9e500fc508c7d045328459e7f9a66afd1@alum.mit.edu"},"message":"refs.h: clarify docstring for the ref_transaction_update()-related fns\n\nIn particular, make it clear that they make copies of the sha1\narguments.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/fd2ce9c01c91a093fbc8f7e444d4d80c0d89432a"},{"sha":"e186057138666058a2c67c3389509c9430d95b24","author":{"name":"Michael Haggerty","email":"63ccb4d9e500fc508c7d045328459e7f9a66afd1@alum.mit.edu"},"message":"ref_iterator_begin_fn(): fix docstring\n\nThe iterator returned by this function only includes references whose\nnames start with the whole prefix, not all of those in\n`find_containing_dir(prefix)` as the old docstring claimed. This\ndocstring was probably copy-pasted from old ref-cache code, which had\nthe old specification. But now, `cache_ref_iterator_begin()`\n(from which the files reference iterator gets its values)\nautomatically wraps its output using `prefix_ref_iterator_begin()`\nwhen necessary, so it has the stricter behavior.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/e186057138666058a2c67c3389509c9430d95b24"},{"sha":"04aea8d4df199836da3802f08cb5738eae66fa6c","author":{"name":"Michael Haggerty","email":"63ccb4d9e500fc508c7d045328459e7f9a66afd1@alum.mit.edu"},"message":"files-backend: use `die(\"BUG: ...\")`, not `die(\"internal error: ...\")`\n\nThe former is by far more common in our codebase.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/04aea8d4df199836da3802f08cb5738eae66fa6c"},{"sha":"b9c8e7f2fb6ee19defeaa2927a0af42b525d8b33","author":{"name":"Michael Haggerty","email":"63ccb4d9e500fc508c7d045328459e7f9a66afd1@alum.mit.edu"},"message":"prefix_ref_iterator: don't trim too much\n\nThe `trim` parameter can be set independently of `prefix`. So if some\ncaller were to set `trim` to be greater than `strlen(prefix)`, we\ncould end up pointing the `refname` field of the iterator past the NUL\nof the actual reference name string.\n\nThat can't happen currently, because `trim` is always set either to\nzero or to `strlen(prefix)`. But even the latter could lead to\nconfusion, if a refname is exactly equal to the prefix, because then\nwe would set the outgoing `refname` to the empty string.\n\nAnd we're about to decouple the `prefix` and `trim` arguments even\nmore, so let's be cautious here. Report a bug if ever asked to trim a\nreference whose name is not longer than `trim`.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/b9c8e7f2fb6ee19defeaa2927a0af42b525d8b33"},{"sha":"c7599718167de62c437490e9ea300eeb9284a572","author":{"name":"Michael Haggerty","email":"63ccb4d9e500fc508c7d045328459e7f9a66afd1@alum.mit.edu"},"message":"refs_ref_iterator_begin(): don't check prefixes redundantly\n\nThe backend already correctly restricts its output to references whose\nnames start with the prefix. By passing the prefix again to\n`prefix_ref_iterator`, we were forcing that iterator to do redundant\nprefix comparisons. So set it to the empty string.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/c7599718167de62c437490e9ea300eeb9284a572"},{"sha":"43a2dfde76a4a47ffa31be11fd5cd7fe0b57bb84","author":{"name":"Michael Haggerty","email":"63ccb4d9e500fc508c7d045328459e7f9a66afd1@alum.mit.edu"},"message":"refs: use `size_t` indexes when iterating over ref transaction updates\n\nEliminate any chance of integer overflow on platforms where the two\ntypes have different sizes.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/43a2dfde76a4a47ffa31be11fd5cd7fe0b57bb84"},{"sha":"64da41993a2c33e9187858808d5a6c87e6d6d101","author":{"name":"Michael Haggerty","email":"63ccb4d9e500fc508c7d045328459e7f9a66afd1@alum.mit.edu"},"message":"ref_store: take a `msg` parameter when deleting references\n\nJust because the files backend can't retain reflogs for deleted\nreferences is no reason that they shouldn't be supported by the\nvirtual method interface. Also, `delete_ref()` and `refs_delete_ref()`\nhave already gained `msg` parameters. Now let's add them to\n`delete_refs()` and `refs_delete_refs()`.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/64da41993a2c33e9187858808d5a6c87e6d6d101"},{"sha":"0978f4ba7fe571d96b9f13827bdac6c30eeebfa2","author":{"name":"Michael Haggerty","email":"63ccb4d9e500fc508c7d045328459e7f9a66afd1@alum.mit.edu"},"message":"lockfile: add a new method, is_lock_file_locked()\n\nIt will soon prove useful.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/0978f4ba7fe571d96b9f13827bdac6c30eeebfa2"},{"sha":"55c6bc37c90e134e9da39b8cce1f3084318374d3","author":{"name":"Michael Haggerty","email":"63ccb4d9e500fc508c7d045328459e7f9a66afd1@alum.mit.edu"},"message":"files-backend: move `lock` member to `files_ref_store`\n\nMove the `lock` member from `packed_ref_cache` to `files_ref_store`,\nsince at most one cache can have a locked \"packed-refs\" file\nassociated with it. Rename it to `packed_refs_lock` to make its\npurpose clearer in its new home. More changes are coming here shortly.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/55c6bc37c90e134e9da39b8cce1f3084318374d3"},{"sha":"00d174489e9905411dbae5f895758f2ca489bd9f","author":{"name":"Michael Haggerty","email":"63ccb4d9e500fc508c7d045328459e7f9a66afd1@alum.mit.edu"},"message":"files_ref_store: put the packed files lock directly in this struct\n\nInstead of using a global `lock_file` instance for the main\n\"packed-refs\" file and using a pointer in `files_ref_store` to keep\ntrack of whether it is locked, embed the `lock_file` instance directly\nin the `files_ref_store` struct and use the new\n`is_lock_file_locked()` function to keep track of whether it is\nlocked. This keeps related data together and makes the main reference\nstore less of a special case.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/00d174489e9905411dbae5f895758f2ca489bd9f"},{"sha":"c0ca9357640ae5efbdbfed4c5b476c820a839e85","author":{"name":"Michael Haggerty","email":"63ccb4d9e500fc508c7d045328459e7f9a66afd1@alum.mit.edu"},"message":"files_transaction_cleanup(): new helper function\n\nExtract the cleanup functionality from `files_transaction_commit()`\ninto a new function. It will soon have another caller.\n\nUse the common cleanup code even on early exit if the transaction is\nempty, to reduce code duplication.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/c0ca9357640ae5efbdbfed4c5b476c820a839e85"},{"sha":"8d4240d3c8a2d31b7bedda8408c0b3c217c76998","author":{"name":"Michael Haggerty","email":"63ccb4d9e500fc508c7d045328459e7f9a66afd1@alum.mit.edu"},"message":"ref_transaction_commit(): check for valid `transaction->state`\n\nMove the check that `transaction->state` is valid from\n`files_transaction_commit()` to `ref_transaction_commit()`, where\nother future reference backends can benefit from it as well.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/8d4240d3c8a2d31b7bedda8408c0b3c217c76998"},{"sha":"30173b8851bb7203de938a638386cb9e6d7c501b","author":{"name":"Michael Haggerty","email":"63ccb4d9e500fc508c7d045328459e7f9a66afd1@alum.mit.edu"},"message":"ref_transaction_prepare(): new optional step for reference updates\n\nIn the future, compound reference stores will sometimes need to modify\nreferences in two different reference stores at the same time, meaning\nthat a single logical reference transaction might have to be\nimplemented as two internal sub-transactions. They won't want to call\n`ref_transaction_commit()` for the two sub-transactions one after the\nother, because that wouldn't be atomic (the first commit could succeed\nand the second one fail). Instead, they will want to prepare both\nsub-transactions (i.e., obtain any necessary locks and do any\npre-checks), and only if both prepare steps succeed, then commit both\nsub-transactions.\n\nStart preparing for that day by adding a new, optional\n`ref_transaction_prepare()` step to the reference transaction\nsequence, which obtains the locks and does any prechecks, reporting\nany errors that occur. Also add a `ref_transaction_abort()` function\nthat can be used to abort a sub-transaction even if it has already\nbeen prepared.\n\nThat is on the side of the public-facing API. On the side of the\n`ref_store` VTABLE, get rid of `transaction_commit` and instead add\nmethods `transaction_prepare`, `transaction_finish`, and\n`transaction_abort`. A `ref_transaction_commit()` now basically calls\nmethods `transaction_prepare` then `transaction_finish`.\n\nSigned-off-by: Michael Haggerty <mhagger@alum.mit.edu>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/30173b8851bb7203de938a638386cb9e6d7c501b"}]}
{"actor":{"display_login":"peff"}}