Commit Graph

1665 Commits

Author SHA1 Message Date
Lea Wiemann
7b7b4516de t/.gitattributes: only ignore whitespace errors in test files
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>
2008-06-12 22:22:55 -07:00
Junio C Hamano
ea81e10ff4 Merge branch 'js/merge-recursive'
* js/merge-recursive:
  merge-recursive: respect core.autocrlf when writing out the result
  Add testcase for merging in a CRLF repo
2008-06-09 16:13:10 -07:00
Johannes Schindelin
249c61a62d merge-recursive: respect core.autocrlf when writing out the result
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>
2008-06-09 16:11:08 -07:00
Marius Storm-Olsen
eea982843e Add testcase for merging in a CRLF repo
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>
2008-06-09 15:37:44 -07:00
Lea Wiemann
3c076dbe3c cat-file --batch / --batch-check: do not exit if hashes are missing
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>
2008-06-09 13:46:08 -07:00
Lea Wiemann
4e44ae45fe t1006-cat-file.sh: typo
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>
2008-06-09 13:31:23 -07:00
Junio C Hamano
60727b5800 Merge branch 'maint'
* maint:
  describe: match pattern for lightweight tags too
2008-06-04 13:15:59 -07:00
Michael Dressel
4ed19a3c17 describe: match pattern for lightweight tags too
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>
2008-06-04 13:08:03 -07:00
Junio C Hamano
de5825cc82 t7502: honor SHELL_PATH
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-04 12:11:59 -07:00
Alex Riesen
70ca472f1f Fix t5516 on cygwin: it does not like double slashes at the beginning of a path
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>
2008-06-03 22:12:08 -07:00
Junio C Hamano
a3c91e088e t7502: tighten loosely written test sequence
We would like to catch breakage at any step in the sequence.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-06-03 18:13:33 -07:00
Junio C Hamano
7845944c64 t7502: do not globally unset GIT_COMMITTER_* environment variables
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>
2008-06-03 18:08:08 -07:00
Junio C Hamano
67bfc030d7 commit: drop duplicated parents
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>
2008-06-02 23:55:57 -07:00
Junio C Hamano
06f60e8edf Merge branch 'sb/am-tests'
* sb/am-tests:
  Merge t4150-am-subdir.sh and t4151-am.sh into t4150-am.sh
  Add test cases for git-am
2008-06-01 23:45:41 -07:00
Junio C Hamano
f0d2a057c1 Merge branch 'lw/test-fix'
* lw/test-fix:
  t/test-lib.sh: resolve symlinks in working directory, for pathname comparisons
2008-06-01 23:45:37 -07:00
Junio C Hamano
0cc01c9657 Merge branch 'sp/remote'
* 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
2008-06-01 23:43:30 -07:00
Junio C Hamano
6810053154 Merge branch 'lr/init-bare'
* lr/init-bare:
  git-init: accept --bare option
2008-06-01 22:54:16 -07:00
Shawn O. Pearce
c175a7ad32 Make "git-remote prune" delete refs according to fetch specs
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>
2008-05-31 23:55:15 -07:00
Lea Wiemann
1bd9c64840 t/test-lib.sh: resolve symlinks in working directory, for pathname comparisons
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>
2008-05-31 18:32:17 -07:00
Stephan Beyer
8ec00d0534 Merge t4150-am-subdir.sh and t4151-am.sh into t4150-am.sh
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>
2008-05-31 15:42:12 -07:00
Stephan Beyer
d3a7b8f5c5 Add test cases for git-am
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>
2008-05-31 15:42:12 -07:00
Paolo Bonzini
ad5fa3cc0e rollback lock files on more signals than just SIGINT
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>
2008-05-31 14:33:59 -07:00
Luciano Rocha
74d3b23fe3 git-init: accept --bare option
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>
2008-05-28 18:31:19 -07:00
Dmitry V. Levin
efb98b4453 builtin-fetch.c (store_updated_refs): Honor update_local_ref() return value
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>
2008-05-28 10:47:12 -07:00
Junio C Hamano
b2a42f55bc t5100: Avoid filename "nul"
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>
2008-05-27 23:12:29 -07:00
Junio C Hamano
b71ce7f3f1 Merge 1.5.5.3 in 2008-05-27 22:34:19 -07:00
Johannes Sixt
a17171b473 Revert "filter-branch: subdirectory filter needs --full-history"
This reverts commit cfabd6eee1. 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>
2008-05-27 22:27:30 -07:00
Johannes Sixt
cb418b5a38 t5700-clone-reference: Quote $U
The new "trash directory" bites again.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-27 21:29:01 -07:00
Karl Hasselström
40672a1904 Add some tests for git update-ref -d
Signed-off-by: Karl Hasselström <kha@treskal.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-27 20:56:22 -07:00
Junio C Hamano
3beb56bde6 Merge branch 'jc/diff-no-no-index'
* 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"
2008-05-26 22:38:19 -07:00
Junio C Hamano
109440c1bf Merge branch 'gp/bisect-fix' into maint
* 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"
2008-05-26 19:15:03 -07:00
Junio C Hamano
cc26efb313 Merge branch 'js/mailinfo'
* 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
2008-05-25 14:05:09 -07:00
Junio C Hamano
0166592495 Merge branch 'jc/add-n-u'
* 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
2008-05-25 14:03:50 -07:00
Junio C Hamano
488ee2fe21 Merge branch 'ar/t6031'
* ar/t6031:
  Fix t6031 on filesystems without working exec bit
2008-05-25 13:49:16 -07:00
Junio C Hamano
b84c343c88 Merge branch 'db/clone-in-c'
* db/clone-in-c:
  Add test for cloning with "--reference" repo being a subset of source repo
  Add a test for another combination of --reference
  Test that --reference actually suppresses fetching referenced objects
  clone: fall back to copying if hardlinking fails
  builtin-clone.c: Need to closedir() in copy_or_link_directory()
  builtin-clone: fix initial checkout
  Build in clone
  Provide API access to init_db()
  Add a function to set a non-default work tree
  Allow for having for_each_ref() list extra refs
  Have a constant extern refspec for "--tags"
  Add a library function to add an alternate to the alternates file
  Add a lockfile function to append to a file
  Mark the list of refs to fetch as const

Conflicts:

	cache.h
	t/t5700-clone-reference.sh
2008-05-25 13:41:37 -07:00
Junio C Hamano
0dbaa5bd51 Merge branch 'jc/apply-whitespace'
* jc/apply-whitespace:
  builtin-apply: do not declare patch is creation when we do not know it
  builtin-apply: accept patch to an empty file
  builtin-apply: typofix
2008-05-25 13:38:31 -07:00
Junio C Hamano
29313449f7 Merge branch 'ar/batch-cat'
* ar/batch-cat:
  change quoting in test t1006-cat-file.sh
  builtin-cat-file.c: use parse_options()
  git-svn: Speed up fetch
  Git.pm: Add hash_and_insert_object and cat_blob
  Git.pm: Add command_bidi_pipe and command_close_bidi_pipe
  git-hash-object: Add --stdin-paths option
  Add more tests for git hash-object
  Move git-hash-object tests from t5303 to t1007
  git-cat-file: Add --batch option
  git-cat-file: Add --batch-check option
  git-cat-file: Make option parsing a little more flexible
  git-cat-file: Small refactor of cmd_cat_file
  Add tests for git cat-file
2008-05-25 13:38:06 -07:00
Junio C Hamano
325566cc5d Merge branch 'cc/bisect'
* cc/bisect:
  bisect: use a detached HEAD to bisect
  bisect: trap critical errors in "bisect_start"
  bisect: fix left over "BISECT_START" file when starting with junk rev
  bisect: add test cases to check that "git bisect start" is atomic
2008-05-25 13:38:03 -07:00
Junio C Hamano
834836bd3f Merge branch 'ap/svn'
* ap/svn:
  git-svn: add test for --add-author-from and --use-log-author
  git-svn: add documentation for --add-author-from option.
  git-svn: Add --add-author-from option.
  git-svn: add documentation for --use-log-author option.
2008-05-25 13:37:25 -07:00
Junio C Hamano
6c99f18660 Merge branch 'js/cvsexportcommit'
* js/cvsexportcommit:
  cvsexportcommit: introduce -W for shared working trees (between Git and CVS)
  cvsexportcommit: chomp only removes trailing whitespace

Conflicts:

	git-cvsexportcommit.perl
2008-05-25 13:37:20 -07:00
Junio C Hamano
7e83003029 Merge branch 'js/ignore-submodule'
* js/ignore-submodule:
  Ignore dirty submodule states during rebase and stash
  Teach update-index about --ignore-submodules
  diff options: Introduce --ignore-submodules
2008-05-25 13:37:08 -07:00
Junio C Hamano
58dd4915ba Merge branch 'mo/cvsserver'
* mo/cvsserver:
  Documentation: Fix skipped section level
  git-cvsserver: add ability to guess -kb from contents
  implement gitcvs.usecrlfattr
  git-cvsserver: add mechanism for managing working tree and current directory
2008-05-25 13:37:04 -07:00
Junio C Hamano
9aa23094c2 mailinfo: apply the same fix not to lose NULs in BASE64 and QP codepaths
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-25 13:22:18 -07:00
Johannes Schindelin
cce8d6fdb4 mailsplit and mailinfo: gracefully handle NUL characters
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>
2008-05-25 13:21:40 -07:00
Junio C Hamano
0569e9b8ce "git diff": do not ignore index without --no-index
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>
2008-05-24 00:16:39 -07:00
Junio C Hamano
3af828634f tests: do not use implicit "git diff --no-index"
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>
2008-05-24 00:01:56 -07:00
Junio C Hamano
182fb4df91 Merge branch 'pb/push'
* pb/push:
  add special "matching refs" refspec
2008-05-23 16:06:07 -07:00
Junio C Hamano
e5e9714a10 Merge branch 'bc/repack'
* bc/repack:
  Documentation/git-repack.txt: document new -A behaviour
  let pack-objects do the writing of unreachable objects as loose objects
  add a force_object_loose() function
  builtin-gc.c: deprecate --prune, it now really has no effect
  git-gc: always use -A when manually repacking
  repack: modify behavior of -A option to leave unreferenced objects unpacked

Conflicts:

	builtin-pack-objects.c
2008-05-23 16:06:01 -07:00
Junio C Hamano
6aad47dec7 Merge branch 'sp/ignorecase'
* sp/ignorecase:
  t0050: Fix merge test on case sensitive file systems
  t0050: Add test for case insensitive add
  t0050: Set core.ignorecase case to activate case insensitivity
  t0050: Test autodetect core.ignorecase
  git-init: autodetect core.ignorecase
2008-05-23 16:05:52 -07:00
Michele Ballabio
6c41e21d48 change quoting in test t1006-cat-file.sh
Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-23 12:08:42 -07:00