{"push_id":934197111,"size":26,"distinct_size":1,"ref":"refs/heads/jk/tree-diff-traversal-wip","head":"348dfbff7c97ee51c2db0febb5c7889b8129ab87","before":"5b907f9c30ab345e9bd640bf7ee285527fb3fe93","commits":[{"sha":"fff69f7053b175be5963b08f802e0e03dccd696a","author":{"email":"c67f1ee17880030ce11821dcc9be7af90b863d9b@pks.im","name":"Patrick Steinhardt"},"message":"push: add '--delete' flag to synopsis\n\nThe delete flag is not mentioned in the synopsis of `git-push`.\nAdd the flag to make it more discoverable.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/fff69f7053b175be5963b08f802e0e03dccd696a"},{"sha":"b6b468b2bfaa8015568efad8e0a78b342e1ac640","author":{"email":"6332456ef49fc4679aae28823be306bf52d54cbb@gmail.com","name":"Victor Leschuk"},"message":"grep: allow threading even on a single-core machine\n\nEarlier we disabled threading when online_cpus() said \"1\", but on a\nfilesystem with long latency (or in a cold cache situation), using\nmultiple threads to drive I/O in parallel would improve performance\neven on a single-core machines.\n\nSigned-off-by: Victor Leschuk <vleschuk@accesssoftek.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/b6b468b2bfaa8015568efad8e0a78b342e1ac640"},{"sha":"044b1f3cb4ff09551f6c514ed02edafa6c4987b0","author":{"email":"6332456ef49fc4679aae28823be306bf52d54cbb@gmail.com","name":"Victor Leschuk"},"message":"grep: slight refactoring to the code that disables threading\n\nWhen show-in-pager option is used, threading is unconditionally\ndisabled, but this happened much earlier than the code that\ndetermines the use of threading based on the operand (i.e. we do not\nthread search in the object database).  Consolidate the code to\ndisable threading to just one place.\n\nSigned-off-by: Victor Leschuk <vleschuk@accesssoftek.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/044b1f3cb4ff09551f6c514ed02edafa6c4987b0"},{"sha":"aba37f495ee39aa9506a375bb4c667731df39899","author":{"email":"b6ce6696dcaf2f05101b8881fa962363d6722926@gmail.com","name":"Edmundo Carmona Antoranz"},"message":"blame: add support for --[no-]progress option\n\nTeach the command to show progress output when it takes long time to\nproduce the first line of output; this option cannot be used with\n\"--incremental\" or \"--porcelain\" options.\n\ngit-annotate inherits the option as well.\n\nHelped-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Edmundo Carmona Antoranz <eantoranz@gmail.com>\nReviewed-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/aba37f495ee39aa9506a375bb4c667731df39899"},{"sha":"e6be2655fcc9da303881f1a968621788e4a7e985","author":{"email":"df03e0c7173e07ef3c9602924c6f30b9854066f0@gmail.com","name":"Elia Pinto"},"message":"Makefile: add missing phony target\n\nAdd some missing phony target to Makefile.\n\nSigned-off-by: Elia Pinto <gitter.spiros@gmail.com>\nHelped-by: Matthieu Moy <Matthieu.Moy@imag.fr>\nReviewed-by: Matthieu Moy <Matthieu.Moy@imag.fr>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/e6be2655fcc9da303881f1a968621788e4a7e985"},{"sha":"89f09dd34e613394c749f69ddd74adc90cb034ca","author":{"email":"6332456ef49fc4679aae28823be306bf52d54cbb@gmail.com","name":"Victor Leschuk"},"message":"grep: add --threads=<num> option and grep.threads configuration\n\n\"git grep\" can now be configured (or told from the command line) how\nmany threads to use when searching in the working tree files.\n\nSigned-off-by: Victor Leschuk <vleschuk@accesssoftek.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/89f09dd34e613394c749f69ddd74adc90cb034ca"},{"sha":"fbf71645d12d30219e88598c4867ef7c2fe48cee","author":{"email":"b57189c5f2fd5b3daf3350a77fde90def1080fa5@gmail.com","name":"Jonathan Nieder"},"message":"submodule.c: write \"Fetching submodule <foo>\" to stderr\n\nThe \"Pushing submodule <foo>\" progress output correctly goes to\nstderr, but \"Fetching submodule <foo>\" is going to stdout by\nmistake.  Fix it to write to stderr.\n\nNoticed while trying to implement a parallel submodule fetch.  When\nthis particular output line went to a different file descriptor, it\nwas buffered separately, resulting in wrongly interleaved output if\nwe copied it to the terminal naively.\n\nSigned-off-by: Jonathan Nieder <jrnieder@gmail.com>\nSigned-off-by: Stefan Beller <sbeller@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/fbf71645d12d30219e88598c4867ef7c2fe48cee"},{"sha":"1079c4be0b72003668df647f8a520fa137c7e158","author":{"email":"a7f3b1612c245dae606b3b9617b4f52187fddb65@google.com","name":"Stefan Beller"},"message":"xread: poll on non blocking fds\n\nThe man page of read(2) says:\n\n  EAGAIN The file descriptor fd refers to a file other than a socket\n\t and has been marked nonblocking (O_NONBLOCK), and the read\n\t would block.\n\n  EAGAIN or EWOULDBLOCK\n\t The file descriptor fd refers to a socket and has been marked\n\t nonblocking (O_NONBLOCK), and the read would block.  POSIX.1-2001\n\t allows either error to be returned for this case, and does not\n\t require these constants to have the same value, so a portable\n\t application should check for both possibilities.\n\nIf we get an EAGAIN or EWOULDBLOCK the fd must have set O_NONBLOCK.\nAs the intent of xread is to read as much as possible either until the\nfd is EOF or an actual error occurs, we can ease the feeder of the fd\nby not spinning the whole time, but rather wait for it politely by not\nbusy waiting.\n\nWe should not care if the call to poll failed, as we're in an infinite\nloop and can only get out with the correct read().\n\nSigned-off-by: Stefan Beller <sbeller@google.com>\nAcked-by: Johannes Sixt <j6t@kdbg.org>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/1079c4be0b72003668df647f8a520fa137c7e158"},{"sha":"b4e04fb66e87a027c5f9c96bcbbba50719400169","author":{"email":"a7f3b1612c245dae606b3b9617b4f52187fddb65@google.com","name":"Stefan Beller"},"message":"strbuf: add strbuf_read_once to read without blocking\n\nThe new call will read from a file descriptor into a strbuf once. The\nunderlying call xread is just run once. xread only reattempts\nreading in case of EINTR, which makes it suitable to use for a\nnonblocking read.\n\nSigned-off-by: Stefan Beller <sbeller@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/b4e04fb66e87a027c5f9c96bcbbba50719400169"},{"sha":"bfb6b53c05daedc4084a5f716804a83781826230","author":{"email":"a7f3b1612c245dae606b3b9617b4f52187fddb65@google.com","name":"Stefan Beller"},"message":"sigchain: add command to pop all common signals\n\nThe new method removes all common signal handlers that were installed\nby sigchain_push.\n\nCC: Jeff King <peff@peff.net>\nSigned-off-by: Stefan Beller <sbeller@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/bfb6b53c05daedc4084a5f716804a83781826230"},{"sha":"c553c72eed64b5f7316ce227f6d5d783eae6f2ed","author":{"email":"a7f3b1612c245dae606b3b9617b4f52187fddb65@google.com","name":"Stefan Beller"},"message":"run-command: add an asynchronous parallel child processor\n\nThis allows to run external commands in parallel with ordered output\non stderr.\n\nIf we run external commands in parallel we cannot pipe the output directly\nto the our stdout/err as it would mix up. So each process's output will\nflow through a pipe, which we buffer. One subprocess can be directly\npiped to out stdout/err for a low latency feedback to the user.\n\nExample:\nLet's assume we have 5 submodules A,B,C,D,E and each fetch takes a\ndifferent amount of time as the different submodules vary in size, then\nthe output of fetches in sequential order might look like this:\n\n time -->\n output: |---A---| |-B-| |-------C-------| |-D-| |-E-|\n\nWhen we schedule these submodules into maximal two parallel processes,\na schedule and sample output over time may look like this:\n\nprocess 1: |---A---| |-D-| |-E-|\n\nprocess 2: |-B-| |-------C-------|\n\noutput:    |---A---|B|---C-------|DE\n\nSo A will be perceived as it would run normally in the single child\nversion. As B has finished by the time A is done, we can dump its whole\nprogress buffer on stderr, such that it looks like it finished in no\ntime. Once that is done, C is determined to be the visible child and\nits progress will be reported in real time.\n\nSo this way of output is really good for human consumption, as it only\nchanges the timing, not the actual output.\n\nFor machine consumption the output needs to be prepared in the tasks,\nby either having a prefix per line or per block to indicate whose tasks\noutput is displayed, because the output order may not follow the\noriginal sequential ordering:\n\n |----A----| |--B--| |-C-|\n\nwill be scheduled to be all parallel:\n\nprocess 1: |----A----|\nprocess 2: |--B--|\nprocess 3: |-C-|\noutput:    |----A----|CB\n\nThis happens because C finished before B did, so it will be queued for\noutput before B.\n\nTo detect when a child has finished executing, we check interleaved\nwith other actions (such as checking the liveliness of children or\nstarting new processes) whether the stderr pipe still exists. Once a\nchild closed its stderr stream, we assume it is terminating very soon,\nand use `finish_command()` from the single external process execution\ninterface to collect the exit status.\n\nBy maintaining the strong assumption of stderr being open until the\nvery end of a child process, we can avoid other hassle such as an\nimplementation using `waitpid(-1)`, which is not implemented in Windows.\n\nSigned-off-by: Stefan Beller <sbeller@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/c553c72eed64b5f7316ce227f6d5d783eae6f2ed"},{"sha":"fe85ee6e23e642985004d37e63b4c0d0e5f30587","author":{"email":"a7f3b1612c245dae606b3b9617b4f52187fddb65@google.com","name":"Stefan Beller"},"message":"fetch_populated_submodules: use new parallel job processing\n\nIn a later patch we enable parallel processing of submodules, this\nonly adds the possibility for it. So this change should not change\nany user facing behavior.\n\nSigned-off-by: Stefan Beller <sbeller@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/fe85ee6e23e642985004d37e63b4c0d0e5f30587"},{"sha":"62104ba14af4845c6c1ba1dab05fad4a289d806f","author":{"email":"a7f3b1612c245dae606b3b9617b4f52187fddb65@google.com","name":"Stefan Beller"},"message":"submodules: allow parallel fetching, add tests and documentation\n\nThis enables the work of the previous patches.\n\nSigned-off-by: Stefan Beller <sbeller@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/62104ba14af4845c6c1ba1dab05fad4a289d806f"},{"sha":"38a2559113d62b0f67ed968db9ca82330b702a9c","author":{"email":"c67f1ee17880030ce11821dcc9be7af90b863d9b@pks.im","name":"Patrick Steinhardt"},"message":"push: add '-d' as shorthand for '--delete'\n\n\"git push\" takes \"--delete\" but does not take a short form \"-d\",\nunlike \"git branch\" which does take both.  Bring consistency\nbetween them.\n\nSigned-off-by: Patrick Steinhardt <ps@pks.im>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/38a2559113d62b0f67ed968db9ca82330b702a9c"},{"sha":"df1e6ea87a58fc8d029efb3041d851f7d6653a1d","author":{"email":"024f400cd820cb2ddbe54c7fecfd01e45f30bb96@gmail.com","name":"Nguyễn Thái Ngọc Duy"},"message":"Revert \"setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR\"\n\nThis reverts d95138e6 (setup: set env $GIT_WORK_TREE when work tree\nis set, like $GIT_DIR, 2015-06-26).\n\nIt has caused three regression reports so far.\n\n  http://article.gmane.org/gmane.comp.version-control.git/281608\n  http://article.gmane.org/gmane.comp.version-control.git/281979\n  http://article.gmane.org/gmane.comp.version-control.git/282691\n\nAll of them are about spawning git subprocesses, where the new\npresence of GIT_WORK_TREE either changes command behaviour (git-init\nor git-clone), or how repo/worktree is detected (from aliases), with\nor without $GIT_DIR.\n\nThe original bug will be re-fixed another way.\n\nSigned-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/df1e6ea87a58fc8d029efb3041d851f7d6653a1d"},{"sha":"c6cd26696c4312fbe3800edc61e4fb0851ee180b","author":{"email":"2fb13878607728d4859ab9c5bae143a109a3437a@debian.org","name":"Changwoo Ryu"},"message":"l10n: ko.po: Add Korean translation\n\nSigned-off-by: Changwoo Ryu <cwryu@debian.org>\nSigned-off-by: Hyunjun Kim <yoloseem@users.noreply.github.com>","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/c6cd26696c4312fbe3800edc61e4fb0851ee180b"},{"sha":"1b0b6dd0720572dcf90c264aeb91f96a017b0f25","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'maint' of git://github.com/git-l10n/git-po into maint\n\n* 'maint' of git://github.com/git-l10n/git-po:\n  l10n: ko.po: Add Korean translation","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/1b0b6dd0720572dcf90c264aeb91f96a017b0f25"},{"sha":"d82d093456284e1a60db6c91f01a99b47880277f","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'nd/stop-setenv-work-tree'\n\nAn earlier change in 2.5.x-era broke users' hooks and aliases by\nexporting GIT_WORK_TREE to point at the root of the working tree,\ninterfering when they tried to use a different working tree without\nsetting GIT_WORK_TREE environment themselves.\n\n* nd/stop-setenv-work-tree:\n  Revert \"setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR\"","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/d82d093456284e1a60db6c91f01a99b47880277f"},{"sha":"ce7da1d2818e42647e96f882bf9cf40a685a771f","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'ep/make-phoney'\n\nA slight update to the Makefile.\n\n* ep/make-phoney:\n  Makefile: add missing phony target","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/ce7da1d2818e42647e96f882bf9cf40a685a771f"},{"sha":"7b9d1b9556b31fe5f661caa1e82856ca876f2a08","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"Merge branch 'ps/push-delete-option'\n\n\"branch --delete\" has \"branch -d\" but \"push --delete\" does not.\n\n* ps/push-delete-option:\n  push: add '-d' as shorthand for '--delete'\n  push: add '--delete' flag to synopsis","distinct":false,"url":"https://api.github.com/repos/peff/git/commits/7b9d1b9556b31fe5f661caa1e82856ca876f2a08"}]}