summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-05-10test-parse-options: --expect=<string> option to simplify testsLibravatar Junio C Hamano2-15/+76
Existing tests in t0040 follow a rather verbose pattern: cat >expect <<\EOF boolean: 0 integer: 0 magnitude: 0 timestamp: 0 string: (not set) abbrev: 7 verbose: 0 quiet: 3 dry run: no file: (not set) EOF test_expect_success 'multiple quiet levels' ' test-parse-options -q -q -q >output 2>output.err && test_must_be_empty output.err && test_cmp expect output ' But the only thing this test cares about is if "quiet: 3" is in the output. We should be able to write the above 18 lines with just four lines, like this: test_expect_success 'multiple quiet levels' ' test-parse-options --expect="quiet: 3" -q -q -q ' Teach the new --expect=<string> option to test-parse-options helper. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-05-10test-parse-options: fix output when callback option failsLibravatar Junio C Hamano2-5/+17
When test-parse-options detects an error on the command line, it gives the usage string just like any parse-options API users do, without showing any "variable dump". An exception is the callback test, where a "variable dump" for the option is done before the command line options are fully parsed. Do not expose this implementation detail by separating the handling of callback test into two phases, one to capture the fact that an option was given during the option parsing phase, and the other to show that fact as a part of normal "variable dump". The effect of this fix is seen in the patch to t/t0040 where it tried "test-parse-options --no-length" where "--length" is a callback that does not take a negative form. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-05-10commit: add a commit.verbose config variableLibravatar Pranit Bauva4-1/+67
Add commit.verbose configuration variable as a convenience for those who always prefer --verbose. Add tests to check the behavior introduced by this commit and also to verify that behavior of status doesn't break because of this commit. Helped-by: Junio C Hamano <gitster@pobox.com> Helped-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-05-05t7507-commit-verbose: improve test coverage by testing number of diffsLibravatar Pranit Bauva1-7/+9
Make the fake "editor" store output of grep in a file so that we can see how many diffs were contained in the message and use them in individual tests where ever it is required. A subsequent commit will introduce scenarios where it is important to be able to exactly determine how many diffs were present. The fake "editor" is always made to succeed regardless of whether grep found diff headers or not so that we don't have to use 'test_must_fail' for which 'test_line_count = 0' is an easy substitute and also helps in maintaining the consistency. Also use write_script() to create the fake "editor". Helped-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-05-05parse-options.c: make OPTION_COUNTUP respect "unspecified" valuesLibravatar Pranit Bauva4-17/+24
OPT_COUNTUP() merely increments the counter upon --option, and resets it to 0 upon --no-option, which means that there is no "unspecified" value with which a client can initialize the counter to determine whether or not --[no]-option was seen at all. Make OPT_COUNTUP() treat any negative number as an "unspecified" value to address this shortcoming. In particular, if a client initializes the counter to -1, then if it is still -1 after parse_options(), then neither --option nor --no-option was seen; if it is 0, then --no-option was seen last, and if it is 1 or greater, than --option was seen last. This change does not affect the behavior of existing clients because they all use the initial value of 0 (or more). Note that builtin/clean.c initializes the variable used with OPT__FORCE (which uses OPT_COUNTUP()) to a negative value, but it is set to either 0 or 1 by reading the configuration before the code calls parse_options(), i.e. as far as parse_options() is concerned, the initial value of the variable is not negative. To test this behavior, in test-parse-options.c, "verbose" is set to "unspecified" while quiet is set to 0 which will test the new behavior with all sets of values. Helped-by: Jeff King <peff@peff.net> Helped-by: Eric Sunshine <sunshine@sunshineco.com> Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-05-05t/t7507: improve test coverageLibravatar Pranit Bauva1-0/+5
git-commit and git-status share the same implementation thus it is necessary to ensure that changes specific to git-commit don't accidentally impact git-status. This test verifies that changes made to verbose in git-commit does not impact git-status. Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-05-05t0040-parse-options: improve test coverageLibravatar Pranit Bauva1-0/+114
Include tests to check for multiple levels of quiet and to check the behavior of '--no-quiet'. Include tests to check for multiple levels of verbose and to check the behavior of '--no-verbose'. Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-04-19test-parse-options: print quiet as integerLibravatar Pranit Bauva2-14/+14
We would want to see how multiple --quiet options affect the value of the underlying variable (we may want "--quiet --quiet" to still be 1, or we may want to see the value incremented to 2). Show the value as integer to allow us to inspect it. Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-04-19t0040-test-parse-options.sh: fix style issuesLibravatar Pranit Bauva1-38/+38
Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-04-08Third batch for post 2.8 cycleLibravatar Junio C Hamano1-0/+24
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-04-08Merge branch 'ss/msvc'Libravatar Junio C Hamano3-2/+6
Build updates for MSVC. * ss/msvc: MSVC: use shipped headers instead of fallback definitions MSVC: vsnprintf in Visual Studio 2015 doesn't need SNPRINTF_SIZE_CORR any more
2016-04-08Merge branch 'oa/doc-diff-check'Libravatar Junio C Hamano1-2/+2
A minor documentation update. * oa/doc-diff-check: Documentation: git diff --check detects conflict markers
2016-04-08Merge branch 'pb/opt-cmdmode-doc'Libravatar Junio C Hamano1-0/+7
Minor API documentation update. * pb/opt-cmdmode-doc: api-parse-options.txt: document OPT_CMDMODE()
2016-04-08Merge branch 'nd/apply-report-skip'Libravatar Junio C Hamano1-0/+2
"git apply -v" learned to report paths in the patch that were skipped via --include/--exclude mechanism or being outside the current working directory. * nd/apply-report-skip: apply: report patch skipping in verbose mode
2016-04-08Merge branch 'nd/apply-doc'Libravatar Junio C Hamano1-1/+3
A minor documentation update. * nd/apply-doc: git-apply.txt: mention the behavior inside a subdir git-apply.txt: remove a space
2016-04-08Merge branch 'jc/merge-refuse-new-root'Libravatar Junio C Hamano12-14/+57
"git merge" used to allow merging two branches that have no common base by default, which led to a brand new history of an existing project created and then get pulled by an unsuspecting maintainer, which allowed an unnecessary parallel history merged into the existing project. The command has been taught not to allow this by default, with an escape hatch "--allow-unrelated-histories" option to be used in a rare event that merges histories of two projects that started their lives independently. * jc/merge-refuse-new-root: merge: refuse to create too cool a merge by default
2016-04-06Second batch for post 2.8 cycleLibravatar Junio C Hamano2-2/+51
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-04-06Merge branch 'la/tag-force-signing-annotated-tags'Libravatar Junio C Hamano3-6/+60
"git tag" can create an annotated tag without explicitly given an "-a" (or "-s") option (i.e. when a tag message is given). A new configuration variable, tag.forceSignAnnotated, can be used to tell the command to create signed tag in such a situation. * la/tag-force-signing-annotated-tags: tag: add the option to force signing of annotated tags
2016-04-06Merge branch 'jk/submodule-c-credential'Libravatar Junio C Hamano8-19/+172
"git -c credential.<var>=<value> submodule" can now be used to propagate configuration variables related to credential helper down to the submodules. * jk/submodule-c-credential: git_config_push_parameter: handle empty GIT_CONFIG_PARAMETERS git: submodule honor -c credential.* from command line quote: implement sq_quotef() submodule: fix segmentation fault in submodule--helper clone submodule: fix submodule--helper clone usage submodule: check argc count for git submodule--helper clone submodule: don't pass empty string arguments to submodule--helper clone
2016-04-06Merge branch 'jv/merge-nothing-into-void'Libravatar Junio C Hamano2-5/+15
"git merge FETCH_HEAD" dereferenced NULL pointer when merging nothing into an unborn history (which is arguably unusual usage, which perhaps was the reason why nobody noticed it). * jv/merge-nothing-into-void: merge: fix NULL pointer dereference when merging nothing into void
2016-04-06Merge branch 'ss/commit-squash-msg'Libravatar Junio C Hamano2-1/+38
When "git merge --squash" stopped due to conflict, the concluding "git commit" failed to read in the SQUASH_MSG that shows the log messages from all the squashed commits. * ss/commit-squash-msg: commit: do not lose SQUASH_MSG contents
2016-04-06Merge branch 'sb/rebase-x'Libravatar Junio C Hamano3-22/+10
"git rebase -x" can be used without passing "-i" option. * sb/rebase-x: t3404: cleanup double empty lines between tests rebase: decouple --exec from --interactive
2016-04-06Merge branch 'jk/test-httpd-config-nosystem'Libravatar Junio C Hamano1-0/+1
The tests that involve running httpd leaked the system-wide configuration in /etc/gitconfig to the tested environment. * jk/test-httpd-config-nosystem: t/lib-httpd: pass through GIT_CONFIG_NOSYSTEM env
2016-04-06Merge branch 'jk/send-email-rtrim-mailrc-alias'Libravatar Junio C Hamano1-1/+1
"git send-email" had trouble parsing alias file in mailrc format when lines in it had trailing whitespaces on them. * jk/send-email-rtrim-mailrc-alias: send-email: ignore trailing whitespace in mailrc alias file
2016-04-06Merge branch 'jk/credential-cache-comment-exit'Libravatar Junio C Hamano1-1/+10
A code clarification. * jk/credential-cache-comment-exit: credential-cache--daemon: clarify "exit" action semantics
2016-04-06Merge branch 'sb/clone-t57-t56'Libravatar Junio C Hamano10-0/+0
Rename bunch of tests on "git clone" for better organization. * sb/clone-t57-t56: clone tests: rename t57* => t56*
2016-04-06Merge branch 'ls/p4-map-user'Libravatar Junio C Hamano3-0/+81
"git p4" now allows P4 author names to be mapped to Git author names. * ls/p4-map-user: git-p4: map a P4 user to Git author name and email address
2016-04-06Merge branch 'cc/doc-recommend-performance-trace-to-file'Libravatar Junio C Hamano1-0/+43
A minor documentation update. * cc/doc-recommend-performance-trace-to-file: Documentation: talk about pager in api-trace.txt
2016-04-06Merge branch 'pb/t7502-drop-dup'Libravatar Junio C Hamano1-5/+0
Code clean-up. * pb/t7502-drop-dup: t/t7502 : drop duplicate test
2016-04-06Merge branch 'da/mergetool-delete-delete-conflict'Libravatar Junio C Hamano2-4/+85
"git mergetool" did not work well with conflicts that both sides deleted. * da/mergetool-delete-delete-conflict: mergetool: honor tempfile configuration when resolving delete conflicts mergetool: support delete/delete conflicts
2016-04-06Merge branch 'sb/submodule-parallel-update'Libravatar Junio C Hamano18-62/+445
A major part of "git submodule update" has been ported to C to take advantage of the recently added framework to run download tasks in parallel. * sb/submodule-parallel-update: clone: allow an explicit argument for parallel submodule clones submodule update: expose parallelism to the user submodule helper: remove double 'fatal: ' prefix git submodule update: have a dedicated helper for cloning run_processes_parallel: rename parameters for the callbacks run_processes_parallel: treat output of children as byte array submodule update: direct error message to stderr fetching submodules: respect `submodule.fetchJobs` config option submodule-config: drop check against NULL submodule-config: keep update strategy around
2016-04-06Merge branch 'ss/receive-pack-parse-options'Libravatar Junio C Hamano1-33/+20
The command line argument parser for "receive-pack" has been rewritten to use parse-options. * ss/receive-pack-parse-options: builtin/receive-pack.c: use parse_options API
2016-04-06Merge branch 'ss/exc-flag-is-a-collection-of-bits'Libravatar Junio C Hamano3-9/+9
Code clean-up. * ss/exc-flag-is-a-collection-of-bits: dir: store EXC_FLAG_* values in unsigned integers
2016-04-03First batch for post 2.8 cycleLibravatar Junio C Hamano2-1/+85
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-04-03Sync with Git 2.8.1Libravatar Junio C Hamano4-3/+13
2016-04-03Merge branch 'jk/startup-info'Libravatar Junio C Hamano13-26/+54
The startup_info data, which records if we are working inside a repository (among other things), are now uniformly available to Git subcommand implementations, and Git avoids attempting to touch references when we are not in a repository. * jk/startup-info: use setup_git_directory() in test-* programs grep: turn off gitlink detection for --no-index mailmap: do not resolve blobs in a non-repository remote: don't resolve HEAD in non-repository setup: set startup_info->have_repository more reliably setup: make startup_info available everywhere
2016-04-03Merge branch 'es/test-gpg-tags'Libravatar Junio C Hamano2-35/+65
A test for tags has been restructured so that more parts of it can easily be run on a platform without a working GnuPG. * es/test-gpg-tags: t6302: skip only signed tags rather than all tests when GPG is missing t6302: also test annotated in addition to signed tags t6302: normalize names and descriptions of signed tags lib-gpg: drop unnecessary "missing GPG" warning
2016-04-03Merge branch 'jk/getwholeline-getdelim-empty'Libravatar Junio C Hamano2-1/+11
strbuf_getwholeline() did not NUL-terminate the buffer on certain corner cases in its error codepath. * jk/getwholeline-getdelim-empty: strbuf_getwholeline: NUL-terminate getdelim buffer on error
2016-04-03Merge branch 'rj/xdiff-prepare-plug-leak-on-error-codepath'Libravatar Junio C Hamano1-1/+2
A small memory leak in an error codepath has been plugged in xdiff code. * rj/xdiff-prepare-plug-leak-on-error-codepath: xdiff/xprepare: fix a memory leak xdiff/xprepare: use the XDF_DIFF_ALG() macro to access flag bits
2016-04-03Merge branch 'jc/index-pack'Libravatar Junio C Hamano1-18/+17
Code clean-up. * jc/index-pack: index-pack: add a helper function to derive .idx/.keep filename
2016-04-03Merge branch 'gf/fetch-pack-direct-object-fetch'Libravatar Junio C Hamano3-3/+31
Fetching of history by naming a commit object name directly didn't work across remote-curl transport. * gf/fetch-pack-direct-object-fetch: fetch-pack: update the documentation for "<refs>..." arguments fetch-pack: fix object_id of exact sha1
2016-04-03Merge branch 'jc/maint-index-pack-keep'Libravatar Junio C Hamano2-1/+7
"git index-pack --keep[=<msg>] pack-$name.pack" simply did not work. * jc/maint-index-pack-keep: index-pack: correct --keep[=<msg>]
2016-04-03Merge branch 'mm/lockfile-error-message'Libravatar Junio C Hamano1-5/+7
* mm/lockfile-error-message: lockfile: improve error message when lockfile exists lockfile: mark strings for translation
2016-04-03Merge branch 'jk/rev-parse-local-env-vars'Libravatar Junio C Hamano2-18/+77
The "--local-env-vars" and "--resolve-git-dir" options of "git rev-parse" failed to work outside a repository when the command's option parsing was rewritten in 1.8.5 era. * jk/rev-parse-local-env-vars: rev-parse: let some options run outside repository t1515: add tests for rev-parse out-of-repo helpers
2016-04-03Merge branch 'jk/config-get-urlmatch'Libravatar Junio C Hamano3-11/+16
"git config --get-urlmatch", unlike other variants of the "git config --get" family, did not signal error with its exit status when there was no matching configuration. * jk/config-get-urlmatch: Documentation/git-config: fix --get-all description Documentation/git-config: use bulleted list for exit codes config: fail if --get-urlmatch finds no value
2016-04-03Merge branch 'jk/add-i-highlight'Libravatar Junio C Hamano2-2/+18
* jk/add-i-highlight: add--interactive: allow custom diff highlighting programs
2016-04-03Merge branch 'jk/credential-clear-config'Libravatar Junio C Hamano4-5/+25
The credential.helper configuration variable is cumulative and there is no good way to override it from the command line. As a special case, giving an empty string as its value now serves as the signal to clear the values specified in various files. * jk/credential-clear-config: credential: let empty credential specs reset helper list
2016-04-03Merge branch 'mp/upload-pack-use-embedded-args'Libravatar Junio C Hamano1-14/+11
The embedded args argv-array in the child process is used to build the command line to run pack-objects instead of using a separate array of strings. * mp/upload-pack-use-embedded-args: upload-pack: use argv_array for pack_objects
2016-04-03Merge branch 'mm/diff-renames-default'Libravatar Junio C Hamano12-46/+131
The end-user facing Porcelain level commands like "diff" and "log" now enables the rename detection by default. * mm/diff-renames-default: diff: activate diff.renames by default log: introduce init_log_defaults() t: add tests for diff.renames (true/false/unset) t4001-diff-rename: wrap file creations in a test Documentation/diff-config: fix description of diff.renames
2016-04-03Merge branch 'mm/readme-markdown'Libravatar Junio C Hamano2-5/+4
Fix a few broken links in README.md and also teach rpmbuild that there is no README. * mm/readme-markdown: README.md: don't take 'commandname' literally git.spec.in: use README.md, not README