gitweb.git
Merge branch 'maint'Junio C Hamano Wed, 25 Mar 2009 02:45:57 +0000 (19:45 -0700)

Merge branch 'maint'

* maint:
Increase the size of the die/warning buffer to avoid truncation
close_sha1_file(): make it easier to diagnose errors
avoid possible overflow in delta size filtering computation

Add warning about known issues to documentation of... Heiko Voigt Mon, 23 Mar 2009 19:53:05 +0000 (20:53 +0100)

Add warning about known issues to documentation of cvsimport

The described issues are compiled from the tests by Michael Haggerty and me.
Because it is not apparent that these can be fixed anytime soon at least warn
unwary users not to rely on the inbuilt cvsimport to much.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: add --thread=deep/shallow to format-patchStephen Boyd Mon, 23 Mar 2009 10:26:51 +0000 (03:26 -0700)

completion: add --thread=deep/shallow to format-patch

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Trivially-Acked-By: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: add --cc and --no-attachment option to... Stephen Boyd Mon, 23 Mar 2009 10:26:50 +0000 (03:26 -0700)

completion: add --cc and --no-attachment option to format-patch

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Trivially-Acked-By: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: add --annotate option to send-emailStephen Boyd Mon, 23 Mar 2009 10:26:49 +0000 (03:26 -0700)

completion: add --annotate option to send-email

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Trivially-Acked-By: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Increase the size of the die/warning buffer to avoid... Shawn O. Pearce Tue, 24 Mar 2009 23:10:35 +0000 (16:10 -0700)

Increase the size of the die/warning buffer to avoid truncation

Long messages like those from lockfile.c when a lock can't be
obtained truncate with only 256 bytes in the message buffer.
Bump it to 1024 to give more space for these longer cases.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint-1.6.1' into maintJunio C Hamano Tue, 24 Mar 2009 22:31:21 +0000 (15:31 -0700)

Merge branch 'maint-1.6.1' into maint

* maint-1.6.1:
close_sha1_file(): make it easier to diagnose errors
avoid possible overflow in delta size filtering computation

Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano Tue, 24 Mar 2009 22:31:15 +0000 (15:31 -0700)

Merge branch 'maint-1.6.0' into maint-1.6.1

* maint-1.6.0:
close_sha1_file(): make it easier to diagnose errors
avoid possible overflow in delta size filtering computation

MinGW: Quote arguments for subprocesses that contain... Johannes Sixt Tue, 24 Mar 2009 20:43:02 +0000 (21:43 +0100)

MinGW: Quote arguments for subprocesses that contain a single-quote

Before a process can be spawned by mingw_spawnve, arguments must be
surrounded by double-quotes if special characters are present. This is
necessary because the startup code of the spawned process will expand
arguments that look like glob patterns. "Normal" Windows command line
utilities expand only * and ?, but MSYS programs, including bash, are
different: They also expand braces, and this has already been taken care
of by compat/mingw.c:quote_arg().

But MSYS programs also treat single-quotes in a special way: Arguments
between single-quotes are spliced together (with spaces) into a word.
With this patch this treatment is avoided by quoting arguments that contain
single-quotes.

This lets t4252 pass on Windows.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'js/windows-tests'Junio C Hamano Tue, 24 Mar 2009 21:42:50 +0000 (14:42 -0700)

Merge branch 'js/windows-tests'

* js/windows-tests:
t0060: fix whitespace in "wc -c" invocation
t5503: GIT_DEBUG_SEND_PACK is not supported on MinGW
t7004: Use prerequisite tags to skip tests that need gpg
Use prerequisites to skip tests that need unzip
t3700: Skip a test with backslashes in pathspec
Skip tests that require a filesystem that obeys POSIX permissions
t0060: Fix tests on Windows
Use prerequisite tags to skip tests that depend on symbolic links
t9100, t9129: Use prerequisite tags for UTF-8 tests
t5302: Use prerequisite tags to skip 64-bit offset tests
Skip tests that fail if the executable bit is not handled by the filesystem
t3600: Use test prerequisite tags
test-lib: Infrastructure to test and check for prerequisites
t0050: Check whether git init detected symbolic link support correctly
Tests on Windows: $(pwd) must return Windows-style paths
test-lib: Work around missing sum on Windows
test-lib: Work around incompatible sort and find on Windows

Conflicts:
t/t3000-ls-files-others.sh

close_sha1_file(): make it easier to diagnose errorsLinus Torvalds Tue, 24 Mar 2009 19:31:36 +0000 (12:31 -0700)

close_sha1_file(): make it easier to diagnose errors

A bug report with "unable to write sha1 file" made us realize that we do
not have enough information to guess why close() is failing.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

avoid possible overflow in delta size filtering computationNicolas Pitre Tue, 24 Mar 2009 19:56:12 +0000 (15:56 -0400)

avoid possible overflow in delta size filtering computation

On a 32-bit system, the maximum possible size for an object is less than
4GB, while 64-bit systems may cope with larger objects. Due to this
limitation, variables holding object sizes are using an unsigned long
type (32 bits on 32-bit systems, or 64 bits on 64-bit systems).

When large objects are encountered, and/or people play with large delta
depth values, it is possible for the maximum allowed delta size
computation to overflow, especially on a 32-bit system. When this
occurs, surviving result bits may represent a value much smaller than
what it is supposed to be, or even zero. This prevents some objects
from being deltified although they do get deltified when a smaller depth
limit is used. Fix this by always performing a 64-bit multiplication.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

refs: use warning() instead of fprintf(stderr, "warning: ")Miklos Vajna Tue, 24 Mar 2009 01:09:17 +0000 (02:09 +0100)

refs: use warning() instead of fprintf(stderr, "warning: ")

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-show-ref: use warning() instead of fprintf... Miklos Vajna Tue, 24 Mar 2009 01:09:16 +0000 (02:09 +0100)

builtin-show-ref: use warning() instead of fprintf(stderr, "warning: ")

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-show-branch: use warning() instead of fprintf... Miklos Vajna Tue, 24 Mar 2009 01:09:15 +0000 (02:09 +0100)

builtin-show-branch: use warning() instead of fprintf(stderr, "warning: ")

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-rm: use warning() instead of fprintf(stderr... Miklos Vajna Tue, 24 Mar 2009 01:09:14 +0000 (02:09 +0100)

builtin-rm: use warning() instead of fprintf(stderr, "warning: ")

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-init-db: use warning() instead of fprintf(stder... Miklos Vajna Tue, 24 Mar 2009 01:09:13 +0000 (02:09 +0100)

builtin-init-db: use warning() instead of fprintf(stderr, "warning: ")

Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-fetch-pack: use warning() instead of fprintf... Miklos Vajna Tue, 24 Mar 2009 01:09:12 +0000 (02:09 +0100)

builtin-fetch-pack: use warning() instead of fprintf(stderr, "warning: ")

Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-checkout: use warning() instead of fprintf... Miklos Vajna Tue, 24 Mar 2009 01:09:11 +0000 (02:09 +0100)

builtin-checkout: use warning() instead of fprintf(stderr, "warning: ")

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin-apply: use warning() instead of fprintf(stderr... Miklos Vajna Tue, 24 Mar 2009 01:09:10 +0000 (02:09 +0100)

builtin-apply: use warning() instead of fprintf(stderr, "warning: ")

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http-push: using error() and warning() as appropriateMiklos Vajna Tue, 24 Mar 2009 01:09:09 +0000 (02:09 +0100)

http-push: using error() and warning() as appropriate

Change three occurences of using inconsistent error/warning reporting by
using the relevant error() / warning() calls to be consitent with the
rest of the code.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t0060: fix whitespace in "wc -c" invocationJeff King Mon, 23 Mar 2009 06:22:29 +0000 (02:22 -0400)

t0060: fix whitespace in "wc -c" invocation

Some platforms like to stick extra whitespace in the output
of "wc -c"; using the result without quotes gets the shell
to collapse the whitespace.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Makefile: turn on USE_ST_TIMESPEC for FreeBSDJeff King Sun, 22 Mar 2009 08:08:48 +0000 (04:08 -0400)

Makefile: turn on USE_ST_TIMESPEC for FreeBSD

Fixes broken compilation on FreeBSD 6.1.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash completion: add options for 'git fsck'Arto Jonsson Sun, 22 Mar 2009 18:49:07 +0000 (20:49 +0200)

bash completion: add options for 'git fsck'

Signed-off-by: Arto Jonsson <ajonsson@kapsi.fi>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add --staged to bash completion for git diffKevin McConnell Sat, 21 Mar 2009 23:29:27 +0000 (16:29 -0700)

Add --staged to bash completion for git diff

The --staged option (synonym for --cached) isn't listed in the
completion choices for git diff. This tiny patch adds it.

Trivially-Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Improve error message about fetch into current branchAlex Riesen Sun, 22 Mar 2009 22:07:33 +0000 (23:07 +0100)

Improve error message about fetch into current branch

Otherwise, it is hard to guess why the fetch failed.
Make sure we at least mention that the repository must be bare.
Also the current branch is printed.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Sun, 22 Mar 2009 22:41:42 +0000 (15:41 -0700)

Merge branch 'maint'

* maint:
everyday: use the dashless form of git-init

Merge branch 'maint-1.6.1' into maintJunio C Hamano Sun, 22 Mar 2009 22:41:00 +0000 (15:41 -0700)

Merge branch 'maint-1.6.1' into maint

* maint-1.6.1:
everyday: use the dashless form of git-init

Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano Sun, 22 Mar 2009 22:40:55 +0000 (15:40 -0700)

Merge branch 'maint-1.6.0' into maint-1.6.1

* maint-1.6.0:
everyday: use the dashless form of git-init

everyday: use the dashless form of git-initDavid Aguilar Sun, 22 Mar 2009 09:15:13 +0000 (02:15 -0700)

everyday: use the dashless form of git-init

The 'Everyday GIT' guide was using the old dashed form
of git-init.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5503: GIT_DEBUG_SEND_PACK is not supported on MinGWJohannes Sixt Fri, 20 Mar 2009 21:03:33 +0000 (22:03 +0100)

t5503: GIT_DEBUG_SEND_PACK is not supported on MinGW

The test opens fd 3 and instructs git-upload-pack (via GIT_DEBUG_SEND_PACK)
to log information to that channel.

The way in which new processes are spawned by git on MinGW does not inherit
all file descriptors to the child processes, but only 0, 1, and 2.
The tests in t5503 require that file descriptor 3 is inherited from
git-fetch to git-upload-pack.

A complete implementation is non-trivial and not warranted just to satisfy
this test. Note that the incompleteness applies only to the executables
that use compat/mingw.c; bash and perl (the other important executables
used by git) are complete, of course.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

t7004: Use prerequisite tags to skip tests that need gpgJohannes Sixt Mon, 16 Mar 2009 14:09:23 +0000 (15:09 +0100)

t7004: Use prerequisite tags to skip tests that need gpg

The tests are skipped if no gpg was found or if gpg is version 1.0.6.
Previously, the latter condition was checked a bit later in the test file
so that the tag verification tests would be exercised. These are now
skipped as well, but only because we would need a facility to revoke a
test prerequisite, which we do not have.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

Use prerequisites to skip tests that need unzipJohannes Sixt Mon, 16 Mar 2009 13:44:56 +0000 (14:44 +0100)

Use prerequisites to skip tests that need unzip

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

t3700: Skip a test with backslashes in pathspecJohannes Sixt Fri, 13 Mar 2009 22:00:15 +0000 (23:00 +0100)

t3700: Skip a test with backslashes in pathspec

The test verifies that glob special characters can be escaped with
backslashes. In particular, the string fo\[ou\]bar is given to git.

On Windows, this does not work because backslashes are first of all
directory separators, and first thing git does with a pathspec from the
command line is to convert backslashes to forward slashes.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

Skip tests that require a filesystem that obeys POSIX... Johannes Sixt Fri, 13 Mar 2009 21:55:27 +0000 (22:55 +0100)

Skip tests that require a filesystem that obeys POSIX permissions

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

t0060: Fix tests on WindowsJohannes Sixt Wed, 11 Mar 2009 21:15:10 +0000 (22:15 +0100)

t0060: Fix tests on Windows

Since the MSYS bash mangles absolute paths that it passes as command line
arguments to non-MSYS progams (such as git or test-path-utils), we have to
bend over backwards to squeeze some usefulness out of the existing tests.

In particular, a set of path normalization tests is added that test
relative paths. Some paths in the ancestor path tests are adjusted to help
MSYS bash's path mangling heuristics.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

Use prerequisite tags to skip tests that depend on... Johannes Sixt Wed, 4 Mar 2009 21:38:24 +0000 (22:38 +0100)

Use prerequisite tags to skip tests that depend on symbolic links

Many tests depend on that symbolic links work. This introduces a check
that sets the prerequisite tag SYMLINKS if the file system supports
symbolic links. Since so many tests have to check for this prerequisite,
we do the check in test-lib.sh, so that we don't need to repeat the test
in many scripts.

To check for 'ln -s' failures, you can use a FAT partition on Linux:

$ mkdosfs -C git-on-fat 1000000
$ sudo mount -o loop,uid=j6t,gid=users,shortname=winnt git-on-fat /mnt

Clone git to /mnt and

$ GIT_SKIP_TESTS='t0001.1[34] t0010 t1301 t403[34] t4129.[47] t5701.7
t7701.3 t9100 t9101.26 t9119 t9124.[67] t9200.10 t9600.6' \
make test

(These additionally skipped tests depend on POSIX permissions that FAT on
Linux does not provide.)

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

t9100, t9129: Use prerequisite tags for UTF-8 testsJohannes Sixt Tue, 24 Feb 2009 20:13:39 +0000 (21:13 +0100)

t9100, t9129: Use prerequisite tags for UTF-8 tests

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

t5302: Use prerequisite tags to skip 64-bit offset... Johannes Sixt Wed, 25 Feb 2009 21:34:34 +0000 (22:34 +0100)

t5302: Use prerequisite tags to skip 64-bit offset tests

The effects of this patch can be tested on Linux by commenting out

#define _FILE_OFFSET_BITS 64

in git-compat-util.h.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

Skip tests that fail if the executable bit is not handl... Johannes Sixt Fri, 27 Feb 2009 21:20:57 +0000 (22:20 +0100)

Skip tests that fail if the executable bit is not handled by the filesystem

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

t3600: Use test prerequisite tagsJohannes Sixt Thu, 26 Feb 2009 22:09:00 +0000 (23:09 +0100)

t3600: Use test prerequisite tags

There are two prerequisites:

- The filesystem supports names with tabs or new-lines.

- Files cannot be removed if their containing directory is read-only.

Previously, whether these preconditions are satisified was tested inside
test_expect_success. We move these tests outside because, strictly
speaking, they are not part of the tests.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

Merge branch 'dm/maint-docco'Junio C Hamano Sun, 22 Mar 2009 06:24:46 +0000 (23:24 -0700)

Merge branch 'dm/maint-docco'

* dm/maint-docco:
Documentation: reword example text in git-bisect.txt.
Documentation: reworded the "Description" section of git-bisect.txt.
Documentation: minor grammatical fixes in git-branch.txt.
Documentation: minor grammatical fixes in git-blame.txt.
Documentation: reword the "Description" section of git-bisect.txt.
Documentation: minor grammatical fixes in git-archive.txt.

Merge branch 'mg/test-installed'Junio C Hamano Sun, 22 Mar 2009 06:24:40 +0000 (23:24 -0700)

Merge branch 'mg/test-installed'

* mg/test-installed:
test-lib.sh: Allow running the test suite against installed git
test-lib.sh: Test for presence of git-init in the right path.

Sync with maintJunio C Hamano Sun, 22 Mar 2009 06:24:11 +0000 (23:24 -0700)

Sync with maint

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.6.2.2Junio C Hamano Sun, 22 Mar 2009 06:21:15 +0000 (23:21 -0700)

Update draft release notes to 1.6.2.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

ls-files: require worktree when --deleted is givenJeff King Tue, 17 Mar 2009 09:03:19 +0000 (05:03 -0400)

ls-files: require worktree when --deleted is given

The code will end up calling lstat() to check whether the
file still exists; obviously this doesn't work if we're not
in the worktree.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pickaxe: count regex matches only onceRené Scharfe Mon, 16 Mar 2009 18:38:42 +0000 (19:38 +0100)

pickaxe: count regex matches only once

When --pickaxe-regex is used, forward past the end of matches instead of
advancing to the byte after their start. This way matches count only
once, even if the regular expression matches their tail -- like in the
fixed-string fork of the code.

E.g.: /.*/ used to count the number of bytes instead of the number of
lines. /aa/ resulted in a count of two in "aaa" instead of one.

Also document the fact that regexec() needs a NUL-terminated string as
its second argument by adding an assert().

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint-1.6.1' into maintJunio C Hamano Sun, 22 Mar 2009 06:10:42 +0000 (23:10 -0700)

Merge branch 'maint-1.6.1' into maint

* maint-1.6.1:

Merge branch 'tr/maint-1.6.0-send-email-irt' into maintJunio C Hamano Sun, 22 Mar 2009 06:09:21 +0000 (23:09 -0700)

Merge branch 'tr/maint-1.6.0-send-email-irt' into maint

* tr/maint-1.6.0-send-email-irt:
send-email: test --no-thread --in-reply-to combination
send-email: respect in-reply-to regardless of threading

Conflicts:
t/t9001-send-email.sh

Merge branch 'mg/maint-submodule-normalize-path' into... Junio C Hamano Sun, 22 Mar 2009 06:08:27 +0000 (23:08 -0700)

Merge branch 'mg/maint-submodule-normalize-path' into maint

* mg/maint-submodule-normalize-path:
git submodule: Fix adding of submodules at paths with ./, .. and //
git submodule: Add test cases for git submodule add

Merge branch 'rs/memmem' into maintJunio C Hamano Sun, 22 Mar 2009 06:08:21 +0000 (23:08 -0700)

Merge branch 'rs/memmem' into maint

* rs/memmem:
optimize compat/ memmem()
diffcore-pickaxe: use memmem()

Merge branch 'js/rsync-local' into maintJunio C Hamano Sun, 22 Mar 2009 06:03:17 +0000 (23:03 -0700)

Merge branch 'js/rsync-local' into maint

* js/rsync-local:
rsync transport: allow local paths, and fix tests

Merge branch 'db/maint-missing-origin' into maintJunio C Hamano Sun, 22 Mar 2009 06:02:55 +0000 (23:02 -0700)

Merge branch 'db/maint-missing-origin' into maint

* db/maint-missing-origin:
Remove total confusion from git-fetch and git-push
Give error when no remote is configured

Merge branch 'jc/maint-1.6.0-read-tree-overlay' into... Junio C Hamano Sun, 22 Mar 2009 06:02:47 +0000 (23:02 -0700)

Merge branch 'jc/maint-1.6.0-read-tree-overlay' into maint

* jc/maint-1.6.0-read-tree-overlay:
read-tree A B C: do not create a bogus index and do not segfault

Merge branch 'js/maint-1.6.0-path-normalize' into maint... Junio C Hamano Sun, 22 Mar 2009 05:59:19 +0000 (22:59 -0700)

Merge branch 'js/maint-1.6.0-path-normalize' into maint-1.6.1

* js/maint-1.6.0-path-normalize:
Remove unused normalize_absolute_path()
Test and fix normalize_path_copy()
Fix GIT_CEILING_DIRECTORIES on Windows
Move sanitary_path_copy() to path.c and rename it to normalize_path_copy()
Make test-path-utils more robust against incorrect use

Merge branch 'jc/maint-1.6.0-pack-directory' into maint... Junio C Hamano Sun, 22 Mar 2009 05:53:36 +0000 (22:53 -0700)

Merge branch 'jc/maint-1.6.0-pack-directory' into maint-1.6.1

* jc/maint-1.6.0-pack-directory:
Fix odb_mkstemp() on AIX
Make sure objects/pack exists before creating a new pack

Conflicts:
wrapper.c

format-patch: --numbered-files and --stdout aren't... Stephen Boyd Sun, 22 Mar 2009 04:32:43 +0000 (21:32 -0700)

format-patch: --numbered-files and --stdout aren't mutually exclusive

For example:

git format-patch --numbered-files --stdout --attach HEAD~~

will create two messages with files 1 and 2 attached respectively.
Without --attach/--inline but with --stdout, --numbered-files option
can be simply ignored, because we are not creating any file ourselves.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-lib: Infrastructure to test and check for prerequi... Johannes Sixt Sun, 1 Mar 2009 20:04:46 +0000 (21:04 +0100)

test-lib: Infrastructure to test and check for prerequisites

Some tests can be run only if a particular prerequisite is available. For
example, some tests require that an UTF-8 locale is available. Here we
introduce functions that are used in this way:

1. Insert code that checks whether the prerequisite is available. If it is,
call test_set_prereq with an arbitrary tag name that subsequently can be
used to check for the prerequisite:

case $LANG in
*.utf-8)
test_set_prereq UTF8
;;
esac

2. In the calls to test_expect_success pass the tag name:

test_expect_success UTF8 '...description...' '...tests...'

3. There is an auxiliary predicate that can be used anywhere to test for
a prerequisite explicitly:

if test_have_prereq UTF8
then
...code to be skipped if prerequisite is not available...
fi

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

http tests: Darwin is not that specialJunio C Hamano Wed, 11 Mar 2009 20:13:38 +0000 (13:13 -0700)

http tests: Darwin is not that special

We have PidFile definition in the file already, and we have added
necessary LoadModule for log_config_module recently.

This patch will end up giving LockFile to everybody not just limited to
Darwin, but why not?

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Fri, 20 Mar 2009 21:31:15 +0000 (14:31 -0700)

Merge branch 'maint'

* maint:
doc: clarify how -S works

Merge branch 'mv/parseopt-ls-files'Junio C Hamano Fri, 20 Mar 2009 21:30:51 +0000 (14:30 -0700)

Merge branch 'mv/parseopt-ls-files'

* mv/parseopt-ls-files:
ls-files: fix broken --no-empty-directory
t3000: use test_cmp instead of diff
parse-opt: migrate builtin-ls-files.
Turn the flags in struct dir_struct into a single variable

Conflicts:
builtin-ls-files.c
t/t3000-ls-files-others.sh

Merge branch 'bw/autoconf'Junio C Hamano Fri, 20 Mar 2009 21:30:08 +0000 (14:30 -0700)

Merge branch 'bw/autoconf'

* bw/autoconf:
configure: rework pthread handling to allow for user defined flags
configure: make iconv tests aware of user arguments
configure: asciidoc version test cleanup
configure: wrap some library tests with GIT_STASH_FLAGS
configure: add macros to stash FLAG variables
configure: reorganize flow of argument checks
configure: ensure settings from user are also usable in the script

Merge branch 'xx/db-refspec-vs-js-remote'Junio C Hamano Fri, 20 Mar 2009 21:30:00 +0000 (14:30 -0700)

Merge branch 'xx/db-refspec-vs-js-remote'

* xx/db-refspec-vs-js-remote:
Support '*' in the middle of a refspec
Keep '*' in pattern refspecs
Use the matching function to generate the match results
Use a single function to match names against patterns
Make clone parse the default refspec with the normal code

Merge branch 'jc/clone-branch-rebase'Junio C Hamano Fri, 20 Mar 2009 21:29:49 +0000 (14:29 -0700)

Merge branch 'jc/clone-branch-rebase'

* jc/clone-branch-rebase:
Improve "git branch --tracking" output
Make git-clone respect branch.autosetuprebase

Conflicts:
builtin-clone.c

Merge branch 'js/rebase-i-opt'Junio C Hamano Fri, 20 Mar 2009 21:29:10 +0000 (14:29 -0700)

Merge branch 'js/rebase-i-opt'

* js/rebase-i-opt:
rebase -i: avoid 'git reset' when possible

Merge branch 'fc/parseopt-config'Junio C Hamano Fri, 20 Mar 2009 21:29:03 +0000 (14:29 -0700)

Merge branch 'fc/parseopt-config'

* fc/parseopt-config:
config: test for --replace-all with one argument and fix documentation.
config: set help text for --bool-or-int
git config: don't allow --get-color* and variable type
git config: don't allow extra arguments for -e or -l.
git config: don't allow multiple variable types
git config: don't allow multiple config file locations
git config: reorganize to use parseopt
git config: reorganize get_color*
git config: trivial rename in preparation for parseopt
git_config(): not having a per-repo config file is not an error

Microoptimize strbuf_cmpAlex Riesen Thu, 19 Mar 2009 22:27:32 +0000 (23:27 +0100)

Microoptimize strbuf_cmp

It can be less object code and may be even faster, even if at the
moment there is no callers to take an advantage of that. This
implementation can be trivially made inlinable later.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Produce a nicer output in case of sha1_object_info... Alex Riesen Thu, 19 Mar 2009 22:54:29 +0000 (23:54 +0100)

Produce a nicer output in case of sha1_object_info failures in ls-tree -l

An error message is already printed by sha1_object_info itself, and
the failed entries are additionally marked in the listing.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: reword example text in git-bisect.txt.David J. Mellor Fri, 20 Mar 2009 03:35:34 +0000 (20:35 -0700)

Documentation: reword example text in git-bisect.txt.

Avoid splitting sentences across examples of command usage.

Signed-off-by: David J. Mellor <dmellor@whistlingcat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

import-tars: separate author from committerGiuseppe Bilotta Fri, 20 Mar 2009 09:57:50 +0000 (10:57 +0100)

import-tars: separate author from committer

The import-tars script is typically employed to (re)create the past
history of a project from stored tars. Although assigning authorship in
these cases can be a somewhat arbitrary process, it makes sense to set
the author to whoever created the tars in the first place (if it's
known), and (s)he can in general be different from the committer
(whoever is running the script).

Implement this by having separate author and committer data, making them
settable from the usual GIT_* environment variables.

Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'js/windows-tests'Junio C Hamano Thu, 19 Mar 2009 23:00:15 +0000 (16:00 -0700)

Merge branch 'js/windows-tests'

* js/windows-tests:
t5602: Work around path mangling on MSYS
t5300, t5302, t5303: Do not use /dev/zero
t2200, t7004: Avoid glob pattern that also matches files
t7300: fix clean up on Windows
test-lib: Introduce test_chmod and use it instead of update-index --chmod
test-lib: Simplify test counting.
test-lib: Replace uses of $(expr ...) by POSIX shell features.
Call 'say' outside test_expect_success
test suite: Use 'say' to say something instead of 'test_expect_success'
t9400, t9401: Do not force hard-linked clone

t0050: Check whether git init detected symbolic link... Johannes Sixt Wed, 4 Mar 2009 18:40:27 +0000 (19:40 +0100)

t0050: Check whether git init detected symbolic link support correctly

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

Tests on Windows: $(pwd) must return Windows-style... Johannes Sixt Fri, 13 Mar 2009 22:35:24 +0000 (23:35 +0100)

Tests on Windows: $(pwd) must return Windows-style paths

Many tests pass $(pwd) in some form to git and later test that the output
of git contains the correct value of $(pwd). For example, the test of
'git remote show' sets up a remote that contains $(pwd) and then the
expected result must contain $(pwd).

Again, MSYS-bash's path mangling kicks in: Plain $(pwd) uses the MSYS style
absolute path /c/path/to/git. The test case would write this name into
the 'expect' file. But when git is invoked, MSYS-bash converts this name to
the Windows style path c:/path/to/git, and git would produce this form in
the result; the test would fail.

We fix this by passing -W to bash's pwd that produces the Windows-style
path.

There are a two cases that need an accompanying change:

- In t1504 the value of $(pwd) becomes part of a path list. In this case,
the lone 'c' in something like /foo:c:/path/to/git:/bar inhibits
MSYS-bashes path mangling; IOW in this case we want the /c/path/to/git
form to allow path mangling. We use $PWD instead of $(pwd), which always
has the latter form.

- In t6200, $(pwd) - the Windows style path - must be used to construct the
expected result because that is the path form that git sees. (The change
in the test itself is just for consistency: 'git fetch' always sees the
Windows-style path, with or without the change.)

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

test-lib: Work around missing sum on WindowsJohannes Sixt Sat, 14 Mar 2009 21:21:27 +0000 (22:21 +0100)

test-lib: Work around missing sum on Windows

t1002-read-tree-m-u-2way.sh uses 'sum', but it does not rely on the exact
form of the sum, only that it is a hash digest. Therefore, we can sneak
in 'md5sum' under the name 'sum'.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

test-lib: Work around incompatible sort and find on... Johannes Sixt Wed, 11 Mar 2009 20:17:26 +0000 (21:17 +0100)

test-lib: Work around incompatible sort and find on Windows

If the PATH lists the Windows system directories before the MSYS
directories, Windows's own incompatible sort and find commands would be
picked up. We implement these commands as functions and call the real
tools by absolute path.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

t5602: Work around path mangling on MSYSJohannes Sixt Thu, 12 Mar 2009 19:32:43 +0000 (20:32 +0100)

t5602: Work around path mangling on MSYS

MSYS's bash rewrites /something/bin/... into a Windows path that looks like
c:/msysgit/something/bin/... before git sees it. But later the test case
verifies that the path was used and compares it to the unmangled version.
This fails, of course. This make the path relative so that the path
mangling is not triggered.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

t5300, t5302, t5303: Do not use /dev/zeroJohannes Sixt Mon, 17 Nov 2008 08:21:30 +0000 (09:21 +0100)

t5300, t5302, t5303: Do not use /dev/zero

We do not have /dev/zero on Windows. This replaces it by data generated
with printf, perl, or echo. Most of the cases do not depend on that the
data is a stream of zero bytes, so we use something printable; nor is an
unlimited stream of data needed, so we produce only as many bytes as the
test cases need.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

t2200, t7004: Avoid glob pattern that also matches... Johannes Sixt Mon, 9 Feb 2009 09:24:51 +0000 (10:24 +0100)

t2200, t7004: Avoid glob pattern that also matches files

On Windows, there is an unfortunate interaction between the MSYS bash and
git's command line processing:

- Since Windows's CMD does not do the wildcard expansion, but passes
arguments like path* through to the programs, the programs must do the
expansion themselves. This happens in the startup code before main() is
entered.

- bash, however, passes the argument "path*" to git, assuming that git will
see the unquoted word unchanged as a single argument.

But actually git expands the unquoted word before main() is entered.

In t2200, not all names that the test case is interested in exist as files
at the time when 'git ls-files' is invoked. git expands "path?" to only
the subset of files the exist, and only that subset was listed, so that the
test failed. We now list all interesting paths explicitly.

In t7004, git exanded the pattern "*a*" to "actual" (the file that stdout
was redirected to), which is not what the was tested for. We fix it by
renaming the output file (and removing any existing files matching *a*).
This was originally fixed by Johannes Schindelin.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

t7300: fix clean up on WindowsJohannes Schindelin Wed, 11 Mar 2009 16:58:32 +0000 (17:58 +0100)

t7300: fix clean up on Windows

On Windows, you cannot remove files that are in use, not even with
'rm -rf'. So we need to run 'exec <foo/bar' inside a subshell lest
removing the whole test repository fail.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>

test-lib: Introduce test_chmod and use it instead of... Johannes Sixt Sat, 28 Feb 2009 20:12:57 +0000 (21:12 +0100)

test-lib: Introduce test_chmod and use it instead of update-index --chmod

This function replaces sequences of 'chmod +x' and 'git update-index
--chmod=+x' in the test suite, whose purpose is to help filesystems
that need core.filemode=false. Two places where only 'chmod +x' was used
we also use this new function.

The function calls 'git update-index --chmod' without checking
core.filemode (unlike some of the call sites did). We do this because the
call sites *expect* that the executable bit ends up in the index (ie. it
is not the purpose of the call sites to *test* whether git treats
'chmod +x' and 'update-index --chmod=+x' correctly). Therefore, on
filesystems with core.filemode=true the 'git update-index --chmod' is a
no-op.

The function uses --add with update-index to help one call site in
t6031-merge-recursive. It makes no difference for the other callers.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

test-lib: Simplify test counting.Johannes Sixt Thu, 5 Feb 2009 20:20:56 +0000 (21:20 +0100)

test-lib: Simplify test counting.

Since the test case counter was incremented very late, there were a few
users of the counter had to do their own incrementing. Now we increment it
early and simplify these users.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

test-lib: Replace uses of $(expr ...) by POSIX shell... Johannes Sixt Thu, 5 Feb 2009 19:59:27 +0000 (20:59 +0100)

test-lib: Replace uses of $(expr ...) by POSIX shell features.

In particular:

- Test case counting can be achieved by arithmetic expansion.

- The name of the test, e.g. t1234, can be computed with ${0%%} and ${0##}.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

Call 'say' outside test_expect_successJohannes Sixt Tue, 17 Mar 2009 21:45:22 +0000 (22:45 +0100)

Call 'say' outside test_expect_success

There were some uses of 'say' inside test_expect_success. But if the tests
were not run in verbose mode, this message went to /dev/null. Pull them out
of test_expect_success.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

test suite: Use 'say' to say something instead of ... Johannes Sixt Sun, 1 Mar 2009 18:52:51 +0000 (19:52 +0100)

test suite: Use 'say' to say something instead of 'test_expect_success'

Some tests report that some tests will be skipped. They used
'test_expect_success' with a trivially successful test. Nowadays we have
the helper function 'say' for this purpose.

In on case, 'say_color skip' is replaced by 'say' because the former is
not intended as a public API.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

doc: clarify how -S worksJeff King Tue, 3 Mar 2009 15:40:41 +0000 (10:40 -0500)

doc: clarify how -S works

The existing text was very vague about what exactly it means
for difference to "contain" a change. This seems to cause
confusion on the mailing list every month or two.

To fix it we:

1. use "introduce or remove an instance of" instead of
"contain"

2. point the user to gitdiffcore(7), which contains a more
complete explanation

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: reworded the "Description" section of... David J. Mellor Thu, 19 Mar 2009 07:00:12 +0000 (00:00 -0700)

Documentation: reworded the "Description" section of git-bisect.txt.

Added fixes missing from 2364259.

Signed-off-by: David J. Mellor <dmellor@whistlingcat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase: add options passed to git-amMichele Ballabio Wed, 18 Mar 2009 20:53:49 +0000 (21:53 +0100)

rebase: add options passed to git-am

Add the options --committer-date-is-author-date and --ignore-date
to git-rebase. They were introduced in commit a79ec62d0 for git-am.
These options imply --force-rebase.

Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

document --force-rebaseMichele Ballabio Wed, 18 Mar 2009 20:53:39 +0000 (21:53 +0100)

document --force-rebase

Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

MinGW: implement mmapJanos Laube Fri, 13 Mar 2009 15:50:45 +0000 (16:50 +0100)

MinGW: implement mmap

Add USE_WIN32_MMAP which triggers the use of windows' native
file memory mapping functionality in git_mmap()/git_munmap() functions.

As git functions currently use mmap with MAP_PRIVATE set only, this
implementation supports only that mode for now.

On Windows, offsets for memory mapped files need to match the allocation
granularity. Take this into account when calculating the packed git-
windowsize and file offsets. At the moment, the only function which makes
use of offsets in conjunction with mmap is use_pack() in sha1-file.c.

Git fast-import's code path tries to map a portion of the temporary
packfile that exceeds the current filesize, i.e. offset+length is
greater than the filesize. The NO_MMAP code worked with that since pread()
just reads the file content until EOF and returns gracefully, while
MapViewOfFile() aborts the mapping and returns 'Access Denied'.
Working around that by determining the filesize and adjusting the length
parameter.

Signed-off-by: Janos Laube <janos.dev@gmail.com>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gc --aggressive: make it really aggressiveJohannes Schindelin Thu, 6 Dec 2007 12:03:38 +0000 (12:03 +0000)

gc --aggressive: make it really aggressive

The default was not to change the window or depth at all. As suggested
by Jon Smirl, Linus Torvalds and others, default to

--window=250 --depth=250

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git log: avoid segfault with --all-matchMichele Ballabio Wed, 18 Mar 2009 20:53:27 +0000 (21:53 +0100)

git log: avoid segfault with --all-match

Avoid a segfault when the command

git log --all-match

was issued, by ignoring the option.

Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

apply: hide unused options from short helpMichele Ballabio Wed, 18 Mar 2009 18:05:40 +0000 (19:05 +0100)

apply: hide unused options from short help

The options "--binary" and "--allow-binary-replacement" of
git-apply are no-op and maintained for backward compatibility,
so avoid to show them in the short help screen.

Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

apply: consistent spelling of "don't"Michele Ballabio Wed, 18 Mar 2009 18:05:39 +0000 (19:05 +0100)

apply: consistent spelling of "don't"

Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

format-patch: Respect --quiet optionNate Case Wed, 18 Mar 2009 17:00:45 +0000 (12:00 -0500)

format-patch: Respect --quiet option

Hide the patch filename output from 'git format-patch' when --quiet
is used. The man pages suggested that this should have already worked.

Signed-off-by: Nate Case <ncase@xes-inc.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9400, t9401: Do not force hard-linked cloneJohannes Sixt Fri, 6 Mar 2009 23:04:09 +0000 (00:04 +0100)

t9400, t9401: Do not force hard-linked clone

The tests do not depend on that the clones are hard-linked, but used
--local only as an optimization: At the time that --local was used first
in t9400 hard-linked clones were not the default, yet.

By removing --local, we help filesystems that do not support hard-links.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>

Update draft release notes to 1.6.3Junio C Hamano Wed, 18 Mar 2009 03:26:24 +0000 (20:26 -0700)

Update draft release notes to 1.6.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jc/maint-1.6.0-read-tree-overlay'Junio C Hamano Wed, 18 Mar 2009 01:58:55 +0000 (18:58 -0700)

Merge branch 'jc/maint-1.6.0-read-tree-overlay'

* jc/maint-1.6.0-read-tree-overlay:
read-tree A B C: do not create a bogus index and do not segfault

Merge branch 'db/maint-missing-origin'Junio C Hamano Wed, 18 Mar 2009 01:58:41 +0000 (18:58 -0700)

Merge branch 'db/maint-missing-origin'

* db/maint-missing-origin:
Remove total confusion from git-fetch and git-push
Give error when no remote is configured

Merge branch 'js/sideband-stderr'Junio C Hamano Wed, 18 Mar 2009 01:58:25 +0000 (18:58 -0700)

Merge branch 'js/sideband-stderr'

* js/sideband-stderr:
winansi: support ESC [ K (erase in line)
recv_sideband: Bands #2 and #3 always go to stderr

Merge branch 'js/rsync-local'Junio C Hamano Wed, 18 Mar 2009 01:58:13 +0000 (18:58 -0700)

Merge branch 'js/rsync-local'

* js/rsync-local:
rsync transport: allow local paths, and fix tests