aboutsummaryrefslogtreecommitdiff
path: root/t
Commit message (Collapse)AuthorAge
* clean up error conventions of remote.c:match_explicitJeff King2008-06-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | match_explicit is called for each push refspec to try to fully resolve the source and destination sides of the refspec. Currently, we look at each refspec and report errors on both the source and the dest side before aborting. It makes sense to report errors for each refspec, since an error in one is independent of an error in the other. However, reporting errors on the 'dst' side of a refspec if there has been an error on the 'src' side does not necessarily make sense, since the interpretation of the 'dst' side depends on the 'src' side (for example, when creating a new unqualified remote ref, we use the same type as the src ref). This patch lets match_explicit return early when the src side of the refspec is bogus. We still look at all of the refspecs before aborting the push, though. At the same time, we clean up the call signature, which previously took an extra "errs" flag. This was pointless, as we didn't act on that flag, but rather just passed it back to the caller. Instead, we now use the more traditional "return -1" to signal an error, and the caller aggregates the error count. This change fixes two bugs, as well: - the early return avoids a segfault when passing a NULL matched_src to guess_ref() - the check for multiple sources pointing to a single dest aborted if the "err" flag was set. Presumably the intent was not to bother with the check if we had no matched_src. However, since the err flag was passed in from the caller, we might abort the check just because a previous refspec had a problem, which doesn't make sense. In practice, this didn't matter, since due to the error flag we end up aborting the push anyway. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Make git reflog expire honour core.sharedRepository.Pierre Habouzit2008-06-15
| | | | | Signed-off-by: Pierre Habouzit <madcoder@debian.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Use 'trash directory' thoroughly in t/test-lib.shJakub Narebski2008-06-14
| | | | | | | ...also in comments. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Merge branch 'rs/attr'Junio C Hamano2008-06-14
|\ | | | | | | | | * rs/attr: Ignore .gitattributes in bare repositories
| * Ignore .gitattributes in bare repositoriesRené Scharfe2008-06-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Attributes can be specified at three different places: the internal table of default values, the file $GIT_DIR/info/attributes and files named .gitattributes in the work tree. Since bare repositories don't have a work tree, git should ignore any .gitattributes files there. This patch makes git do that, so the only way left for a user to specify attributes in a bare repository is the file info/attributes (in addition to changing the defaults and recompiling). In addition, git-check-attr is now allowed to run without a work tree. Like any user of the code in attr.c, it ignores the .gitattributes files when run in a bare repository. It can still read from info/attributes. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-svn: test that extra blank lines aren't inserted in commit messages.Avery Pennarun2008-06-14
| | | | | | | | | | | | | | | | | | | | | | | | Improve the git-svn-author test to check that extra newlines aren't inserted into commit messages as they take a round trip from git to svn and back. We test both with and without the --add-author-from option to git-svn. git-svn: test that svn repo doesn't have extra newlines. Signed-off-by: Avery Pennarun <apenwarr@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | t4126: fix test that happened to work due to timingJunio C Hamano2008-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | The test did "reset --hard" (where the HEAD commit has an empty blob at path "empty") followed by "> empty", expecting that the index does not notice the file _changed_ since git wrote it out upon "reset" if the redirection is done quickly enough. There was no need to do the emptying, and it gave a wrong result if "reset --hard" happened on time T and then ">empty" happened on the next second T+1. This fixes it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'om/remote-fix'Junio C Hamano2008-06-12
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | * om/remote-fix: "remote prune": be quiet when there is nothing to prune remote show: list tracked remote branches with -n remote prune: print the list of pruned branches builtin-remote: split show_or_prune() in two separate functions remote show: fix the -n option
| * | remote show: list tracked remote branches with -nOlivier Marin2008-06-10
| | | | | | | | | | | | | | | Signed-off-by: Olivier Marin <dkr@freesurf.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | remote prune: print the list of pruned branchesOlivier Marin2008-06-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This command is really too quiet which make it unconfortable to use. Also implement a --dry-run option, in place of the original -n one, to list stale tracking branches that will be pruned, but do not actually prune them. Add a test case for --dry-run. Signed-off-by: Olivier Marin <dkr@freesurf.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | remote show: fix the -n optionOlivier Marin2008-06-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The perl version accepted a -n flag, to show local informations only without querying remote heads, that seems to have been lost in the C revrite. This restores the older behaviour and add a test case. Signed-off-by: Olivier Marin <dkr@freesurf.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | t/.gitattributes: only ignore whitespace errors in test filesLea Wiemann2008-06-12
|/ / | | | | | | | | | | | | | | | | | | | | Only ignore whitespace errors in t/tNNNN-*.sh and the t/tNNNN subdirectories. Other files (like test libraries) should still be checked. Also fix a whitespace error in t/test-lib.sh. Signed-off-by: Lea Wiemann <LeWiemann@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'js/merge-recursive'Junio C Hamano2008-06-09
|\ \ | | | | | | | | | | | | | | | * js/merge-recursive: merge-recursive: respect core.autocrlf when writing out the result Add testcase for merging in a CRLF repo
| * | merge-recursive: respect core.autocrlf when writing out the resultJohannes Schindelin2008-06-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | The code forgot to convert the blob contents into work tree representation before writing it out. Also fixes leaks -- earlier the updated blobs were never freed. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | Add testcase for merging in a CRLF repoMarius Storm-Olsen2008-06-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If you work on a repo with core.autocrlf == true, you would expect every text file to have CRLF EOLs. However, if you by some operation, get a conflict, then the conflicted file has LF EOLs. Now, of course you'd go about resolving the files conflict, and then 'git add <file>'. When you do that, you'll get the warning saying that LF will be replaced by CRLF. Then you commit. The end result is that you have a workingdir with a mix of LF and CRLF files, which after some more operations may trigger a "whole file changed" diff, due to the workingdir file now having LF EOLs. An LF only conflict file results in the resolved file being in LF, the commit is in LF and a warning saying that LF will be replaced by CRLF, and the working dir ends up with a mix of CRLF and LF files. Signed-off-by: Marius Storm-Olsen <marius@trolltech.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | cat-file --batch / --batch-check: do not exit if hashes are missingLea Wiemann2008-06-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, cat-file --batch / --batch-check would silently exit if it was passed a non-existent SHA1 on stdin. Now it prints "<SHA1> missing" as in all other cases (and as advertised in the documentation). Note that cat-file --batch-check (but not --batch) will still output "error: unable to find <SHA1>" on stderr if a non-existent SHA1 is passed, but this does not affect parsing its stdout. Also, type <= 0 was previously using the potentially uninitialized type variable (relying on it being 0); it is now being initialized. Signed-off-by: Lea Wiemann <LeWiemann@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | t1006-cat-file.sh: typoLea Wiemann2008-06-09
| |/ |/| | | | | | | | | | | | | | | Previously timestamps were removed unconditionally (though this didn't seem to break this test). Now they are only removed if $no_ts is non-empty. Signed-off-by: Lea Wiemann <LeWiemann@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'maint'Junio C Hamano2008-06-04
|\ \ | |/ | | | | | | * maint: describe: match pattern for lightweight tags too
| * describe: match pattern for lightweight tags tooMichael Dressel2008-06-04
| | | | | | | | | | | | | | | | | | | | | | | | The <pattern> given "git describe --match" was used only to filter tag objects, and not to filter lightweight tags. This fixes it. [jc: made the log to clarify this is a bugfix, not an enhancement, with additional test] Signed-off-by: Michael Dressel <MichaelTiloDressel@t-online.de> Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | t7502: honor SHELL_PATHJunio C Hamano2008-06-04
| | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Fix t5516 on cygwin: it does not like double slashes at the beginning of a pathAlex Riesen2008-06-03
| | | | | | | | | | | | | | | | | | | | The double slashes "//" result from url./$TRASH/. expansion and the current directory, which even in cygwin contains "/" as first character. In cygwin such strings have special meaning: UNC path. Accessing an UNC path built for test purpose usually fails. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | t7502: tighten loosely written test sequenceJunio C Hamano2008-06-03
| | | | | | | | | | | | We would like to catch breakage at any step in the sequence. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | t7502: do not globally unset GIT_COMMITTER_* environment variablesJunio C Hamano2008-06-03
| | | | | | | | | | | | | | | | | | | | | | One particular test wants to check the behaviour of the command when these variables are not set, but the later tests should have the reliable committer identity for repeatable tests. Move the "unset" of the variables inside a subshell in the test that wants to unset them. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | commit: drop duplicated parentsJunio C Hamano2008-06-02
| | | | | | | | | | | | | | | | | | | | | | | | The scripted version of git-commit internally used git-commit-tree which omitted duplicated parents given from the command line. This prevented a nonsensical octopus merge from getting created even when you said "git merge A B" while you are already on branch A. However, when git-commit was rewritten in C, this sanity check was lost. This resurrects it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'sb/am-tests'Junio C Hamano2008-06-01
|\ \ | | | | | | | | | | | | | | | * sb/am-tests: Merge t4150-am-subdir.sh and t4151-am.sh into t4150-am.sh Add test cases for git-am
| * | Merge t4150-am-subdir.sh and t4151-am.sh into t4150-am.shStephan Beyer2008-05-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch moves the am test cases in t4150-am.sh and the am subdirectory test cases from t/t4150-am-subdir.sh into t/4151-am.sh. Signed-off-by: Stephan Beyer <s-beyer@gmx.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | Add test cases for git-amStephan Beyer2008-05-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add t/t4151-am.sh that does basic testing of git-am functionality, including: * am applies patch correctly * am changes committer and keeps author * am --signoff adds Signed-off-by: line * am stays in branch * am --signoff does not add Signed-off-by: line if already there * am without --keep removes Re: and [PATCH] stuff * am --keep really keeps the subject * am -3 falls back to 3-way merge * am pauses on conflict * am --skip works * am --resolved works * am takes patches from a Pine mailbox * am fails on mail without patch * am fails on empty patch Signed-off-by: Stephan Beyer <s-beyer@gmx.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | Merge branch 'lw/test-fix'Junio C Hamano2008-06-01
|\ \ \ | | | | | | | | | | | | | | | | * lw/test-fix: t/test-lib.sh: resolve symlinks in working directory, for pathname comparisons
| * | | t/test-lib.sh: resolve symlinks in working directory, for pathname comparisonsLea Wiemann2008-05-31
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this, some tests will fail because they compare command output of subprocesses (such as git) with $PWD -- but subprocesses have the physical path as their working directory, whereas $PWD contains the symlinked path. This fixes it. Signed-off-by: Lea Wiemann <LeWiemann@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | Merge branch 'sp/remote'Junio C Hamano2008-06-01
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | * sp/remote: Make "git-remote rm" delete refs acccording to fetch specs Make "git-remote prune" delete refs according to fetch specs Remove unused remote_prefix member in builtin-remote
| * | | Make "git-remote prune" delete refs according to fetch specsShawn O. Pearce2008-05-31
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A remote may be configured to fetch into tracking branches that do not match the remote name. For example a user may have created extra remotes that will fetch to the same tracking branch namespace, but from different URLs: [remote "origin"] url = git://git.kernel.org/pub/scm/git/git.git fetch = refs/heads/*:refs/remotes/origin/* [remote "alt"] url = git://repo.or.cz/alt-git.git fetch = refs/heads/*:refs/remotes/origin/* When running `git remote prune alt` we expect stale branches to be removed from "refs/remotes/origin/*" and not from the unused namespace of "refs/remotes/alt/*". Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | Merge branch 'lr/init-bare'Junio C Hamano2008-06-01
|\ \ \ | | | | | | | | | | | | | | | | * lr/init-bare: git-init: accept --bare option
| * | | git-init: accept --bare optionLuciano Rocha2008-05-28
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is unfortunate that "git init --bare" does not work and the only reason why "init" did not learn its own "--bare" option is because "git --bare init" already does the job (and as an option to the git 'potty', it is more generic solution). This teaches "git init" its own "--bare" option, so that both "git --bare init" and "git init --bare" works mostly the same way. [jc: rewrote the log message and added test] Signed-off-by: Luciano Rocha <strange@nsk.pt> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | rollback lock files on more signals than just SIGINTPaolo Bonzini2008-05-31
|/ / | | | | | | | | | | | | | | | | Other signals are also common, for example SIGTERM and SIGHUP. This patch modifies the lock file mechanism to catch more signals. It also modifies http-push.c which was missing SIGTERM. Signed-off-by: Paolo Bonzini <bonzini@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | builtin-fetch.c (store_updated_refs): Honor update_local_ref() return valueDmitry V. Levin2008-05-28
| | | | | | | | | | | | | | | | | | | | | | Sync with builtin-fetch--tool.c where append_fetch_head() honors update_local_ref() return value. This fixes non fast forward fetch exit status, http://bugzilla.altlinux.org/show_bug.cgi?id=15037 Signed-off-by: Dmitry V. Levin <ldv@altlinux.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | t5100: Avoid filename "nul"Junio C Hamano2008-05-27
| | | | | | | | | | | | | | | | | | There are broken filesystems that cannot have a file whose name is "nul" anywhere on it. Rename the test file to make ourselves more portable. Noticed by Mark Levedahl. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge 1.5.5.3 inJunio C Hamano2008-05-27
|\ \ | |/
| * Revert "filter-branch: subdirectory filter needs --full-history"Johannes Sixt2008-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit cfabd6eee1745cfec58cfcb794ce8847e43b888a. I had implemented it without understanding what --full-history does. Consider this history: C--M--N / / / A--B / \ / D-/ where B and C modify a path, X, in the same way so that the result is identical, and D does not modify it at all. With the path limiter X and without --full-history this is simplified to A--B i.e. only one of the paths via B or C is chosen. I had assumed that --full-history would keep both paths like this C--M / / A--B removing the path via D; but in fact it keeps the entire history. Currently, git does not have the capability to simplify to this intermediary case. However, the other extreme to keep the entire history is not wanted either in usual cases. I think we can expect that histories like the above are rare, and in the usual cases we want a simplified history. So let's remove --full-history again. (Concerning t7003, subsequent tests depend on what the test case sets up, so we can't just back out the entire test case.) Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * Merge branch 'gp/bisect-fix' into maintJunio C Hamano2008-05-26
| |\ | | | | | | | | | | | | | | | * gp/bisect-fix: bisect: print an error message when "git rev-list --bisect-vars" fails git-bisect.sh: don't accidentally override existing branch "bisect"
* | | t5700-clone-reference: Quote $UJohannes Sixt2008-05-27
| | | | | | | | | | | | | | | | | | | | | The new "trash directory" bites again. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | Add some tests for git update-ref -dKarl Hasselström2008-05-27
| | | | | | | | | | | | | | | Signed-off-by: Karl Hasselström <kha@treskal.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | Merge branch 'jc/diff-no-no-index'Junio C Hamano2008-05-26
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * jc/diff-no-no-index: git diff --no-index: default to page like other diff frontends git-diff: allow --no-index semantics a bit more "git diff": do not ignore index without --no-index diff-files: do not play --no-index games tests: do not use implicit "git diff --no-index"
| * | | "git diff": do not ignore index without --no-indexJunio C Hamano2008-05-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Even if "foo" and/or "bar" does not exist in index, "git diff foo bar" should not change behaviour drastically from "git diff foo bar baz" or "git diff foo". A feature that "sometimes works and is handy" is an unreliable cute hack. "git diff foo bar" outside a git repository continues to work as a more colourful alternative to "diff -u" as before. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | tests: do not use implicit "git diff --no-index"Junio C Hamano2008-05-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As a general principle, we should not use "git diff" to validate the results of what git command that is being tested has done. We would not know if we are testing the command in question, or locating a bug in the cute hack of "git diff --no-index". Rather use test_cmp for that purpose. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | Merge branch 'js/mailinfo'Junio C Hamano2008-05-25
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * js/mailinfo: mailsplit: minor clean-up in read_line_with_nul() mailinfo: apply the same fix not to lose NULs in BASE64 and QP codepaths mailsplit and mailinfo: gracefully handle NUL characters
| * | | | mailinfo: apply the same fix not to lose NULs in BASE64 and QP codepathsJunio C Hamano2008-05-25
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | | mailsplit and mailinfo: gracefully handle NUL charactersJohannes Schindelin2008-05-25
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function fgets() has a big problem with NUL characters: it reads them, but nobody will know if the NUL comes from the file stream, or was appended at the end of the line. So implement a custom read_line_with_nul() function. Noticed by Tommy Thorn. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | Merge branch 'jc/add-n-u'Junio C Hamano2008-05-25
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * jc/add-n-u: Make git add -n and git -u -n output consistent "git-add -n -u" should not add but just report Conflicts: builtin-add.c builtin-mv.c cache.h read-cache.c
| * | | | "git-add -n -u" should not add but just reportJunio C Hamano2008-05-21
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | | Merge branch 'ar/t6031'Junio C Hamano2008-05-25
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | * ar/t6031: Fix t6031 on filesystems without working exec bit