{"shas":[["91cd7e4b426b0dc4755212fcbac3c822499ddd15","8846602a89ca53d44af0c0033a3c79dc5d05ea84@gmail.com","t/t7407: demonstrate that the command called by 'submodule foreach' loses stdin\n\nThe user-supplied command spawned by 'submodule foreach' loses its\nconnection to the original standard input.  Instead, it is connected to the\noutput of a pipe within the git-submodule script.  This can cause a problem\nif the command requires reading from stdin or if it changes its behavior\nbased on whether stdin is a tty or not (e.g. git shortlog).  Demonstrate\nthis flaw.\n\nSigned-off-by: Brandon Casey <drafnel@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Brandon Casey"],["4dca1aa6502a46f8d7b6ecc8e7812c5c23ad0923","8846602a89ca53d44af0c0033a3c79dc5d05ea84@gmail.com","git-submodule.sh: preserve stdin for the command spawned by foreach\n\nThe user-supplied command spawned by 'submodule foreach' loses its\nconnection to the original standard input.  Instead, it is connected to the\noutput of a pipe within the git-submodule script.  The user-supplied\ncommand supplied to 'submodule foreach' is spawned within a while loop\nwhich is being piped into.  Due to the way shells implement piping output\nto a while loop, a subshell is created with its standard input attached to\nthe output of the pipe.  This results in all of the commands executed\nwithin the while loop to have their stdins modified in the same way,\nincluding the user-supplied command.\n\nThis can cause a problem if the command requires reading from stdin or if\nit changes its behavior based on whether stdin is a tty or not.  For\nexample, this problem was noticed when trying to execute the following:\n\n   git submodule foreach git shortlog --since=two.weeks.ago\n\nwhich printed a message about entering the first submodule and produced no\nfurther output and exited with a status of zero.  In this case, shortlog\ndetected that it was not connected to a tty, and since no revision was\nsupplied as an argument, it attempted to read the list of revisions from\nstandard input.  Instead, it slurped up the list of submodules that was\nbeing piped to the enclosing while loop and caused that loop to end early\nwithout processing the remaining submodules.\n\nWork around this behavior by saving the original standard input file\ndescriptor before the while loop, and restoring it when spawning the\nuser-supplied command.\n\nThis fixes the tests in t7407.\n\nSigned-off-by: Brandon Casey <drafnel@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Brandon Casey"],["d28790dc31ca1bcdca7254a6b9381b6c84e91271","696e3fbcf235d40b6ea1ebd61c87cbea79d444e7@peff.net","docs: document --textconv diff option\n\nThis has been there since textconv existed, but was never\ndocumented. There is some overlap with what's in\ngitattributes(5), but it's important to warn in both places\nthat textconv diffs probably can't be applied.\n\nSigned-off-by: Jeff King <peff@peff.net>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Jeff King"],["395f65d438b13fb1fded88a330dc06c3b0951046","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'maint'\n\n* maint:\n  docs: document --textconv diff option","Junio C Hamano"],["cf13f6ca40529a33b66c5e1e7cc69947974b3648","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Start 1.7.7 cycle\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","Junio C Hamano"],["3b1d3664f5bec42ea70e71f5c20cb2a64fc1f06b","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'an/shallow-doc'\n\n* an/shallow-doc:\n  Document the underlying protocol used by shallow repositories and --depth commands.\n  Fix documentation of fetch-pack that implies that the client can disconnect after sending wants.","Junio C Hamano"],["5f2e448370e7c436b9ad7e7c495f4c96630f3e3c","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'jc/legacy-loose-object'\n\n* jc/legacy-loose-object:\n  sha1_file.c: \"legacy\" is really the current format","Junio C Hamano"],["ff968f03e6951e8ee84cfb923f8905296286134a","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'fg/submodule-keep-updating'\n\n* fg/submodule-keep-updating:\n  git-submodule.sh: clarify the \"should we die now\" logic\n  submodule update: continue when a checkout fails\n  git-sh-setup: add die_with_status\n\nConflicts:\n\tgit-submodule.sh","Junio C Hamano"],["6389a79dd4327333dd157a866dc99ebe7136d753","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'jc/no-gitweb-test-without-cgi-etc'\n\n* jc/no-gitweb-test-without-cgi-etc:\n  t/gitweb-lib.sh: skip gitweb tests when perl dependencies are not met","Junio C Hamano"],["d4c8c55fab116a22284696143f434574c32ee7e4","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'ln/gitweb-mime-types-split-at-blank'\n\n* ln/gitweb-mime-types-split-at-blank:\n  gitweb: allow space as delimiter in mime.types","Junio C Hamano"],["bc50897b90177f03c74e53467d1b62aec74789c5","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'md/interix-update'\n\n* md/interix-update:\n  Update the Interix default build configuration.","Junio C Hamano"],["551d75dbd80cb6af08376ea8a12bdaa3f5860f35","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'rj/config-cygwin'\n\n* rj/config-cygwin:\n  config.c: Make git_config() work correctly when called recursively\n  t1301-*.sh: Fix the 'forced modes' test on cygwin\n  help.c: Fix detection of custom merge strategy on cygwin","Junio C Hamano"],["23f229d8cd02eb933512637b617be5ea85d4a608","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'aw/rebase-i-p'\n\n* aw/rebase-i-p:\n  rebase -i -p: include non-first-parent commits in todo list","Junio C Hamano"],["df9b29ce82ba24729d5431f5e9751470e3a44f25","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'jc/maint-cygwin-trust-executable-bit-default'\n\n* jc/maint-cygwin-trust-executable-bit-default:\n  cygwin: trust executable bit by default","Junio C Hamano"],["182f22893078a65110aaaf98100e85618fca83b2","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'jl/maint-fetch-recursive-fix'\n\n* jl/maint-fetch-recursive-fix:\n  fetch: Also fetch submodules in subdirectories in on-demand mode","Junio C Hamano"],["b57e58fc82439ac8ae1d46d8a5303d5920091ae5","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'fk/relink-upon-ldflags-update'\n\n* fk/relink-upon-ldflags-update:\n  Makefile: Track changes to LDFLAGS and relink when necessary","Junio C Hamano"],["0e8a23bf1f75fbae5ffff2e3847adb4543d3ae0b","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'nk/ref-doc'\n\n* nk/ref-doc:\n  glossary: clarify description of HEAD\n  glossary: update description of head and ref\n  glossary: update description of \"tag\"\n  git.txt: de-emphasize the implementation detail of a ref\n  check-ref-format doc: de-emphasize the implementation detail of a ref\n  git-remote.txt: avoid sounding as if loose refs are the only ones in the world\n  git-remote.txt: fix wrong remote refspec","Junio C Hamano"],["13ac90a47878b0bb26375a1a6901a629aa2b2def","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'bc/submodule-foreach-stdin-fix-1.7.4'\n\n* bc/submodule-foreach-stdin-fix-1.7.4:\n  git-submodule.sh: preserve stdin for the command spawned by foreach\n  t/t7407: demonstrate that the command called by 'submodule foreach' loses stdin\n\nConflicts:\n\tgit-submodule.sh","Junio C Hamano"],["af52e6b06ad108aa372fcc8432f1c449eeb5a34b","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'jn/doc-dashdash'\n\n* jn/doc-dashdash:\n  Documentation/i18n: quote double-dash for AsciiDoc\n  Documentation: quote double-dash for AsciiDoc","Junio C Hamano"],["55272570dbe1c3f2a6f2f142c4bfe806665cd111","a6723cc3f76163bf7adb636a73ac3b0ceb3e6b9b@pobox.com","Merge branch 'js/rebase-typo-branch-squelch-usage'\n\n* js/rebase-typo-branch-squelch-usage:\n  rebase: do not print lots of usage hints after an obvious error message","Junio C Hamano"]],"ref":"refs/heads/master","size":20,"head":"55272570dbe1c3f2a6f2f142c4bfe806665cd111","push_id":36829704}