Code

git.git
15 years agobuiltin-show-ref: use warning() instead of fprintf(stderr, "warning: ")
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>
15 years agobuiltin-show-branch: use warning() instead of fprintf(stderr, "warning: ")
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>
15 years agobuiltin-rm: use warning() instead of fprintf(stderr, "warning: ")
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>
15 years agobuiltin-init-db: use warning() instead of fprintf(stderr, "warning: ")
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>
15 years agobuiltin-fetch-pack: use warning() instead of fprintf(stderr, "warning: ")
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>
15 years agobuiltin-checkout: use warning() instead of fprintf(stderr, "warning: ")
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>
15 years agobuiltin-apply: use warning() instead of fprintf(stderr, "warning: ")
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>
15 years agohttp-push: using error() and warning() as appropriate
Miklos 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>
15 years agoMakefile: turn on USE_ST_TIMESPEC for FreeBSD
Jeff 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>
15 years agobash 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>
15 years agoAdd --staged to bash completion for git diff
Kevin 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>
15 years agoImprove error message about fetch into current branch
Alex 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>
15 years agoMerge 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

15 years agoMerge branch 'maint-1.6.1' into maint
Junio 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

15 years agoMerge branch 'maint-1.6.0' into maint-1.6.1
Junio 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

15 years agoeveryday: use the dashless form of git-init
David 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>
15 years agoMerge 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.

15 years agoMerge 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.

15 years agoSync with maint
Junio 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>
15 years agoUpdate draft release notes to 1.6.2.2
Junio 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>
15 years agols-files: require worktree when --deleted is given
Jeff 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>
15 years agopickaxe: count regex matches only once
René 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>
15 years agoMerge branch 'maint-1.6.1' into maint
Junio 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:

15 years agoMerge branch 'tr/maint-1.6.0-send-email-irt' into maint
Junio 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

15 years agoMerge branch 'mg/maint-submodule-normalize-path' into maint
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

15 years agoMerge branch 'rs/memmem' into maint
Junio 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()

15 years agoMerge branch 'js/rsync-local' into maint
Junio 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

15 years agoMerge branch 'db/maint-missing-origin' into maint
Junio 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

15 years agoMerge branch 'jc/maint-1.6.0-read-tree-overlay' into maint
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

15 years agoMerge branch 'js/maint-1.6.0-path-normalize' into maint-1.6.1
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

15 years agoMerge branch 'jc/maint-1.6.0-pack-directory' into maint-1.6.1
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

15 years agoformat-patch: --numbered-files and --stdout aren't mutually exclusive
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>
15 years agohttp tests: Darwin is not that special
Junio 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>
15 years agoMerge 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

15 years agoMerge 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

15 years agoMerge 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

15 years agoMerge 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

15 years agoMerge 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

15 years agoMerge 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

15 years agoMerge 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

15 years agoMicrooptimize strbuf_cmp
Alex 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>
15 years agoProduce a nicer output in case of sha1_object_info failures in ls-tree -l
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>
15 years agoDocumentation: 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>
15 years agoimport-tars: separate author from committer
Giuseppe 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>
15 years agoMerge 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

15 years agot5602: Work around path mangling on MSYS
Johannes 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>
15 years agot5300, t5302, t5303: Do not use /dev/zero
Johannes 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>
15 years agot2200, t7004: Avoid glob pattern that also matches files
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>
15 years agot7300: fix clean up on Windows
Johannes 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>
15 years agotest-lib: Introduce test_chmod and use it instead of update-index --chmod
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>
15 years agotest-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>
15 years agotest-lib: Replace uses of $(expr ...) by POSIX shell features.
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>
15 years agoCall 'say' outside test_expect_success
Johannes 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>
15 years agotest suite: Use 'say' to say something instead of 'test_expect_success'
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>
15 years agodoc: clarify how -S works
Jeff 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>
15 years agoDocumentation: reworded the "Description" section of git-bisect.txt.
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>
15 years agorebase: add options passed to git-am
Michele 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>
15 years agodocument --force-rebase
Michele 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>
15 years agoMinGW: implement mmap
Janos 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>
15 years agogc --aggressive: make it really aggressive
Johannes 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>
15 years agogit log: avoid segfault with --all-match
Michele 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>
15 years agoapply: hide unused options from short help
Michele 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>
15 years agoapply: 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>
15 years agoformat-patch: Respect --quiet option
Nate 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>
15 years agot9400, t9401: Do not force hard-linked clone
Johannes 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>
15 years agoUpdate draft release notes to 1.6.3
Junio 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>
15 years agoMerge 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

15 years agoMerge 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

15 years agoMerge 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

15 years agoMerge 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

15 years agoMerge branch 'rs/color-grep'
Junio C Hamano [Wed, 18 Mar 2009 01:58:02 +0000 (18:58 -0700)]
Merge branch 'rs/color-grep'

* rs/color-grep:
  grep: prefer builtin over external one when coloring results
  grep: cast printf %.*s "precision" argument explicitly to int
  grep: add support for coloring with external greps
  grep: color patterns in output
  grep: add pmatch and eflags arguments to match_one_pattern()
  grep: remove grep_opt argument from match_expr_eval()
  grep: micro-optimize hit collection for AND nodes

15 years agoMerge branch 'js/remote-improvements'
Junio C Hamano [Wed, 18 Mar 2009 01:55:06 +0000 (18:55 -0700)]
Merge branch 'js/remote-improvements'

* js/remote-improvements: (23 commits)
  builtin-remote.c: no "commented out" code, please
  builtin-remote: new show output style for push refspecs
  builtin-remote: new show output style
  remote: make guess_remote_head() use exact HEAD lookup if it is available
  builtin-remote: add set-head subcommand
  builtin-remote: teach show to display remote HEAD
  builtin-remote: fix two inconsistencies in the output of "show <remote>"
  builtin-remote: make get_remote_ref_states() always populate states.tracked
  builtin-remote: rename variables and eliminate redundant function call
  builtin-remote: remove unused code in get_ref_states
  builtin-remote: refactor duplicated cleanup code
  string-list: new for_each_string_list() function
  remote: make match_refs() not short-circuit
  remote: make match_refs() copy src ref before assigning to peer_ref
  remote: let guess_remote_head() optionally return all matches
  remote: make copy_ref() perform a deep copy
  remote: simplify guess_remote_head()
  move locate_head() to remote.c
  move duplicated ref_newer() to remote.c
  move duplicated get_local_heads() to remote.c
  ...

Conflicts:
builtin-clone.c

15 years agoMerge branch 'tr/maint-1.6.0-send-email-irt'
Junio C Hamano [Wed, 18 Mar 2009 01:54:46 +0000 (18:54 -0700)]
Merge branch 'tr/maint-1.6.0-send-email-irt'

* 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

15 years agoMerge branch 'kb/checkout-optim'
Junio C Hamano [Wed, 18 Mar 2009 01:54:31 +0000 (18:54 -0700)]
Merge branch 'kb/checkout-optim'

* kb/checkout-optim:
  Revert "lstat_cache(): print a warning if doing ping-pong between cache types"
  checkout bugfix: use stat.mtime instead of stat.ctime in two places
  Makefile: Set compiler switch for USE_NSEC
  Create USE_ST_TIMESPEC and turn it on for Darwin
  Not all systems use st_[cm]tim field for ns resolution file timestamp
  Record ns-timestamps if possible, but do not use it without USE_NSEC
  write_index(): update index_state->timestamp after flushing to disk
  verify_uptodate(): add ce_uptodate(ce) test
  make USE_NSEC work as expected
  fix compile error when USE_NSEC is defined
  check_updates(): effective removal of cache entries marked CE_REMOVE
  lstat_cache(): print a warning if doing ping-pong between cache types
  show_patch_diff(): remove a call to fstat()
  write_entry(): use fstat() instead of lstat() when file is open
  write_entry(): cleanup of some duplicated code
  create_directories(): remove some memcpy() and strchr() calls
  unlink_entry(): introduce schedule_dir_for_removal()
  lstat_cache(): swap func(length, string) into func(string, length)
  lstat_cache(): generalise longest_match_lstat_cache()
  lstat_cache(): small cleanup and optimisation

15 years agogrep: prefer builtin over external one when coloring results
Nguyễn Thái Ngọc Duy [Mon, 16 Mar 2009 02:20:04 +0000 (13:20 +1100)]
grep: prefer builtin over external one when coloring results

As far as I know, not all grep programs support coloring, so we should
rely on builtin grep. If you want external grep, set
color.grep.external to empty string.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoconfig.txt: Describe special 'none' handling in core.gitProxy.
Emil Sit [Tue, 17 Mar 2009 17:31:42 +0000 (13:31 -0400)]
config.txt: Describe special 'none' handling in core.gitProxy.

Signed-off-by: Emil Sit <sit@emilsit.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agols-files: require worktree when --deleted is given
Jeff 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>
15 years agogit-branch.txt: document -f correctly
Michael J Gruber [Tue, 17 Mar 2009 14:06:20 +0000 (15:06 +0100)]
git-branch.txt: document -f correctly

'git branch -f a b' resets a to b when a exists, rather then deleting a.
Say so in the documentation.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agopickaxe: count regex matches only once
René 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>
15 years agogit-send-email.txt: describe --compose better
Stephen Boyd [Mon, 16 Mar 2009 07:44:57 +0000 (00:44 -0700)]
git-send-email.txt: describe --compose better

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoTests: use test_cmp instead of diff where possible
Miklos Vajna [Mon, 16 Mar 2009 20:18:42 +0000 (21:18 +0100)]
Tests: use test_cmp instead of diff where possible

Several old tests were written before test_cmp was introduced, convert
these to test_cmp.

If were are at it, fix the order of the arguments where necessary to
make expected come first, so the command shows how the test result
deviates from the correct output.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: remove extra quoting/emphasis around literal texts
Chris Johnsen [Sun, 15 Mar 2009 11:30:52 +0000 (06:30 -0500)]
Documentation: remove extra quoting/emphasis around literal texts

If literal text (asciidoc `...`) can be rendered in a differently from
normal text for each output format (man, HTML), then we do not need
extra quotes or other wrapping around inline literal text segments.

config.txt

  Change '`...`' to `...`. In asciidoc, the single quotes provide
  emphasis, literal text should be distintive enough.

  Change "`...`" to `...`. These double quotes do not work if present
  in the described config value, so drop them.

git-checkout.txt

  Change "`...`" to `...` or `"..."`. All instances are command line
  argument examples. One "`-`" becomes `-`. Two others are involve
  curly braces, so move the double quotes inside the literal region to
  indicate that they might need to be quoted on the command line of
  certain shells (tcsh).

git-merge.txt

  Change "`...`" to `...`. All instances are used to describe merge
  conflict markers. The quotes should are not important.

git-rev-parse.txt

  Change "`...`" to `...`. All instances are around command line
  arguments where no in-shell quoting should be necessary.

gitcli.txt

  Change `"..."` to `...`. All instances are around command line
  examples or single command arguments. They do not semanticly belong
  inside the literal text, and they are not needed outside it.

glossary-content.txt
user-manual.txt

  Change "`...`" to `...`. All instances were around command lines.

Signed-off-by: Chris Johnsen <chris_johnsen@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agogit-push.txt: describe how to default to pushing only current branch
Chris Johnsen [Sun, 15 Mar 2009 02:32:01 +0000 (21:32 -0500)]
git-push.txt: describe how to default to pushing only current branch

Signed-off-by: Chris Johnsen <chris_johnsen@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agodisable post-checkout test on Cygwin
Alex Riesen [Tue, 17 Mar 2009 16:22:53 +0000 (17:22 +0100)]
disable post-checkout test on Cygwin

It is broken because of the tricks we have to play with
lstat to get the bearable perfomance out of the call.
Sadly, it disables access to Cygwin's executable attribute,
which Windows filesystems do not have at all.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoRevert "lstat_cache(): print a warning if doing ping-pong between cache types"
Kjetil Barvik [Tue, 17 Mar 2009 18:20:29 +0000 (19:20 +0100)]
Revert "lstat_cache(): print a warning if doing ping-pong between cache types"

This reverts commit 7734f04873cfaddd0b148074a633f1f824fd961f.

I guess that the reverted commit, 7734f048, has been in test long
enough, and should now be reverted.  I have not received any info
regarding any debug output of the reverted commit, so lets hope that
the lstat_cache() function do not cause any ping-pong.

Signed-off-by: Kjetil Barvik <barvik@broadpark.no>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: minor grammatical fixes in git-branch.txt.
David J. Mellor [Tue, 17 Mar 2009 06:16:17 +0000 (23:16 -0700)]
Documentation: minor grammatical fixes in git-branch.txt.

Signed-off-by: David J. Mellor <dmellor@whistlingcat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: minor grammatical fixes in git-blame.txt.
David J. Mellor [Tue, 17 Mar 2009 06:16:16 +0000 (23:16 -0700)]
Documentation: minor grammatical fixes in git-blame.txt.

Signed-off-by: David J. Mellor <dmellor@whistlingcat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: reword the "Description" section of git-bisect.txt.
David J. Mellor [Tue, 17 Mar 2009 06:16:15 +0000 (23:16 -0700)]
Documentation: reword the "Description" section of git-bisect.txt.

Reword this section to make it less chatty. Also make minor grammatical
fixes.

Signed-off-by: David J. Mellor <dmellor@whistlingcat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoconfig: test for --replace-all with one argument and fix documentation.
Carlos Rica [Tue, 17 Mar 2009 09:46:37 +0000 (10:46 +0100)]
config: test for --replace-all with one argument and fix documentation.

Option --replace-all only allows at least two arguments, so
documentation was needing to be updated accordingly. A test showing
that the command fails with only one parameter is also provided.

Signed-off-by: Carlos Rica <jasampler@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMinGW: a hardlink implementation
Petr Kodl [Sat, 24 Jan 2009 14:04:39 +0000 (15:04 +0100)]
MinGW: a hardlink implementation

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoMinGW: a helper function that translates Win32 API error codes
Petr Kodl [Sat, 24 Jan 2009 14:04:39 +0000 (15:04 +0100)]
MinGW: a helper function that translates Win32 API error codes

This function translates many possible Win32 error codes to suitable
errno numbers.  We will use it in our wrapper functions that need to call
into Win32.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoDocumentation: minor grammatical fixes in git-archive.txt.
David J. Mellor [Tue, 17 Mar 2009 06:16:14 +0000 (23:16 -0700)]
Documentation: minor grammatical fixes in git-archive.txt.

Signed-off-by: David J. Mellor <dmellor@whistlingcat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agotest-lib.sh: Allow running the test suite against installed git
Michael J Gruber [Mon, 16 Mar 2009 17:03:12 +0000 (18:03 +0100)]
test-lib.sh: Allow running the test suite against installed git

Introduce variables GIT_TEST_INSTALLED and GIT_TEST_EXEC_PATH such that
the test suite can be run against a git which is installed at
GIT_TEST_INSTALLED with subcommands at GIT_TEST_EXEC_PATH.

GIT_TEST_INSTALLED defaults to the git.git checkout, GIT_TEST_EXEC_PATH
defaults to the output of '$GIT_TEST_INSTALLED/git --exec-path'.

Run the suite e.g. as

    GIT_TEST_INSTALLED=/some/path make test

but note that this requires and uses parts of a compiled git in the
git.git checkout: test helpers, templates and perl libraries are taken
from there.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agotest-lib.sh: Test for presence of git-init in the right path.
Michael J Gruber [Mon, 16 Mar 2009 17:03:11 +0000 (18:03 +0100)]
test-lib.sh: Test for presence of git-init in the right path.

It just happens so that when GIT_EXEC_PATH points to a compiled checkout
of git.git it contains "git". Since this is not true in general make
test-lib check for "git-init" which is always in GIT_EXEC_PATH.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoRemove total confusion from git-fetch and git-push
Junio C Hamano [Mon, 16 Mar 2009 07:35:09 +0000 (00:35 -0700)]
Remove total confusion from git-fetch and git-push

The config file is not the only place remotes are defined, and without
consulting .git/remotes and .git/branches, you won't know if "origin" is
configured by the user.  Don't give up too early and insult the user with
a wisecrack "Where do you want to fetch from today?"

The only thing the previous patch seems to want to prevent from happening
is a lazy "git fetch/push" that does not say where-from/to to produce an
error message 'origin not found', and we can do that by not letting
add_url_alias() to turn a nickname "origin" literally into a pathname
"origin" without changing the rest of the logic.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoFix various dead stores found by the clang static analyzer
Benjamin Kramer [Sun, 15 Mar 2009 21:01:20 +0000 (22:01 +0100)]
Fix various dead stores found by the clang static analyzer

http-push.c::finish_request():
  request is initialized by the for loop

index-pack.c::free_base_data():
  b is initialized by the for loop

merge-recursive.c::process_renames():
  move compare to narrower scope, and remove unused assignments to it
  remove unused variable renames2

xdiff/xdiffi.c::xdl_recs_cmp():
  remove unused variable ec

xdiff/xemit.c::xdl_emit_diff():
  xche is always overwritten

Signed-off-by: Benjamin Kramer <benny.kra@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agoSync with GIT 1.6.2.1
Junio C Hamano [Sun, 15 Mar 2009 20:10:10 +0000 (13:10 -0700)]
Sync with GIT 1.6.2.1

15 years agoGIT 1.6.2.1 v1.6.2.1
Junio C Hamano [Sun, 15 Mar 2009 20:03:19 +0000 (13:03 -0700)]
GIT 1.6.2.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agocheckout bugfix: use stat.mtime instead of stat.ctime in two places
Kjetil Barvik [Sun, 15 Mar 2009 11:38:55 +0000 (12:38 +0100)]
checkout bugfix: use stat.mtime instead of stat.ctime in two places

Commit e1afca4fd "write_index(): update index_state->timestamp after
flushing to disk" on 2009-02-23 used stat.ctime to record the
timestamp of the index-file.  This is wrong, so fix this and use the
correct stat.mtime timestamp instead.

Commit 110c46a909 "Not all systems use st_[cm]tim field for ns
resolution file timestamp" on 2009-03-08, has a similar bug for the
builtin-fetch-pack.c file.

Signed-off-by: Kjetil Barvik <barvik@broadpark.no>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
15 years agotest-lib: write test results to test-results/<basename>-<pid>
Johannes Schindelin [Fri, 13 Mar 2009 16:26:36 +0000 (17:26 +0100)]
test-lib: write test results to test-results/<basename>-<pid>

The earlier code meant to attempt to strip everything except the test
number, but only stripped the part starting with the last dash.

However, there is no reason why we should not use the whole basename.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>