summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-08-09submodule--helper: use parallel processor correctlyLibravatar Stefan Beller1-2/+6
When developing another patch series I had a temporary state in which git-clone would segfault, when the call was prepared in prepare_to_clone_next_submodule. This lead to the call failing, i.e. in `update_clone_task_finished` the task was scheduled to be tried again. The second call to prepare_to_clone_next_submodule would return 0, as the segfaulted clone did create the .git file already, such that was not considered to need to be cloned again. I was seeing the "BUG: ce was a submodule before?\n" message, which was the correct behavior at the time as my local code was buggy. When trying to debug this failure, I tried to use printing messages into the strbuf that is passed around, but these messages were never printed as the die(..) doesn't flush the `err` strbuf. When implementing the die() in 665b35ecc (2016-06-09, "submodule--helper: initial clone learns retry logic"), I considered this condition to be a severe condition, which should lead to an immediate abort as we do not trust ourselves any more. However the queued messages in `err` are valuable so let's not toss them out by immediately dying, but a graceful return. Another thing to note: The error message itself was misleading. A return value of 0 doesn't indicate the passed in `ce` is not a submodule any more, but just that we do not consider cloning it any more. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-07-22submodule-helper: fix indexing in clone retry error reporting pathLibravatar Johannes Sixt3-5/+5
'git submodule--helper update-clone' has logic to retry failed clones a second time. For this purpose, there is a list of submodules to clone, and a second list that is filled with the submodules to retry. Within these lists, the submodules are identified by an index as if both lists were just appended. This works nicely except when the second clone attempt fails as well. To report an error, the identifying index must be adjusted by an offset so that it can be used as an index into the second list. However, the calculation uses the logical total length of the lists so that the result always points one past the end of the second list. Pick the correct index. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Acked-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-07-22git-submodule: forward exit code of git-submodule--helper more faithfullyLibravatar Johannes Sixt3-15/+15
git-submodule--helper is invoked as the upstream of a pipe in several places. Usually, the failure of a program in this position is not detected by the shell. For this reason, the code inserts a token in the output stream when git-submodule--helper fails that is detected downstream, where the shell script is quit with exit code 1. There happens to be a bug in git-submodule--helper that leads to a segmentation fault. The test suite triggers the crash in several places, all of which are protected by 'test_must_fail'. But due to the inspecific exit code 1, the crash remains undiagnosed. Extend the failure protocol such that git-submodule--helper's exit code is passed downstream (only in the case of failure). This enables the downstream to use it as its own exit code, and 'test_must_fail' to identify the segmentation fault as an unexpected failure. The bug itself is fixed in the next commit. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Acked-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-07-11Merge branch 'sb/submodule-clone-retry'Libravatar Junio C Hamano2-8/+60
"git submodule update" that drives many "git clone" could eventually hit flaky servers/network conditions on one of the submodules; the command learned to retry the attempt. * sb/submodule-clone-retry: submodule update: continue when a clone fails submodule--helper: initial clone learns retry logic
2016-07-11Merge branch 'jc/send-email-skip-backup'Libravatar Junio C Hamano1-0/+40
A careless invocation of "git send-email directory/" after editing 0001-change.patch with an editor often ends up sending both 0001-change.patch and its backup file, 0001-change.patch~, causing embarrassment and a minor confusion. Detect such an input and offer to skip the backup files when sending the patches out. * jc/send-email-skip-backup: send-email: detect and offer to skip backup files
2016-07-06Third batch of topics for 2.10Libravatar Junio C Hamano1-16/+111
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-07-06Sync with maintLibravatar Junio C Hamano2-0/+35
* maint: More fixes for 2.9.1 mailmap: use main email address for dturner
2016-07-06Merge branch 'jc/t2300-setup'Libravatar Junio C Hamano1-1/+9
Portability fix for Windows. * jc/t2300-setup: t2300: "git --exec-path" is not usable in $PATH on Windows as-is
2016-07-06Merge branch 'ao/p4-has-branch-prefix-fix'Libravatar Junio C Hamano1-1/+1
A bug, which caused "git p4" while running under verbose mode to report paths that are omitted due to branch prefix incorrectly, has been fixed; the command said "Ignoring file outside of prefix" for paths that are _inside_. * ao/p4-has-branch-prefix-fix: git-p4: correct hasBranchPrefix verbose output
2016-07-06Merge branch 'cb/t7810-test-label-fix'Libravatar Junio C Hamano1-1/+1
Test clean-up. * cb/t7810-test-label-fix: t7810: fix duplicated test title
2016-07-06Merge branch 'sb/t5614-modernize'Libravatar Junio C Hamano1-50/+20
Test clean-up. * sb/t5614-modernize: t5614: don't use subshells
2016-07-06Merge branch 'js/perf-on-apple'Libravatar Junio C Hamano2-1/+7
t/perf needs /usr/bin/time with GNU extension; the invocation of it is updated to "gtime" on Darwin. * js/perf-on-apple: perf: accommodate for MacOSX
2016-07-06Merge branch 'ak/t7800-wo-readlink'Libravatar Junio C Hamano1-1/+1
One among four invocations of readlink(1) in our test suite has been rewritten so that the test can run on systems without the command (others are in valgrind test framework and t9802). * ak/t7800-wo-readlink: t7800: readlink may not be available
2016-07-06Merge branch 'jk/tzoffset-fix'Libravatar Junio C Hamano3-17/+71
The internal code used to show local timezone offset is not prepared to handle timestamps beyond year 2100, and gave a bogus offset value to the caller. Use a more benign looking +0000 instead and let "git log" going in such a case, instead of aborting. * jk/tzoffset-fix: local_tzoffset: detect errors from tm_to_time_t t0006: test various date formats t0006: rename test-date's "show" to "relative"
2016-07-06Merge branch 'js/mingw-parameter-less-c-functions'Libravatar Junio C Hamano3-6/+6
Some platform-specific code had non-ANSI strict declarations of C functions that do not take any parameters, which has been corrected. * js/mingw-parameter-less-c-functions: mingw: let the build succeed with DEVELOPER=1
2016-07-06Merge branch 'lc/shell-default-value-noexpand'Libravatar Junio C Hamano1-3/+3
Fix unnecessarily waste in the idiomatic use of ': ${VAR=default}' to set the default value, without enclosing it in double quotes. * lc/shell-default-value-noexpand: sh-setup: enclose setting of ${VAR=default} in double-quotes
2016-07-06Merge branch 'sb/clone-shallow-passthru'Libravatar Junio C Hamano3-8/+21
Fix an unintended regression in v2.9 that breaks "clone --depth" that recurses down to submodules by forcing the submodules to also be cloned shallowly, which many server instances that host upstream of the submodules are not prepared for. * sb/clone-shallow-passthru: clone: do not let --depth imply --shallow-submodules
2016-07-06Merge branch 'jk/gpg-interface-cleanup'Libravatar Junio C Hamano4-71/+214
A new run-command API function pipe_command() is introduced to sanely feed data to the standard input while capturing data from the standard output and the standard error of an external process, which is cumbersome to hand-roll correctly without deadlocking. The codepath to sign data in a prepared buffer with GPG has been updated to use this API to read from the status-fd to check for errors (instead of relying on GPG's exit status). * jk/gpg-interface-cleanup: gpg-interface: check gpg signature creation status sign_buffer: use pipe_command verify_signed_buffer: use pipe_command run-command: add pipe_command helper verify_signed_buffer: use tempfile object verify_signed_buffer: drop pbuf variable gpg-interface: use child_process.args
2016-07-06Merge branch 'mg/signature-doc'Libravatar Junio C Hamano2-0/+187
Formats of the various data (and how to validate them) where we use GPG signature have been documented. * mg/signature-doc: Documentation/technical: signed merge tag format Documentation/technical: signed commit format Documentation/technical: signed tag format Documentation/technical: describe signature formats
2016-07-06Merge branch 'nd/graph-width-padded'Libravatar Junio C Hamano6-1/+80
"log --graph --format=" learned that "%>|(N)" specifies the width relative to the terminal's left edge, not relative to the area to draw text that is to the right of the ancestry-graph section. It also now accepts negative N that means the column limit is relative to the right border. * nd/graph-width-padded: pretty.c: support <direction>|(<negative number>) forms pretty: pass graph width to pretty formatting for use in '%>|(N)'
2016-07-06Merge branch 'jk/repack-keep-unreachable'Libravatar Junio C Hamano4-0/+82
"git repack" learned the "--keep-unreachable" option, which sends loose unreachable objects to a pack instead of leaving them loose. This helps heuristics based on the number of loose objects (e.g. "gc --auto"). * jk/repack-keep-unreachable: repack: extend --keep-unreachable to loose objects repack: add --keep-unreachable option repack: document --unpack-unreachable option
2016-07-06Merge branch 'ew/mboxrd-format-am'Libravatar Junio C Hamano14-16/+191
Teach format-patch and mailsplit (hence "am") how a line that happens to begin with "From " in the e-mail message is quoted with ">", so that these lines can be restored to their original shape. * ew/mboxrd-format-am: am: support --patch-format=mboxrd mailsplit: support unescaping mboxrd messages pretty: support "mboxrd" output format
2016-07-06Merge branch 'jk/upload-pack-hook'Libravatar Junio C Hamano7-40/+259
"upload-pack" allows a custom "git pack-objects" replacement when responding to "fetch/clone" via the uploadpack.packObjectsHook. * jk/upload-pack-hook: upload-pack: provide a hook for running pack-objects t1308: do not get fooled by symbolic links to the source tree config: add a notion of "scope" config: return configset value for current_config_ functions config: set up config_source for command-line config git_config_parse_parameter: refactor cleanup code git_config_with_options: drop "found" counting
2016-07-06Merge branch 'nd/worktree-cleanup-post-head-protection'Libravatar Junio C Hamano4-19/+42
Further preparatory clean-up for "worktree" feature continues. * nd/worktree-cleanup-post-head-protection: worktree: simplify prefixing paths worktree: avoid 0{40}, too many zeroes, hard to read worktree.c: use is_dot_or_dotdot() git-worktree.txt: keep subcommand listing in alphabetical order worktree.c: rewrite mark_current_worktree() to avoid strbuf completion: support git-worktree
2016-07-06Merge branch 'jk/bisect-show-tree'Libravatar Junio C Hamano1-0/+1
"git bisect" makes an internal call to "git diff-tree" when bisection finds the culprit, but this call did not initialize the data structure to pass to the diff-tree API correctly. * jk/bisect-show-tree: bisect: always call setup_revisions after init_revisions
2016-07-06Merge branch 'lf/sideband-returns-void'Libravatar Junio C Hamano3-15/+10
A small internal API cleanup. * lf/sideband-returns-void: upload-pack.c: make send_client_data() return void sideband.c: make send_sideband() return void
2016-07-06Merge branch 'jk/add-i-diff-compact-heuristics'Libravatar Junio C Hamano1-0/+4
"git add -i/-p" learned to honor diff.compactionHeuristic experimental knob, so that the user can work on the same hunk split as "git diff" output. * jk/add-i-diff-compact-heuristics: add--interactive: respect diff.compactionHeuristic
2016-07-06Merge branch 'km/fetch-do-not-free-remote-name'Libravatar Junio C Hamano1-4/+2
The ownership rule for the piece of memory that hold references to be fetched in "git fetch" was screwy, which has been cleaned up. * km/fetch-do-not-free-remote-name: builtin/fetch.c: don't free remote->name after fetch
2016-07-06Merge branch 'nd/test-lib-httpd-show-error-log-in-verbose'Libravatar Junio C Hamano1-0/+1
HTTPd tests learned to show the server error log to help diagnosing a failing tests. * nd/test-lib-httpd-show-error-log-in-verbose: lib-httpd.sh: print error.log on error
2016-07-06Merge branch 'jk/string-list-static-init'Libravatar Junio C Hamano11-21/+24
Instead of taking advantage of a struct string_list that is allocated with all NULs happens to be STRING_LIST_INIT_NODUP kind, initialize them explicitly as such, to document their behaviour better. * jk/string-list-static-init: use string_list initializer consistently blame,shortlog: don't make local option variables static interpret-trailers: don't duplicate option strings parse_opt_string_list: stop allocating new strings
2016-07-06Merge branch 'jk/send-pack-stdio'Libravatar Junio C Hamano3-29/+16
Code clean-up. * jk/send-pack-stdio: write_or_die: remove the unused write_or_whine() function send-pack: use buffered I/O to talk to pack-objects
2016-07-06Merge branch 'pb/commit-editmsg-path'Libravatar Junio C Hamano1-7/+8
Code clean-up. * pb/commit-editmsg-path: builtin/commit.c: memoize git-path for COMMIT_EDITMSG
2016-07-06Merge branch 'ep/http-curl-trace'Libravatar Junio C Hamano4-2/+133
HTTP transport gained an option to produce more detailed debugging trace. * ep/http-curl-trace: imap-send.c: introduce the GIT_TRACE_CURL enviroment variable http.c: implement the GIT_TRACE_CURL environment variable
2016-07-06More fixes for 2.9.1Libravatar Junio C Hamano1-0/+34
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-07-06Merge branch 'jc/deref-tag' into maintLibravatar Junio C Hamano2-6/+3
Code clean-up. * jc/deref-tag: blame, line-log: do not loop around deref_tag()
2016-07-06Merge branch 'pb/strbuf-read-file-doc' into maintLibravatar Junio C Hamano1-0/+2
Minor doc update. * pb/strbuf-read-file-doc: strbuf: describe the return value of strbuf_read_file
2016-07-06Merge branch 'jk/fetch-prune-doc' into maintLibravatar Junio C Hamano1-1/+1
Minor doc update. * jk/fetch-prune-doc: fetch: document that pruning happens before fetching
2016-07-06Merge branch 'pc/occurred' into maintLibravatar Junio C Hamano2-2/+2
Typofix. * pc/occurred: config.c: fix misspelt "occurred" in an error message refs.h: fix misspelt "occurred" in a comment
2016-07-06Merge branch 'mg/cherry-pick-multi-on-unborn' into maintLibravatar Junio C Hamano1-5/+6
"git cherry-pick A" worked on an unborn branch, but "git cherry-pick A..B" didn't. * mg/cherry-pick-multi-on-unborn: cherry-pick: allow to pick to unborn branches
2016-07-06Merge branch 'em/newer-freebsd-shells-are-fine-with-returns' into maintLibravatar Junio C Hamano3-6/+6
Comments about misbehaving FreeBSD shells have been clarified with the version number (9.x and before are broken, newer ones are OK). * em/newer-freebsd-shells-are-fine-with-returns: rebase: update comment about FreeBSD /bin/sh
2016-07-06Merge branch 'lv/status-say-working-tree-not-directory' into maintLibravatar Junio C Hamano1-1/+1
"git status" used to say "working directory" when it meant "working tree". * lv/status-say-working-tree-not-directory: Use "working tree" instead of "working directory" for git status
2016-07-06Merge branch 'nb/gnome-keyring-build' into maintLibravatar Junio C Hamano1-2/+3
Build improvements for gnome-keyring (in contrib/) * nb/gnome-keyring-build: gnome-keyring: Don't hard-code pkg-config executable
2016-07-06Merge branch 'et/add-chmod-x' into maintLibravatar Junio C Hamano6-20/+68
"git update-index --add --chmod=+x file" may be usable as an escape hatch, but not a friendly thing to force for people who do need to use it regularly. "git add --chmod=+x file" can be used instead. * et/add-chmod-x: add: add --chmod=+x / --chmod=-x options
2016-07-06Merge branch 'jk/avoid-unbounded-alloca' into maintLibravatar Junio C Hamano1-6/+16
A codepath that used alloca(3) to place an unbounded amount of data on the stack has been updated to avoid doing so. * jk/avoid-unbounded-alloca: tree-diff: avoid alloca for large allocations
2016-07-06Merge branch 'rj/compat-regex-size-max-fix' into maintLibravatar Junio C Hamano2-2/+1
A compilation fix. * rj/compat-regex-size-max-fix: regex: fix a SIZE_MAX macro redefinition warning
2016-07-06Merge branch 'vs/prompt-avoid-unset-variable' into maintLibravatar Junio C Hamano1-3/+3
The git-prompt scriptlet (in contrib/) was not friendly with those who uses "set -u", which has been fixed. * vs/prompt-avoid-unset-variable: git-prompt.sh: Don't error on null ${ZSH,BASH}_VERSION, $short_sha
2016-07-06Merge branch 'sg/reflog-past-root' into maintLibravatar Junio C Hamano3-1/+29
"git reflog" stopped upon seeing an entry that denotes a branch creation event (aka "unborn"), which made it appear as if the reflog was truncated. * sg/reflog-past-root: reflog: continue walking the reflog past root commits
2016-07-06Merge branch 'dn/gpg-doc' into maintLibravatar Junio C Hamano2-2/+2
The documentation tries to consistently spell "GPG"; when referring to the specific program name, "gpg" is used. * dn/gpg-doc: Documentation: GPG capitalization
2016-07-06Merge branch 'ap/git-svn-propset-doc' into maintLibravatar Junio C Hamano1-0/+14
"git svn propset" subcommand that was added in 2.3 days is documented now. * ap/git-svn-propset-doc: git-svn: document the 'git svn propset' command
2016-07-06Merge branch 'tr/doc-tt' into maintLibravatar Junio C Hamano36-217/+224
The documentation set has been updated so that literal commands, configuration variables and environment variables are consistently typeset in fixed-width font and bold in manpages. * tr/doc-tt: doc: change configuration variables format doc: more consistency in environment variables format doc: change environment variables format doc: clearer rule about formatting literals