summaryrefslogtreecommitdiff
path: root/t
AgeCommit message (Collapse)AuthorFilesLines
2012-05-02Merge branch 'zj/mksh-columns-breakage'Libravatar Junio C Hamano1-0/+1
A broken shell may not let us set an environment value to an arbitrary value, interfering with some of the tests. Introduce a test prerequisite so that we can skip some tests on such a platform. By Zbigniew Jędrzejewski-Szmek * zj/mksh-columns-breakage: test-lib: skip test with COLUMNS=1 under mksh
2012-05-02Merge branch 'mm/simple-push'Libravatar Junio C Hamano2-23/+85
New users tend to work on one branch at a time and push the result out. The current and upstream modes of push is a more suitable default mode than matching mode for these people, but neither is surprise-free depending on how the project is set up. Introduce a "simple" mode that is a subset of "upstream" but only works when the branch is named the same between the remote and local repositories. The plan is to make it the new default when push.default is not configured. By Matthieu Moy (5) and others * mm/simple-push: push.default doc: explain simple after upstream push: document the future default change for push.default (matching -> simple) t5570: use explicit push refspec push: introduce new push.default mode "simple" t5528-push-default.sh: add helper functions Undocument deprecated alias 'push.default=tracking' Documentation: explain push.default option a bit more
2012-04-30Merge branch 'ld/git-p4-tags-and-labels'Libravatar Junio C Hamano4-3/+206
By Luke Diamand * ld/git-p4-tags-and-labels: git p4: fix unit tests git p4: move verbose to base class git p4: Ignore P4EDITOR if it is empty git p4: Squash P4EDITOR in test harness git p4: fix-up "import/export of labels to/from p4" git p4: import/export of labels to/from p4 git p4: Fixing script editor checks
2012-04-30Merge branch 'nh/empty-rebase'Libravatar Junio C Hamano1-1/+24
"git rebase" learned to optionally keep commits that do not introduce any change in the original history. By Neil Horman * nh/empty-rebase: git-rebase: add keep_empty flag git-cherry-pick: Add test to validate new options git-cherry-pick: Add keep-redundant-commits option git-cherry-pick: add allow-empty option
2012-04-30Merge branch 'jk/maint-config-bogus-section'Libravatar Junio C Hamano1-0/+8
"git config --rename-section" to rename an existing section into a bogus one did not check the new name. By Jeff King * jk/maint-config-bogus-section: config: reject bogus section names for --rename-section
2012-04-29Merge branch 'js/daemon-test-race-fix'Libravatar Junio C Hamano1-11/+11
The shell construct to launch git-daemon and wait for it to start serving during the test was faulty, and this fixes it. By Johannes Sixt * js/daemon-test-race-fix: t5570: fix forwarding of git-daemon messages via cat
2012-04-29Merge branch 'mm/include-userpath'Libravatar Junio C Hamano1-0/+8
The new "include.path" directive in the configuration files learned to understand "~/path" and "~user/path". By Jeff King * mm/include-userpath: config: expand tildes in include.path variable
2012-04-29Merge branch 'pw/t5800-import-race-fix'Libravatar Junio C Hamano1-0/+13
Longstanding bug in a test scaffolding that occasionally made t5800 hang was fixed. By Pete Wyckoff * pw/t5800-import-race-fix: git-remote-testgit: fix race when spawning fast-import
2012-04-29Merge branch 'jk/repack-no-explode-objects-from-old-pack'Libravatar Junio C Hamano1-0/+14
Avoid writing out unreachable objects as loose objects when repacking, if such loose objects will immediately pruned due to its age anyway. By Jeff King * jk/repack-no-explode-objects-from-old-pack: gc: use argv-array for sub-commands argv-array: add a new "pushl" method argv-array: refactor empty_argv initialization gc: do not explode objects which will be immediately pruned
2012-04-29config: expand tildes in include.path variableLibravatar Jeff King1-0/+8
You can already use relative paths in include.path, which means that including "foo" from your global "~/.gitconfig" will look in your home directory. However, you might want to do something clever like putting "~/.gitconfig-foo" in a specific repository's config file. Signed-off-by: Jeff King <peff@peff.net> Acked-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-27Merge branch 'jc/merge-reduce-parents-early'Libravatar Junio C Hamano3-7/+68
Octopus merge strategy did not reduce heads that are recorded in the final commit correctly. By Junio C Hamano (4) and Michał Kiedrowicz (1) * jc/merge-reduce-parents-early: fmt-merge-msg: discard needless merge parents builtin/merge.c: reduce parents early builtin/merge.c: collect other parents early builtin/merge.c: remove "remoteheads" global variable merge tests: octopus with redundant parents
2012-04-27Merge branch 'js/fast-import-test-9300'Libravatar Junio C Hamano1-34/+54
By Johannes Sixt * js/fast-import-test-9300: t9300-fast-import: avoid 'exit' in test_expect_success snippets
2012-04-27Merge branch 'cb/http-multi-curl-auth'Libravatar Junio C Hamano1-5/+10
Fixes http authentication breakage when we keep multiple HTTP requests in flight using curl-multi. By Jeff King (3) and Clemens Buchacher (1) * cb/http-multi-curl-auth: http: use newer curl options for setting credentials http: clean up leak in init_curl_http_auth fix http auth with multiple curl handles http auth fails with multiple curl handles
2012-04-27test-lib: skip test with COLUMNS=1 under mkshLibravatar Zbigniew Jędrzejewski-Szmek1-0/+1
mksh does not allow $COLUMNS to be set below 12. mksh(1) says that $COLUMNS is "always set, defaults to 80, unless the value as reported by stty(1) is non-zero and sane enough". This applies also to setting it directly for one command: $ COLUMNS=10 python -c 'import os; print os.environ["COLUMNS"]' 98 Add a test prerequisite by checking if we can set COLUMNS=1, to allow us to skip tests that needs it. Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-27t5570: fix forwarding of git-daemon messages via catLibravatar Johannes Sixt1-11/+11
The shell function that starts git-daemon wants to read the first line of the daemon's stderr to ensure that it started correctly. Subsequent daemon errors should be redirected to fd 4 (which is the terminal in verbose mode or /dev/null in quiet mode). To that end the shell script used 'read' to get the first line of output, and then 'cat &' to forward everything else in a background process. The problem is, that 'cat >&4 &' does not produce any output because the shell redirects a background process's stdin to /dev/null. To have this command invocation do anything useful, we have to redirect its stdin explicitly (which overrides the /dev/null redirection). The shell function connects the daemon's stderr to its consumers via a FIFO. We cannot just do this: read line <git_daemon_output cat <git_daemon_output >&4 & because after the first redirection the pipe is closed and the daemon could receive SIGPIPE if it writes at the wrong moment. Therefore, we open the readable end of the FIFO only once on fd 7 in the shell and dup from there to the stdin of the two consumers. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-26Merge branch 'mb/fetch-call-a-non-branch-a-ref'Libravatar Junio C Hamano1-0/+30
The report from "git fetch" said "new branch" even for a non branch ref. By Marc Branchaud * mb/fetch-call-a-non-branch-a-ref: fetch: describe new refs based on where it came from fetch: Give remote_ref to update_local_ref() as well
2012-04-25config: reject bogus section names for --rename-sectionLibravatar Jeff King1-0/+8
You can feed junk to "git config --rename-section", which will result in a config file that git will not even parse (so you cannot fix it with git-config). We already have syntactic sanity checks when setting a variable; let's do the same for section names. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-25git p4: fix unit testsLibravatar Luke Diamand1-1/+1
The submit-edit tests relied on P4EDITOR being unset. Set it explicitly to an empty string. Signed-off-by: Luke Diamand <luke@diamand.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-24t5570: use explicit push refspecLibravatar Clemens Buchacher1-16/+14
The default mode for push without arguments will change. Some warnings are about to be enabled for such use, which causes some t5570 tests to fail because they do not expect this output. Fix this by passing an explicit refspec to git push. To that end, change the calling conventions of test_remote_error in order to accomodate extra command arguments. Signed-off-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-24push: introduce new push.default mode "simple"Libravatar Matthieu Moy1-0/+44
When calling "git push" without argument, we want to allow Git to do something simple to explain and safe. push.default=matching is unsafe when used to push to shared repositories, and hard to explain to beginners in some contexts. It is debatable whether 'upstream' or 'current' is the safest or the easiest to explain, so introduce a new mode called 'simple' that is the intersection of them: push to the upstream branch, but only if it has the same name remotely. If not, give an error that suggests the right command to push explicitely to 'upstream' or 'current'. A question is whether to allow pushing when no upstream is configured. An argument in favor of allowing the push is that it makes the new mode work in more cases. On the other hand, refusing to push when no upstream is configured encourages the user to set the upstream, which will be beneficial on the next pull. Lacking better argument, we chose to deny the push, because it will be easier to change in the future if someone shows us wrong. Original-patch-by: Jeff King <peff@peff.net> Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-24git-remote-testgit: fix race when spawning fast-importLibravatar Pete Wyckoff1-0/+13
Test "pushing to local repo" in t5800-remote-helpers can hang due to a race condition in git-remote-testgit. Fix it by setting stdin to unbuffered. On the writer side, "git push" invokes push_refs_with_export(), which sends to stdout the command "export\n" and immediately starts up "git fast-export". The latter writes its output stream to the same stdout. On the reader side, remote helper "git-remote-testgit" reads from stdin to get its next command. It uses getc() to read characters from libc up until \n. Libc has buffered a potentially much larger chunk of stdin. When it sees the "export\n" command, it forks "git fast-import" to read the stream. If fast-export finishes before git fast-import starts, the fast-export output can end up in libc's buffer in git-remote-testgit, rather than in git fast-import. The latter hangs indefinitely on a now-empty stdin. Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-24git-cherry-pick: Add test to validate new optionsLibravatar Neil Horman1-1/+24
Since we've added the --allow-empty and --keep-redundant-commits options to git cherry-pick we should also add a test to ensure that its working properly. Signed-off-by: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-24Merge branch 'fc/completion-tests'Libravatar Junio C Hamano1-0/+243
By Felipe Contreras (4) and others * fc/completion-tests: completion: fix completion after 'git --option <TAB>' completion: avoid trailing space for --exec-path completion: add missing general options completion: simplify by using $prev completion: simplify __gitcomp_1 tests: add tests for the __gitcomp() completion helper function tests: add initial bash completion tests
2012-04-24Merge branch 'zj/upstream-error-message'Libravatar Junio C Hamano1-3/+78
Error message given when @{u} is used for a branch without its upstream configured have been clatified. By Zbigniew Jędrzejewski-Szmek * zj/upstream-error-message: i18n: mark @{upstream} error messages for translation Be more specific if upstream branch is not tracked Provide better message for barnhc_wiht_tpyo@{u} Provide branch name in error message when using @{u} t1507: add tests to document @{upstream} behaviour
2012-04-24Merge branch 'it/fetch-pack-many-refs'Libravatar Junio C Hamano2-0/+97
When "git fetch" encounters repositories with too many references, the command line of "fetch-pack" that is run by a helper e.g. remote-curl, may fail to hold all of them. Now such an internal invocation can feed the references through the standard input of "fetch-pack". By Ivan Todoroski * it/fetch-pack-many-refs: remote-curl: main test case for the OS command line overflow fetch-pack: test cases for the new --stdin option remote-curl: send the refs to fetch-pack on stdin fetch-pack: new --stdin option to read refs from stdin
2012-04-24Merge branch 'pw/fast-import-dataref-parsing'Libravatar Junio C Hamano1-0/+287
The parser in "fast-import" did not diagnose ":9" style references that is not followed by required SP/LF as an error. By Pete Wyckoff * pw/fast-import-dataref-parsing: fast-import: tighten parsing of datarefs
2012-04-24Merge branch 'hv/submodule-recurse-push'Libravatar Junio C Hamano2-0/+127
"git push --recurse-submodules" learns to optionally look into the histories of submodules bound to the superproject and push them out. By Heiko Voigt * hv/submodule-recurse-push: push: teach --recurse-submodules the on-demand option Refactor submodule push check to use string list instead of integer Teach revision walking machinery to walk multiple times sequencially
2012-04-24git p4: Squash P4EDITOR in test harnessLibravatar Luke Diamand1-0/+1
If P4EDITOR is set in the environment, test behavior could be unpredictable. Set it explicitly. Signed-off-by: Luke Diamand <luke@diamand.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-24git p4: fix-up "import/export of labels to/from p4"Libravatar Luke Diamand1-2/+2
The previous one is already in 'next' but was somewhat lacking. The configuration "git-p4.validLabelRegexp" is now called "labelExportRegexp", and its default covers lowercase alphabets as well. Signed-off-by: Luke Diamand <luke@diamand.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-24t5528-push-default.sh: add helper functionsLibravatar Matthieu Moy1-7/+27
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-23Merge branch 'bw/test-fix-grep-gnuism'Libravatar Junio C Hamano1-2/+2
Fix two places that were the only place in the test suite that gave "a\+" to platform grep and expected it to mean one or more "a", which is a blatant GNUism. * bw/test-fix-grep-gnuism: t9400: fix gnuism in grep
2012-04-23Merge branch 'jn/more-i18ncmp'Libravatar Junio C Hamano3-8/+8
By Jonathan Nieder * jn/more-i18ncmp: test: am of empty patch should not succeed test: use test_i18ncmp for "Patch format detection failed" message test: do not rely on US English tracking-info messages
2012-04-23Merge branch 'lp/maint-diff-three-dash-with-graph'Libravatar Junio C Hamano1-0/+290
"log -p --graph" used with "--stat" had a few formatting error. By Lucian Poston * lp/maint-diff-three-dash-with-graph: t4202: add test for "log --graph --stat -p" separator lines log --graph: fix break in graph lines log --graph --stat: three-dash separator should come after graph lines
2012-04-23Merge branch 'sl/test-wc-l-line-count'Libravatar Junio C Hamano19-74/+65
By Stefano Lattarini * sl/test-wc-l-line-count: tests: modernise style: more uses of test_line_count
2012-04-23Merge branch 'rl/show-empty-prefix'Libravatar Junio C Hamano1-1/+1
"git rev-parse --show-prefix" emitted nothing when run at the top-level of the working tree, while "git rev-parse --show-cdup" gave an empty line. Make them consistent. By Ross Lagerwall * rl/show-empty-prefix: rev-parse --show-prefix: add in trailing newline
2012-04-23Merge branch 'pw/git-p4'Libravatar Junio C Hamano12-184/+182
By Pete Wyckoff * pw/git-p4: git p4: use "git p4" directly in tests git p4: update name in script git-p4: move to toplevel
2012-04-23Merge branch 'jk/rebase-i-submodule-conflict-only'Libravatar Junio C Hamano1-0/+30
Giving "--continue" to a conflicted "rebase -i" session skipped a commit that only results in changes to submodules. By John Keeping * jk/rebase-i-submodule-conflict-only: rebase -i continue: don't skip commits that only change submodules
2012-04-21completion: fix completion after 'git --option <TAB>'Libravatar SZEDER Gábor1-0/+17
The bash completion doesn't work when certain options to git itself are specified, e.g. 'git --no-pager <TAB>' errors out with error: invalid key: alias.--no-pager The main _git() completion function finds out the git command name by looping through all the words on the command line and searching for the first word that is not a known option for the git command. Unfortunately the list of known git options was not updated in a long time, and newer options are not skipped but mistaken for a git command. Such a misrecognized "command" is then passed to __git_aliased_command(), which in turn passes it to a 'git config' query, hence the error. Currently the following options are misrecognized for a git command: -c --no-pager --exec-path --html-path --man-path --info-path --no-replace-objects --work-tree= --namespace= To fix this we could just update the list of options to be skipped, but the same issue will likely arise, if the git command learns a new option in the future. Therefore, to make it more future proof against new options, this patch changes that loop to skip all option-looking words, i.e. words starting with a dash. We also have to handle the '-c' option specially, because it takes a configutation parameter in a separate word, which must be skipped, too. [fc: added tests] Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-21completion: avoid trailing space for --exec-pathLibravatar Jonathan Nieder1-1/+6
"--exec-path" looks to the completion script like an unambiguous successful completion, but it is wrong to emit a SP after it as if declaring that we are done with completion; the user could be trying to do git --exec-path; # print name of helper directory or git --exec-path=/path/to/alternative/helper/dir <subcommand> so the most helpful thing to do is to leave out the trailing space and leave it to the operator to type an equal sign or carriage return according to the situation. [fc: added tests] Cc: Andreas Schwab <schwab@linux-m68k.org> Reported-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-21completion: add missing general optionsLibravatar Felipe Contreras1-0/+16
And add relevant tests. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-21tests: add tests for the __gitcomp() completion helper functionLibravatar SZEDER Gábor1-0/+85
These tests check that trailing space, prefix, and suffix are added correctly. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-20Merge branch 'ct/advise-push-default'Libravatar Junio C Hamano2-2/+2
Break down the cases in which "git push" fails due to non-ff into three categories, and give separate advise messages for each case. By Christopher Tiwald (2) and Jeff King (1) * ct/advise-push-default: Fix httpd tests that broke when non-ff push advice changed clean up struct ref's nonfastforward field push: Provide situational hints for non-fast-forward errors
2012-04-20Merge branch 'jk/run-command-eacces'Libravatar Junio C Hamano1-0/+13
When PATH contains an unreadable directory, alias expansion code did not kick in, and failed with an error that said "git-subcmd" was not found. By Jeff King (1) and Ramsay Jones (1) * jk/run-command-eacces: run-command: treat inaccessible directories as ENOENT compat/mingw.[ch]: Change return type of exec functions to int
2012-04-20Merge branch 'jc/push-upstream-sanity'Libravatar Junio C Hamano1-0/+54
Fix broken 'push to upstream' implementation. "git push $there" without refspec, when the current branch is set to push to a remote different from $there, used to push to $there using the upstream information to a remote unreleated to $there. * jc/push-upstream-sanity: push: error out when the "upstream" semantics does not make sense
2012-04-20Merge branch 'jc/fmt-merge-msg-people'Libravatar Junio C Hamano1-3/+24
The "fmt-merge-msg" command learns to list the primary contributors involved in the side topic you are merging. * jc/fmt-merge-msg-people: fmt-merge-msg: show those involved in a merged series
2012-04-20t9300-fast-import: avoid 'exit' in test_expect_success snippetsLibravatar Johannes Sixt1-34/+54
Exiting from a for-loop early using '|| break' does not propagate the failure code, and for this reason, the tests used just 'exit'. But this ends the test script with 'FATAL: Unexpected exit code 1' in the case of a failed test. Fix this by moving the loop into a shell function, from which we can simply return early. While at it, modernize the style of the affected test cases. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-19t9400: fix gnuism in grepLibravatar Junio C Hamano1-2/+2
Using "\+" in "grep" and expecting that it means one or more is a GNUism. Spell it in a dumb and portable way. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-18fmt-merge-msg: discard needless merge parentsLibravatar Junio C Hamano1-1/+30
This is used by "git pull" to construct a merge message from list of remote refs. When pulling redundant set of refs, however, it did not filter them even though the merge itself discards them as unnecessary. Teach the command to do the same for consistency. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-17builtin/merge.c: reduce parents earlyLibravatar Junio C Hamano3-3/+3
Instead of waiting until we record the parents of resulting merge, reduce redundant parents (including our HEAD) immediately after reading them. The change to t7602 illustrates the essence of the effect of this change. The octopus merge strategy used to be fed with redundant commits only to discard them as "up-to-date", but we no longer feed such redundant commits to it and the affected test degenerates to a regular two-head merge. And obviously the known-to-be-broken test in t6028 is now fixed. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-04-17merge tests: octopus with redundant parentsLibravatar Michał Kiedrowicz3-7/+39
This happens when git merge is run to merge multiple commits that are descendants of current HEAD (or are HEAD). We've hit this while updating master to origin/master but accidentaly we called (while being on master): $ git merge master origin/master Here is a minimal testcase: $ git init a && cd a $ echo a >a && git add a $ git commit -minitial $ echo b >a && git add a $ git commit -msecond $ git checkout master^ $ git merge master master Fast-forwarding to: master Already up-to-date with master Merge made by the 'octopus' strategy. a | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) $ git cat-file commit HEAD tree eebfed94e75e7760540d1485c740902590a00332 parent bd679e85202280b263e20a57639a142fa14c2c64 author Michał Kiedrowicz <michal.kiedrowicz@gmail.com> 1329132996 +0100 committer Michał Kiedrowicz <michal.kiedrowicz@gmail.com> 1329132996 +0100 Merge branches 'master' and 'master' into HEAD Signed-off-by: Michał Kiedrowicz <michal.kiedrowicz@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>