{"push_id":718833857,"size":179,"distinct_size":177,"ref":"refs/heads/pu","head":"d08caa8e022f08dea99cc40414b4fa1e3522e5cb","before":"601b202df39189c269f5da1e6e162d3f5be9e5d2","commits":[{"sha":"124b51909dab82151dff8ae8fd3a588a8846c7ac","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"pager: do not leak \"GIT_PAGER_IN_USE\" to the pager\n\nSince 2e6c012e (setup_pager: set GIT_PAGER_IN_USE, 2011-08-17), we\nexport GIT_PAGER_IN_USE so that a process that becomes the upstream\nof the spawned pager can still tell that we have spawned the pager\nand decide to do colored output even when its output no longer goes\nto a terminal (i.e. isatty(1)).\n\nBut we forgot to clear it from the enviornment of the spawned pager.\n\nThis is not a problem in a sane world, but if you have a handful of\nthousands Git users in your organization, somebody is bound to do\nstrange things, e.g. typing \"!<ENTER>\" instead of 'q' to get control\nback from $LESS.  GIT_PAGER_IN_USE is still set in that subshell\nspawned by \"less\", and all sorts of interesting things starts\nhappening, e.g. \"git diff | cat\" starts coloring its output.\n\nWe can clear the environment variable in the half of the fork that\nruns the pager to avoid the confusion.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\nAcked-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/124b51909dab82151dff8ae8fd3a588a8846c7ac"},{"sha":"6c8afe495b2cb6e2069942d7c006f6660e186690","author":{"email":"c24c152f145c57791e809b126db9e61bd1c1782d@alum.mit.edu","name":"Michael Haggerty"},"message":"strbuf: strbuf_read_file() should return ssize_t\n\nIt is currently declared to return int, which could overflow for\nlarge files.\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/sunny256/git/commits/6c8afe495b2cb6e2069942d7c006f6660e186690"},{"sha":"781d93067d3ab8b448a4c8989a6e3cac17009061","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"index-pack: fix allocation of sorted_by_pos array\n\nWhen c6458e60 (index-pack: kill union delta_base to save memory,\n2015-04-18) attempted to reduce the memory footprint of index-pack,\none of the key thing it did was to keep track of ref-deltas and\nofs-deltas separately.\n\nIn fix_unresolved_deltas(), however it forgot that it now wants to\nlook only at ref deltas in one place.  The code allocated an array\nfor nr_unresolved, which is sum of number of ref- and ofs-deltas\nminus nr_resolved, which may be larger or smaller than the number\nref-deltas.  Depending on nr_resolved, this was either under or over\nallocating.\n\nAlso, the old code before this change had to use 'i' and 'n' because\nsome of the things we see in the (old) deltas[] array we scanned\nwith 'i' would not make it into the sorted_by_pos[] array in the old\nworld order, but now because you have only ref delta in a separate\nref_deltas[] array, they increment lock&step.  We no longer need\nseparate variables.  And most importantly, we shouldn't pass the\nnr_unresolved parameter, as this number does not play a role in the\nworking of this helper function.\n\nHelped-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/sunny256/git/commits/781d93067d3ab8b448a4c8989a6e3cac17009061"},{"sha":"356ee5ea719d86a2ea8a3be08e6c38b0e0da43ee","author":{"email":"a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","name":"Junio C Hamano"},"message":"rerere: further de-dent do_plain_rerere()\n\nIt's just easier to follow this way.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/356ee5ea719d86a2ea8a3be08e6c38b0e0da43ee"},{"sha":"5bdb7a78adf2a2656a1915e6fa656aecb45c1fc3","author":{"email":"d4d2cc2a6ec7b2aa587d4887cc5ed200f9b685a1@imag.fr","name":"Matthieu Moy"},"message":"git-multimail: update to release 1.1.1\n\nThe only change is a bugfix: the SMTP mailer was not working with\nPython 2.4.\n\nSigned-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":false,"url":"https://api.github.com/repos/sunny256/git/commits/5bdb7a78adf2a2656a1915e6fa656aecb45c1fc3"},{"sha":"8482d042a016aaae1e564f9c34b4d5f6b59794be","author":{"email":"d4d2cc2a6ec7b2aa587d4887cc5ed200f9b685a1@imag.fr","name":"Matthieu Moy"},"message":"Documentation/branch: document -d --force and -m --force\n\nThe --force option was modified in 356e91f (branch: allow -f with -m and\n-d, 2014-12-08), but the documentation was not updated.\n\nSigned-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/8482d042a016aaae1e564f9c34b4d5f6b59794be"},{"sha":"83fe16703e3f5c39078db11449fd43f24a8f32f0","author":{"email":"d4d2cc2a6ec7b2aa587d4887cc5ed200f9b685a1@imag.fr","name":"Matthieu Moy"},"message":"Documentation/branch: document -M and -D in terms of --force\n\nNow that we have proper documentation for --force's interaction with -d\nand -m, we can avoid duplication and consider -M and -D as convenience\naliases for -m --force and -d --force.\n\nSigned-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/83fe16703e3f5c39078db11449fd43f24a8f32f0"},{"sha":"5c3146487459b80898b50686740bb273b2c2b022","author":{"email":"8d6e34f987851aa599257d3831a1af040886842f@sunshineco.com","name":"Eric Sunshine"},"message":"Documentation/git-checkout: fix incorrect worktree prune command\n\nThis was missed when \"git prune --worktrees\" became \"git worktree prune\".\n\nSigned-off-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/5c3146487459b80898b50686740bb273b2c2b022"},{"sha":"4f09825e58ce1da7af8cc96bff5a6b118790fffa","author":{"email":"8d6e34f987851aa599257d3831a1af040886842f@sunshineco.com","name":"Eric Sunshine"},"message":"Documentation/git-worktree: associate options with commands\n\ngit-worktree options affect some worktree commands but not others, but\nthis is not necessarily obvious from the option descriptions. Make this\nclear by indicating explicitly which commands are affected by which\noptions.\n\nSigned-off-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/4f09825e58ce1da7af8cc96bff5a6b118790fffa"},{"sha":"93a36493e2c9478c496328118dc52f6b270c7408","author":{"email":"8d6e34f987851aa599257d3831a1af040886842f@sunshineco.com","name":"Eric Sunshine"},"message":"Documentation: move linked worktree description from checkout to worktree\n\nNow that the git-worktree command exists, its documentation page is the\nnatural place for the linked worktree description to reside. Relocate\nthe \"MULTIPLE WORKING TREES\" description verbatim from git-checkout.txt\nto git-worktree.txt.\n\nSigned-off-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/93a36493e2c9478c496328118dc52f6b270c7408"},{"sha":"6d3824cf92c14d81ffb2ecaa76e35a811b7f596f","author":{"email":"8d6e34f987851aa599257d3831a1af040886842f@sunshineco.com","name":"Eric Sunshine"},"message":"Documentation/git-worktree: add BUGS section\n\nRelocate submodule warning to BUGS and enumerate missing commands.\n\nSigned-off-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/6d3824cf92c14d81ffb2ecaa76e35a811b7f596f"},{"sha":"af189b4cbec7f6ff4687c8ca78b2455c1f28923c","author":{"email":"8d6e34f987851aa599257d3831a1af040886842f@sunshineco.com","name":"Eric Sunshine"},"message":"Documentation/git-worktree: split technical info from general description\n\nThe DESCRIPTION section should provide a high-level overview of linked\nworktree functionality to bring users up to speed quickly, without\noverloading them with low-level details, so relocate the technical\ninformation to a new DETAILS section.\n\nSigned-off-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/af189b4cbec7f6ff4687c8ca78b2455c1f28923c"},{"sha":"a8ba5dd7b18ed3a3276ee23ab66569dbddc50913","author":{"email":"8d6e34f987851aa599257d3831a1af040886842f@sunshineco.com","name":"Eric Sunshine"},"message":"Documentation/git-worktree: add high-level 'lock' overview\n\nDue to the (current) absence of a \"git worktree lock\" command, locking\na worktree's administrative files to prevent automatic pruning is a\nmanual task, necessarily requiring low-level understanding of linked\nworktree functionality. However, this level of detail does not belong\nin the high-level DESCRIPTION section, so add a generalized discussion\nof locking to DESCRIPTION and move the technical information to DETAILS.\n\nSigned-off-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/a8ba5dd7b18ed3a3276ee23ab66569dbddc50913"},{"sha":"96454597562dade701fbfee19891482a97456138","author":{"email":"8d6e34f987851aa599257d3831a1af040886842f@sunshineco.com","name":"Eric Sunshine"},"message":"Documentation/git-worktree: add EXAMPLES section\n\nSigned-off-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/96454597562dade701fbfee19891482a97456138"},{"sha":"c990a4c11dd7bb671da1b30e14568ad986621488","author":{"email":"8d6e34f987851aa599257d3831a1af040886842f@sunshineco.com","name":"Eric Sunshine"},"message":"checkout: fix bug with --to and relative HEAD\n\nGiven \"git checkout --to <path> HEAD~1\", the new worktree's HEAD should\nbegin life at the current branch's HEAD~1, however, it actually ends up\nat HEAD~2. This happens because:\n\n    1. git-checkout resolves HEAD~1\n\n    2. to satisfy is_git_directory(), prepare_linked_worktree() creates\n       a HEAD for the new worktree with the value of the resolved HEAD~1\n\n    3. git-checkout re-invokes itself with the same arguments within the\n       new worktree to populate the worktree\n\n    4. the sub git-checkout resolves HEAD~1 relative to its own HEAD,\n       which is the resolved HEAD~1 from the original invocation,\n       resulting unexpectedly and incorrectly in HEAD~2 (relative to the\n       original)\n\nFix this by unconditionally assigning the current worktree's HEAD as the\nvalue of the new worktree's HEAD.\n\nAs a side-effect, this change also eliminates a dependence within\nprepare_linked_checkout() upon 'struct branch_info'. The plan is to\neventually relocate \"git checkout --to\" functionality to \"git worktree\nadd\", and worktree.c won't have knowledge of 'struct branch_info', so\nremoval of this dependency is a step toward that goal.\n\nSigned-off-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/c990a4c11dd7bb671da1b30e14568ad986621488"},{"sha":"9559ce8368b533862584b2717532e3c25232f1c9","author":{"email":"8d6e34f987851aa599257d3831a1af040886842f@sunshineco.com","name":"Eric Sunshine"},"message":"checkout: relocate --to's \"no branch specified\" check\n\nThe plan is to relocate \"git checkout --to\" functionality to \"git\nworktree add\", however, this check expects a 'struct branch_info' which\ngit-worktree won't have at hand. It will, however, have access to its\nown command-line from which it can pick up the branch name. Therefore,\nas a preparatory step, rather than having prepare_linked_checkout()\nperform this check, make it the caller's responsibility.\n\nSigned-off-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/9559ce8368b533862584b2717532e3c25232f1c9"},{"sha":"3c3e7f5b57f94b8f5fcba5042cf2412625c24d4a","author":{"email":"8d6e34f987851aa599257d3831a1af040886842f@sunshineco.com","name":"Eric Sunshine"},"message":"checkout: prepare_linked_checkout: drop now-unused 'new' argument\n\nThe only references to 'new' were folded out by the last two patches.\n\nSigned-off-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/3c3e7f5b57f94b8f5fcba5042cf2412625c24d4a"},{"sha":"338dfd0da4b7fd3ccf0772788d64cbcdf089f486","author":{"email":"8d6e34f987851aa599257d3831a1af040886842f@sunshineco.com","name":"Eric Sunshine"},"message":"checkout: make --to unconditionally verbose\n\nprepare_linked_checkout() respects git-checkout's --quiet flag, however,\nthe plan is to relocate \"git checkout --to\" functionality to \"git\nworktree add\", and git-worktree does not (yet) have a --quiet flag.\nConsequently, make prepare_linked_checkout() unconditionally verbose to\nease eventual code movement to worktree.c.\n\n(A --quiet flag can be added to git-worktree later if there is demand\nfor it.)\n\nSigned-off-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/338dfd0da4b7fd3ccf0772788d64cbcdf089f486"},{"sha":"bdf0f375b9cf1c272233583a03eddef1772da99e","author":{"email":"8d6e34f987851aa599257d3831a1af040886842f@sunshineco.com","name":"Eric Sunshine"},"message":"checkout: drop 'checkout_opts' dependency from prepare_linked_checkout\n\nThe plan is to relocate \"git checkout --to\" functionality to \"git\nworktree add\", however, worktree.c won't have access to the 'struct\ncheckout_opts' passed to prepare_linked_worktree(), which it consults\nfor the pathname of the new worktree and the argv[] of the command it\nshould run to populate the new worktree. Facilitate relocation of\nprepare_linked_worktree() by instead having it accept the pathname and\nargv[] directly, thus eliminating the final references to 'struct\ncheckout_opts'.\n\nSigned-off-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/bdf0f375b9cf1c272233583a03eddef1772da99e"},{"sha":"fc56361f58a20f1259e1ba2364424ec27825c37f","author":{"email":"8d6e34f987851aa599257d3831a1af040886842f@sunshineco.com","name":"Eric Sunshine"},"message":"worktree: introduce \"add\" command\n\nThe plan is to relocate \"git checkout --to\" functionality to \"git\nworktree add\". As a first step, introduce a bare-bones git-worktree\n\"add\" command along with documentation. At this stage, \"git worktree\nadd\" merely invokes \"git checkout --to\" behind the scenes, but an\nupcoming patch will move the actual functionality\n(checkout.c:prepare_linked_checkout() and its helpers) to worktree.c.\n\nSigned-off-by: Eric Sunshine <sunshine@sunshineco.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/sunny256/git/commits/fc56361f58a20f1259e1ba2364424ec27825c37f"}]}