summaryrefslogtreecommitdiff
path: root/t
AgeCommit message (Collapse)AuthorFilesLines
2013-01-20Merge branch 'rt/commit-cleanup-config'Libravatar Junio C Hamano2-7/+82
Add a configuration variable to set default clean-up mode other than "strip". * rt/commit-cleanup-config: commit: make default of "cleanup" option configurable
2013-01-20Merge branch 'ap/log-mailmap'Libravatar Junio C Hamano1-0/+56
Teach commands in the "log" family to optionally pay attention to the mailmap. * ap/log-mailmap: log --use-mailmap: optimize for cases without --author/--committer search log: add log.mailmap configuration option log: grep author/committer using mailmap test: add test for --use-mailmap option log: add --use-mailmap option pretty: use mailmap to display username and email mailmap: add mailmap structure to rev_info and pp mailmap: simplify map_user() interface mailmap: remove email copy and length limitation Use split_ident_line to parse author and committer string-list: allow case-insensitive string list
2013-01-18Merge branch 'nd/fix-perf-parameters-in-tests'Libravatar Junio C Hamano1-1/+1
Allow GIT_PERF_* environment variables to be passed through the test framework. * nd/fix-perf-parameters-in-tests: test-lib.sh: unfilter GIT_PERF_*
2013-01-15test-lib.sh: unfilter GIT_PERF_*Libravatar Nguyễn Thái Ngọc Duy1-1/+1
These variables are user parameters to control how to run the perf tests. Allow users to do so. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-14Merge branch 'fc/remote-testgit-feature-done'Libravatar Junio C Hamano1-0/+21
In the longer term, tightening rules is a good thing to do, and because nobody who has worked in the remote helper area seems to be interested in reviewing this, I would assume they do not think such a retroactive tightening will affect their remote helpers. So let's advance this topic to see what happens. * fc/remote-testgit-feature-done: remote-testgit: properly check for errors
2013-01-14Merge branch 'ap/status-ignored-in-ignored-directory'Libravatar Junio C Hamano1-0/+146
Output from "git status --ignored" showed an unexpected interaction with "--untracked". * ap/status-ignored-in-ignored-directory: status: always report ignored tracked directories git-status: Test --ignored behavior dir.c: Make git-status --ignored more consistent
2013-01-14Merge branch 'jk/unify-exit-code-by-receiving-signal' into maintLibravatar Junio C Hamano1-1/+1
* jk/unify-exit-code-by-receiving-signal: run-command: encode signal death as a positive integer
2013-01-14Merge branch 'jl/interrupt-clone-remove-separate-git-dir' into maintLibravatar Junio C Hamano1-1/+11
When "git clone --separate-git-dir=$over_there" is interrupted, it failed to remove the real location of the $GIT_DIR it created. This was most visible when interrupting a submodule update. * jl/interrupt-clone-remove-separate-git-dir: clone: support atomic operation with --separate-git-dir
2013-01-14Merge branch 'mk/maint-graph-infinity-loop' into maintLibravatar Junio C Hamano1-0/+10
* mk/maint-graph-infinity-loop: graph.c: infinite loop in git whatchanged --graph -m
2013-01-11Merge branch 'rs/zip-tests'Libravatar Junio C Hamano5-80/+140
Update zip tests to skip some that cannot be handled on platform unzip. * rs/zip-tests: t5003: check if unzip supports symlinks t5000, t5003: move ZIP tests into their own script t0024, t5000: use test_lazy_prereq for UNZIP t0024, t5000: clear variable UNZIP, use GIT_UNZIP instead
2013-01-11Merge branch 'jk/unify-exit-code-by-receiving-signal'Libravatar Junio C Hamano1-1/+1
The internal logic had to deal with two representations of a death of a child process by a signal. * jk/unify-exit-code-by-receiving-signal: run-command: encode signal death as a positive integer
2013-01-11Merge branch 'jc/merge-blobs'Libravatar Junio C Hamano1-0/+44
Update the disused merge-tree proof-of-concept code. * jc/merge-blobs: merge-tree: fix d/f conflicts merge-tree: add comments to clarify what these functions are doing merge-tree: lose unused "resolve_directories" merge-tree: lose unused "flags" from merge_list Which merge_file() function do you mean?
2013-01-11Merge branch 'jc/format-patch-reroll'Libravatar Junio C Hamano1-0/+16
Teach "format-patch" to prefix v4- to its output files for the fourth iteration of a patch series, to make it easier for the submitter to keep separate copies for iterations. * jc/format-patch-reroll: format-patch: give --reroll-count a short synonym -v format-patch: document and test --reroll-count format-patch: add --reroll-count=$N option get_patch_filename(): split into two functions get_patch_filename(): drop "just-numbers" hack get_patch_filename(): simplify function signature builtin/log.c: stop using global patch_suffix builtin/log.c: drop redundant "numbered_files" parameter from make_cover_letter() builtin/log.c: drop unused "numbered" parameter from make_cover_letter()
2013-01-11Merge branch 'jk/enable-test-lint-by-default' into maintLibravatar Junio C Hamano1-0/+1
We have two simple and quick tests to catch common mistakes when writing test scripts, but we did not run them by default when running tests. * jk/enable-test-lint-by-default: tests: turn on test-lint by default
2013-01-11Merge branch 'ap/merge-stop-at-prepare-commit-msg-failure' into maintLibravatar Junio C Hamano1-0/+14
"git merge" started calling prepare-commit-msg hook like "git commit" does some time ago, but forgot to pay attention to the exit status of the hook. * ap/merge-stop-at-prepare-commit-msg-failure: merge: Honor prepare-commit-msg return code
2013-01-11Merge branch 'as/test-name-alias-uniquely' into maintLibravatar Junio C Hamano1-6/+6
* as/test-name-alias-uniquely: Use longer alias names in subdirectory tests
2013-01-11Merge branch 'ja/directory-attrs' into maintLibravatar Junio C Hamano1-0/+57
The attribute mechanism didn't allow limiting attributes to be applied to only a single directory itself with "path/" like the exclude mechanism does. * ja/directory-attrs: Add directory pattern matching to attributes
2013-01-11Merge branch 'jc/fetch-ignore-symref' into maintLibravatar Junio C Hamano1-0/+42
"git fetch --mirror" and fetch that uses other forms of refspec with wildcard used to attempt to update a symbolic ref that match the wildcard on the receiving end, which made little sense (the real ref that is pointed at by the symbolic ref would be updated anyway). Symbolic refs no longer are affected by such a fetch. * jc/fetch-ignore-symref: fetch: ignore wildcarded refspecs that update local symbolic refs
2013-01-10Merge branch 'tb/test-t9810-no-sed-i' into maintLibravatar Junio C Hamano1-10/+14
* tb/test-t9810-no-sed-i: t9810: Do not use sed -i
2013-01-10Merge branch 'tb/test-t9020-no-which' into maintLibravatar Junio C Hamano1-2/+2
* tb/test-t9020-no-which: t9020: which is not portable
2013-01-10Merge branch 'sp/shortlog-missing-lf' into maintLibravatar Junio C Hamano1-0/+24
* sp/shortlog-missing-lf: strbuf_add_wrapped*(): Remove unused return value shortlog: fix wrapping lines of wraplen
2013-01-10Merge branch 'nd/invalidate-i-t-a-cache-tree' into maintLibravatar Junio C Hamano1-0/+20
* nd/invalidate-i-t-a-cache-tree: cache-tree: invalidate i-t-a paths after generating trees cache-tree: fix writing cache-tree when CE_REMOVE is present cache-tree: replace "for" loops in update_one with "while" loops cache-tree: remove dead i-t-a code in verify_cache()
2013-01-10Merge branch 'jl/interrupt-clone-remove-separate-git-dir'Libravatar Junio C Hamano1-1/+11
When "git clone --separate-git-dir" is interrupted, we failed to remove the real location we created the repository. * jl/interrupt-clone-remove-separate-git-dir: clone: support atomic operation with --separate-git-dir
2013-01-10Merge branch 'nd/wildmatch'Libravatar Junio C Hamano3-0/+250
Allows pathname patterns in .gitignore and .gitattributes files with double-asterisks "foo/**/bar" to match any number of directory hierarchies. * nd/wildmatch: wildmatch: replace variable 'special' with better named ones compat/fnmatch: respect NO_FNMATCH* even on glibc wildmatch: fix "**" special case t3070: Disable some failing fnmatch tests test-wildmatch: avoid Windows path mangling Support "**" wildcard in .gitignore and .gitattributes wildmatch: make /**/ match zero or more directories wildmatch: adjust "**" behavior wildmatch: fix case-insensitive matching wildmatch: remove static variable force_lower_case wildmatch: make wildmatch's return value compatible with fnmatch t3070: disable unreliable fnmatch tests Integrate wildmatch to git wildmatch: follow Git's coding convention wildmatch: remove unnecessary functions Import wildmatch from rsync ctype: support iscntrl, ispunct, isxdigit and isprint ctype: make sane_ctype[] const array Conflicts: Makefile
2013-01-10Merge branch 'tb/test-shell-lint'Libravatar Junio C Hamano2-2/+33
Check for common mistakes in the test scripts, based on simple pattern-matching. * tb/test-shell-lint: test: Add check-non-portable-shell.pl
2013-01-10Merge branch 'mz/pick-unborn'Libravatar Junio C Hamano9-40/+32
Allow "git cherry-pick $commit" even when you do not have any history behind HEAD yet. * mz/pick-unborn: learn to pick/revert into unborn branch tests: move test_cmp_rev to test-lib-functions
2013-01-10log: add log.mailmap configuration optionLibravatar Antoine Pelisse1-0/+24
Teach "log.mailmap" configuration variable to turn "--use-mailmap" option on to "git log", "git show" and "git whatchanged". The "--no-use-mailmap" option from the command line can countermand the setting. Signed-off-by: Antoine Pelisse <apelisse@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-10log: grep author/committer using mailmapLibravatar Antoine Pelisse1-0/+18
Currently you can use mailmap to display log authors and committers but you can't use the mailmap to find commits with mapped values. This commit allows you to run: git log --use-mailmap --author mapped_name_or_email git log --use-mailmap --committer mapped_name_or_email Of course it only works if the --use-mailmap option is used. The new name and email are copied only when necessary. Signed-off-by: Antoine Pelisse <apelisse@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-10test: add test for --use-mailmap optionLibravatar Antoine Pelisse1-0/+14
The new option '--use-mailmap' can be used to make sure that mailmap file is used to convert name when running log commands. The test is simple and checks that the Author line is correctly replaced when running log. Signed-off-by: Antoine Pelisse <apelisse@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-10commit: make default of "cleanup" option configurableLibravatar Ralf Thielow2-7/+82
The default of the "cleanup" option in "git commit" is not configurable. Users who don't want to use the default have to pass this option on every commit since there's no way to configure it. This commit introduces a new config option "commit.cleanup" which can be used to change the default of the "cleanup" option in "git commit". Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-09Merge branch 'nd/maint-branch-desc-doc'Libravatar Junio C Hamano1-0/+42
Teach various forms of "format-patch" command line to identify what branch the patches are taken from, so that the branch description is picked up in more cases. * nd/maint-branch-desc-doc: format-patch: pick up branch description when no ref is specified format-patch: pick up correct branch name from symbolic ref t4014: a few more tests on cover letter using branch description branch: delete branch description if it's empty config.txt: a few lines about branch.<name>.description
2013-01-09Merge branch 'jk/enable-test-lint-by-default'Libravatar Junio C Hamano1-0/+1
We have two simple and quick tests to catch common mistakes when writing test scripts, but we did not run them by default when running tests. * jk/enable-test-lint-by-default: tests: turn on test-lint by default
2013-01-09Merge branch 'ap/merge-stop-at-prepare-commit-msg-failure'Libravatar Junio C Hamano1-0/+14
"git merge" started calling prepare-commit-msg hook like "git commit" does some time ago, but forgot to pay attention to the exit status of the hook. t7505 may want a general clean-up but that is a different topic. * ap/merge-stop-at-prepare-commit-msg-failure: merge: Honor prepare-commit-msg return code
2013-01-08Merge branch 'maint'Libravatar Junio C Hamano1-2/+4
* maint: t1402: work around shell quoting issue on NetBSD remote-hg: Fix biridectionality -> bidirectionality typos
2013-01-08Merge branch 'as/test-name-alias-uniquely'Libravatar Junio C Hamano1-6/+6
A few short-and-bland aliases used in the tests were interfering with git-custom command in user's $PATH. * as/test-name-alias-uniquely: Use longer alias names in subdirectory tests
2013-01-08Merge branch 'tb/test-t9810-no-sed-i'Libravatar Junio C Hamano1-10/+14
* tb/test-t9810-no-sed-i: t9810: Do not use sed -i
2013-01-08Merge branch 'tb/test-t9020-no-which'Libravatar Junio C Hamano1-2/+2
* tb/test-t9020-no-which: t9020: which is not portable
2013-01-08Merge branch 'jk/pathspec-literal'Libravatar Junio C Hamano1-1/+7
Finishing touches to fix a test breakage on Windows * jk/pathspec-literal: t6130-pathspec-noglob: Windows does not allow a file named "f*"
2013-01-08t1402: work around shell quoting issue on NetBSDLibravatar René Scharfe1-2/+4
The test fails for me on NetBSD 6.0.1 and reports: ok 1 - ref name '' is invalid ok 2 - ref name '/' is invalid ok 3 - ref name '/' is invalid with options --allow-onelevel ok 4 - ref name '/' is invalid with options --normalize error: bug in the test script: not 2 or 3 parameters to test-expect-success The alleged bug is in this line: invalid_ref NOT_MINGW '/' '--allow-onelevel --normalize' invalid_ref() constructs a test case description using its last argument, but the shell seems to split it up into two pieces if it contains a space. Minimal test case: # on NetBSD with /bin/sh $ a() { echo $#-$1-$2; } $ t="x"; a "${t:+$t}" 1-x- $ t="x y"; a "${t:+$t}" 2-x-y $ t="x y"; a "${t:+x y}" 1-x y- # and with bash $ t="x y"; a "${t:+$t}" 1-x y- $ t="x y"; a "${t:+x y}" 1-x y- This may be a bug in the shell, but here's a simple workaround: Construct the description string first and store it in a variable, and then use that to call test_expect_success(). Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-08Merge branch 'jc/test-portability' into maintLibravatar Junio C Hamano2-6/+10
* jc/test-portability: t9020: use configured Python to run the test helper t3600: Avoid "cp -a", which is a GNUism
2013-01-08Merge branch 'jc/test-cvs-no-init-in-existing-dir' into maintLibravatar Junio C Hamano1-1/+2
* jc/test-cvs-no-init-in-existing-dir: t9200: let "cvs init" create the test repository
2013-01-08Merge branch 'jc/maint-test-portability' into maintLibravatar Junio C Hamano3-6/+8
* jc/maint-test-portability: t4014: fix arguments to grep t9502: do not assume GNU tar t0200: "locale" may not exist
2013-01-07t5003: check if unzip supports symlinksLibravatar René Scharfe2-7/+19
Only add a symlink to the repository if both the filesystem and unzip support symlinks. To check the latter, add a ZIP file containing a symlink, created like this with InfoZIP zip 3.0: $ echo sample text >textfile $ ln -s textfile symlink $ zip -y infozip-symlinks.zip textfile symlink If we can extract it successfully, we add a symlink to the test repository for git archive --format=zip, or otherwise skip that step. Users can see the skipped test and perhaps run it again with a different unzip version. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-07t5000, t5003: move ZIP tests into their own scriptLibravatar René Scharfe2-69/+119
This makes ZIP specific tweaks easier. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-07t0024, t5000: use test_lazy_prereq for UNZIPLibravatar René Scharfe2-14/+10
This change makes the code smaller and we can put it at the top of the script, its rightful place as setup code. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-06t0024, t5000: clear variable UNZIP, use GIT_UNZIP insteadLibravatar René Scharfe3-8/+10
InfoZIP's unzip takes default parameters from the environment variable UNZIP. Unset it in the test library and use GIT_UNZIP for specifying alternate versions of the unzip command instead. t0024 wasn't even using variable for the actual extraction. t5000 was, but when setting it to InfoZIP's unzip it would try to extract from itself (because it treats the contents of $UNZIP as parameters), which failed of course. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-06t6130-pathspec-noglob: Windows does not allow a file named "f*"Libravatar Johannes Sixt1-1/+7
Windows disallows file names that contain a star. Arrange the test setup to insert the file name "f*" in the repository without the corresponding file in the worktree. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-06run-command: encode signal death as a positive integerLibravatar Jeff King1-1/+1
When a sub-command dies due to a signal, we encode the signal number into the numeric exit status as "signal - 128". This is easy to identify (versus a regular positive error code), and when cast to an unsigned integer (e.g., by feeding it to exit), matches what a POSIX shell would return when reporting a signal death in $? or through its own exit code. So we have a negative value inside the code, but once it passes across an exit() barrier, it looks positive (and any code we receive from a sub-shell will have the positive form). E.g., death by SIGPIPE (signal 13) will look like -115 to us in inside git, but will end up as 141 when we call exit() with it. And a program killed by SIGPIPE but run via the shell will come to us with an exit code of 141. Unfortunately, this means that when the "use_shell" option is set, we need to be on the lookout for _both_ forms. We might or might not have actually invoked the shell (because we optimize out some useless shell calls). If we didn't invoke the shell, we will will see the sub-process's signal death directly, and run-command converts it into a negative value. But if we did invoke the shell, we will see the shell's 128+signal exit status. To be thorough, we would need to check both, or cast the value to an unsigned char (after checking that it is not -1, which is a magic error value). Fortunately, most callsites do not care at all whether the exit was from a code or from a signal; they merely check for a non-zero status, and sometimes propagate the error via exit(). But for the callers that do care, we can make life slightly easier by just using the consistent positive form. This actually fixes two minor bugs: 1. In launch_editor, we check whether the editor died from SIGINT or SIGQUIT. But we checked only the negative form, meaning that we would fail to notice a signal death exit code which was propagated through the shell. 2. In handle_alias, we assume that a negative return value from run_command means that errno tells us something interesting (like a fork failure, or ENOENT). Otherwise, we simply propagate the exit code. Negative signal death codes confuse us, and we print a useless "unable to run alias 'foo': Success" message. By encoding signal deaths using the positive form, the existing code just propagates it as it would a normal non-zero exit code. The downside is that callers of run_command can no longer differentiate between a signal received directly by the sub-process, and one propagated. However, no caller currently cares, and since we already optimize out some calls to the shell under the hood, that distinction is not something that should be relied upon by callers. Fix the same logic in t/test-terminal.perl for consistency [jc: raised by Jonathan in the discussion]. Signed-off-by: Jeff King <peff@peff.net> Acked-by: Johannes Sixt <j6t@kdbg.org> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-05Merge branch 'wk/submodule-update-remote'Libravatar Junio C Hamano2-0/+32
The beginning of 'integrate with the tip of the remote branch, not the commit recorded in the superproject gitlink' support. * wk/submodule-update-remote: submodule add: If --branch is given, record it in .gitmodules submodule update: add --remote for submodule's upstream changes submodule: add get_submodule_config helper funtion
2013-01-05Merge branch 'jk/pathspec-literal'Libravatar Junio C Hamano1-0/+62
Allow scripts to feed literal paths to commands that take pathspecs, by disabling wildcard globbing. * jk/pathspec-literal: add global --literal-pathspecs option Conflicts: dir.c