gitweb.git
config: test for --replace-all with one argument and... 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>

MinGW: a hardlink implementationPetr 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>

MinGW: a helper function that translates Win32 API... 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>

Documentation: minor grammatical fixes in git-archive... 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>

test-lib.sh: Allow running the test suite against insta... 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>

test-lib.sh: Test for presence of git-init in the right... 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>

Remove total confusion from git-fetch and git-pushJunio 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>

Fix various dead stores found by the clang static analyzerBenjamin 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>

Sync with GIT 1.6.2.1Junio C Hamano Sun, 15 Mar 2009 20:10:10 +0000 (13:10 -0700)

Sync with GIT 1.6.2.1

GIT 1.6.2.1 v1.6.2.1Junio 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>

checkout bugfix: use stat.mtime instead of stat.ctime... 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>

test-lib: write test results to test-results/<basename... 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>

Remove unused assignmentsBenjamin Kramer Fri, 13 Mar 2009 12:51:33 +0000 (13:51 +0100)

Remove unused assignments

These variables were always overwritten or the assigned
value was unused:

builtin-diff-tree.c::cmd_diff_tree(): nr_sha1
builtin-for-each-ref.c::opt_parse_sort(): sort_tail
builtin-mailinfo.c::decode_header_bq(): in
builtin-shortlog.c::insert_one_record(): len
connect.c::git_connect(): path
imap-send.c::v_issue_imap_cmd(): n
pretty.c::pp_user_info(): filler
remote::parse_refspec_internal(): llen

Signed-off-by: Benjamin Kramer <benny.kra@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-suite: Make test script numbers uniqueJohannes Sixt Fri, 13 Mar 2009 12:23:26 +0000 (13:23 +0100)

test-suite: Make test script numbers unique

In order to selectively skip tests, the environment variable GIT_SKIP_TESTS
can be set like this:

$ GIT_SKIP_TESTS='t1301 t4150.18' make test

That is, its value can contain only the test script numbers, but not the
full script name. Therefore, it is important that the test scripts are
uniquely numbered. This makes it so.

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

Read attributes from the index that is being checked outJunio C Hamano Sat, 14 Mar 2009 04:24:08 +0000 (21:24 -0700)

Read attributes from the index that is being checked out

Traditionally we used .gitattributes file from the work tree if exists,
and otherwise read from the index as a fallback. When switching to a
branch that has an updated .gitattributes file, and entries in it give
different attributes to other paths being checked out, we should instead
read from the .gitattributes in the index.

This breaks a use case of fixing incorrect entries in the .gitattributes
in the work tree (without adding it to the index) and checking other paths
out, though.

$ edit .gitattributes ;# mark foo.dat as binary
$ rm foo.dat
$ git checkout foo.dat

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

Merge branch 'maint'Junio C Hamano Fri, 13 Mar 2009 06:39:28 +0000 (23:39 -0700)

Merge branch 'maint'

* maint:

Merge branch 'maint-1.6.1' into maintJunio C Hamano Fri, 13 Mar 2009 06:37:16 +0000 (23:37 -0700)

Merge branch 'maint-1.6.1' into maint

* maint-1.6.1:

Merge branch 'maint-1.6.0' into maint-1.6.1Junio C Hamano Fri, 13 Mar 2009 06:36:57 +0000 (23:36 -0700)

Merge branch 'maint-1.6.0' into maint-1.6.1

* maint-1.6.0:
bisect: fix another instance of eval'ed string
bisect: fix quoting TRIED revs when "bad" commit is also "skip"ped
Support "\" in non-wildcard exclusion entries

Conflicts:
git-bisect.sh

configure: rework pthread handling to allow for user... Ben Walton Thu, 12 Mar 2009 19:20:12 +0000 (15:20 -0400)

configure: rework pthread handling to allow for user defined flags

The tests for POSIX threads can now be controlled by the user with the
--enable-pthreads=FLAGS option. If this is set (to some value other
than yes or no), the value is passed to the compiler. Thread support
is based solely on the outcome of this test. The user may specify not
to use threading at all or to use the default tests (first -pthread
then -lpthread) by not specifying FLAGS when passing --enable-pthreads.

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

configure: make iconv tests aware of user argumentsBen Walton Thu, 12 Mar 2009 19:20:11 +0000 (15:20 -0400)

configure: make iconv tests aware of user arguments

--with-iconv is now taken into account when doing the tests for iconv.
If the user requests alternate handling for libiconv, the -liconv test
is run before the -lc test.

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

configure: asciidoc version test cleanupBen Walton Thu, 12 Mar 2009 19:20:10 +0000 (15:20 -0400)

configure: asciidoc version test cleanup

Redirect stderr to /dev/null instead of stdout. This discards warnings
generated by python 2.6 related to the reorganization of functions within
modules. The warnings were causing the version detection to break.

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

configure: wrap some library tests with GIT_STASH_FLAGSBen Walton Thu, 12 Mar 2009 19:20:09 +0000 (15:20 -0400)

configure: wrap some library tests with GIT_STASH_FLAGS

Libraries that can have user specificed base paths are wrapped with
GIT_STASH_FLAGS/GIT_UNSTASH_FLAGS to ensure that the proper versions
on the system are tested. This ensures, for example, that the zlib
tests for deflateUnbound are done with the version of zlib requested
by the user. This is most useful in the absence of good settings for
CPPFLAGS and/or LDFLAGS.

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

configure: add macros to stash FLAG variablesBen Walton Thu, 12 Mar 2009 19:20:08 +0000 (15:20 -0400)

configure: add macros to stash FLAG variables

Allow for quick stash/unstash of CPPFLAGS and LDFLAGS. Library tests
can now be easily bracketted with these macros to allow for values
set in user/site arguments.

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

configure: reorganize flow of argument checksBen Walton Thu, 12 Mar 2009 19:20:07 +0000 (15:20 -0400)

configure: reorganize flow of argument checks

Move the argument tests from the 'site overrides' so that they are
ahead of any library tests. This allows for library tests to take
user specified paths into account. The intent here is to avoid things
like NO_DEFLATE_BOUND being set due to finding old zlib when the user
has specified an alternate location for zlib. (Ignore the fact that
properly set *FLAGS can avoid solve this issue.)

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

configure: ensure settings from user are also usable... Ben Walton Thu, 12 Mar 2009 19:20:06 +0000 (15:20 -0400)

configure: ensure settings from user are also usable in the script

Allow things set by the user (--with-lib, --with-iconv, etc) to set
variables for use by other parts of the script. Display values as
they're set.

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'en/maint-1.6.1-hash-object' into maint... Junio C Hamano Fri, 13 Mar 2009 06:11:23 +0000 (23:11 -0700)

Merge branch 'en/maint-1.6.1-hash-object' into maint-1.6.1

* en/maint-1.6.1-hash-object:
Ensure proper setup of git_dir for git-hash-object

http.c: CURLOPT_NETRC_OPTIONAL is not available in... Junio C Hamano Fri, 13 Mar 2009 05:34:43 +0000 (22:34 -0700)

http.c: CURLOPT_NETRC_OPTIONAL is not available in ancient versions of cURL

Besides, we have already called easy_setopt with the option before coming
to this function if it was available, so there is no need to repeat it
here.

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

Merge branch 'ks/maint-1.6.0-mailinfo-folded' into... Junio C Hamano Fri, 13 Mar 2009 04:48:43 +0000 (21:48 -0700)

Merge branch 'ks/maint-1.6.0-mailinfo-folded' into maint-1.6.0

* ks/maint-1.6.0-mailinfo-folded:
mailinfo: tests for RFC2047 examples
mailinfo: add explicit test for mails like '<a.u.thor@example.com> (A U Thor)'
mailinfo: 'From:' header should be unfold as well
mailinfo: correctly handle multiline 'Subject:' header

Merge branch 'cc/maint-1.6.0-bisect-fix' into maint... Junio C Hamano Fri, 13 Mar 2009 04:48:26 +0000 (21:48 -0700)

Merge branch 'cc/maint-1.6.0-bisect-fix' into maint-1.6.0

* cc/maint-1.6.0-bisect-fix:
bisect: fix another instance of eval'ed string
bisect: fix quoting TRIED revs when "bad" commit is also "skip"ped

Merge branch 'fg/maint-1.6.0-exclude-bq' into maint... Junio C Hamano Fri, 13 Mar 2009 04:48:07 +0000 (21:48 -0700)

Merge branch 'fg/maint-1.6.0-exclude-bq' into maint-1.6.0

* fg/maint-1.6.0-exclude-bq:
Support "\" in non-wildcard exclusion entries

Merge branch 'js/maint-1.6.1-filter-branch-submodule... Junio C Hamano Fri, 13 Mar 2009 04:46:50 +0000 (21:46 -0700)

Merge branch 'js/maint-1.6.1-filter-branch-submodule' into maint-1.6.1

* js/maint-1.6.1-filter-branch-submodule:
filter-branch: do not consider diverging submodules a 'dirty worktree'

Merge branch 'gt/maint-1.6.1-utf8-width' into maint... Junio C Hamano Fri, 13 Mar 2009 04:46:35 +0000 (21:46 -0700)

Merge branch 'gt/maint-1.6.1-utf8-width' into maint-1.6.1

* gt/maint-1.6.1-utf8-width:
builtin-blame.c: Use utf8_strwidth for author's names
utf8: add utf8_strwidth()

Merge branch 'js/maint-1.6.1-remote-remove-mirror'... Junio C Hamano Fri, 13 Mar 2009 04:45:56 +0000 (21:45 -0700)

Merge branch 'js/maint-1.6.1-remote-remove-mirror' into maint-1.6.1

* js/maint-1.6.1-remote-remove-mirror:
builtin-remote: make rm operation safer in mirrored repository
builtin-remote: make rm() use properly named variable to hold return value

Merge branch 'ek/maint-1.6.1-filter-branch-bare' into... Junio C Hamano Fri, 13 Mar 2009 04:45:21 +0000 (21:45 -0700)

Merge branch 'ek/maint-1.6.1-filter-branch-bare' into maint-1.6.1

* ek/maint-1.6.1-filter-branch-bare:
filter-branch: Fix fatal error on bare repositories

Merge branch 'jc/maint-1.6.1-add-u-remove-conflicted... Junio C Hamano Fri, 13 Mar 2009 04:45:14 +0000 (21:45 -0700)

Merge branch 'jc/maint-1.6.1-add-u-remove-conflicted' into maint-1.6.1

* jc/maint-1.6.1-add-u-remove-conflicted:
add -u: do not fail to resolve a path as deleted

Merge branch 'js/maint-1.6.1-rebase-i-submodule' into... Junio C Hamano Fri, 13 Mar 2009 04:45:02 +0000 (21:45 -0700)

Merge branch 'js/maint-1.6.1-rebase-i-submodule' into maint-1.6.1

* js/maint-1.6.1-rebase-i-submodule:
Fix submodule squashing into unrelated commit
rebase -i squashes submodule changes into unrelated commit

Merge branch 'jc/maint-1.6.1-allow-uninteresting-missin... Junio C Hamano Fri, 13 Mar 2009 04:44:48 +0000 (21:44 -0700)

Merge branch 'jc/maint-1.6.1-allow-uninteresting-missing' into maint-1.6.1

* jc/maint-1.6.1-allow-uninteresting-missing:
revision traversal: allow UNINTERESTING objects to be missing

Merge branch 'ks/maint-1.6.0-mailinfo-folded' into... Junio C Hamano Fri, 13 Mar 2009 04:44:00 +0000 (21:44 -0700)

Merge branch 'ks/maint-1.6.0-mailinfo-folded' into maint-1.6.1

* ks/maint-1.6.0-mailinfo-folded:
mailinfo: tests for RFC2047 examples
mailinfo: add explicit test for mails like '<a.u.thor@example.com> (A U Thor)'
mailinfo: 'From:' header should be unfold as well
mailinfo: correctly handle multiline 'Subject:' header

Merge branch 'jk/maint-1.6.1-cleanup-after-exec-failure... Junio C Hamano Fri, 13 Mar 2009 04:43:38 +0000 (21:43 -0700)

Merge branch 'jk/maint-1.6.1-cleanup-after-exec-failure' into maint-1.6.1

* jk/maint-1.6.1-cleanup-after-exec-failure:
git: use run_command() to execute dashed externals
run_command(): help callers distinguish errors
run_command(): handle missing command errors more gracefully
git: s/run_command/run_builtin/

Merge branch 'jc/maint-1.6.0-split-diff-metainfo' into... Junio C Hamano Fri, 13 Mar 2009 03:01:28 +0000 (20:01 -0700)

Merge branch 'jc/maint-1.6.0-split-diff-metainfo' into maint-1.6.0

* jc/maint-1.6.0-split-diff-metainfo:
diff.c: output correct index lines for a split diff

read-tree A B C: do not create a bogus index and do... Junio C Hamano Thu, 12 Mar 2009 07:02:12 +0000 (00:02 -0700)

read-tree A B C: do not create a bogus index and do not segfault

"git read-tree A B C..." without the "-m" (merge) option is a way to read
these trees on top of each other to get an overlay of them.

An ancient commit ee6566e (Rewrite read-tree, 2005-09-05) passed the
ADD_CACHE_SKIP_DFCHECK flag when calling add_index_entry() to add the
paths obtained from these trees to the index, but it is an incorrect use
of the flag. The flag is meant to be used by callers who know the
addition of the entry does not introduce a D/F conflict to the index in
order to avoid the overhead of checking.

This bug resulted in a bogus index that records both "x" and "x/z" as a
blob after reading three trees that have paths ("x"), ("x", "y"), and
("x/z", "y") respectively. 34110cd (Make 'unpack_trees()' have a separate
source and destination index, 2008-03-06) refactored the callsites of
add_index_entry() incorrectly and added more codepaths that use this flag
when it shouldn't be used.

Also, 0190457 (Move 'unpack_trees()' over to 'traverse_trees()' interface,
2008-03-05) introduced a bug to call add_index_entry() for the tree that
does not have the path in it, passing NULL as a cache entry. This caused
reading multiple trees, one of which has path "x" but another doesn't, to
segfault.

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

Documentation: filter-branch: show --ignore-unmatch... Thomas Rast Wed, 11 Mar 2009 23:00:56 +0000 (00:00 +0100)

Documentation: filter-branch: show --ignore-unmatch in main index-filter example

Rearrange the example usage of

git filter-branch --index-filter 'git rm --cached ...'

so that --ignore-unmatch is in the main example block. People keep
stumbling over the (lack of this) option to the point where it is a
FAQ, so we would want to expose the most common usage where it stands
out.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/difftool: use a separate config namespace for... David Aguilar Mon, 9 Mar 2009 09:12:36 +0000 (02:12 -0700)

contrib/difftool: use a separate config namespace for difftool commands

Some users have different mergetool and difftool settings, so teach
difftool to read config vars from the difftool.* namespace. This allows
having distinct configurations for the diff and merge scenarios.

We don't want to force existing users to set new values for no reason
so difftool falls back to existing mergetool config variables when the
difftool equivalents are not defined.

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

Update release notes to 1.6.3Junio C Hamano Thu, 12 Mar 2009 04:47:02 +0000 (21:47 -0700)

Update release notes to 1.6.3

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

send-email: test --no-thread --in-reply-to combinationThomas Rast Wed, 11 Mar 2009 22:40:13 +0000 (23:40 +0100)

send-email: test --no-thread --in-reply-to combination

3e0c4ff (send-email: respect in-reply-to regardless of threading,
2009-03-01) fixed the handling of the In-Reply-To header when both
--no-thread and --in-reply-to are in effect. Add a test for it.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Wed, 11 Mar 2009 21:37:26 +0000 (14:37 -0700)

Merge branch 'maint'

* maint:
Update draft release notes for 1.6.2.1

Update draft release notes for 1.6.2.1Junio C Hamano Wed, 11 Mar 2009 21:37:15 +0000 (14:37 -0700)

Update draft release notes for 1.6.2.1

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

Merge branch 'js/maint-send-email' into maintJunio C Hamano Wed, 11 Mar 2009 21:01:24 +0000 (14:01 -0700)

Merge branch 'js/maint-send-email' into maint

* js/maint-send-email:
send-email: don't create temporary compose file until it is needed
send-email: --suppress-cc improvements
send-email: handle multiple Cc addresses when reading mbox message
send-email: allow send-email to run outside a repo

Merge branch 'jk/sane-relative-time' into maintJunio C Hamano Wed, 11 Mar 2009 20:59:38 +0000 (13:59 -0700)

Merge branch 'jk/sane-relative-time' into maint

* jk/sane-relative-time:
never fallback relative times to absolute

Merge branch 'jc/maint-add-p-unquote' into maintJunio C Hamano Wed, 11 Mar 2009 20:55:49 +0000 (13:55 -0700)

Merge branch 'jc/maint-add-p-unquote' into maint

* jc/maint-add-p-unquote:
git-add -i/-p: learn to unwrap C-quoted paths

Merge branch 'fg/maint-exclude-bq' into maintJunio C Hamano Wed, 11 Mar 2009 20:53:53 +0000 (13:53 -0700)

Merge branch 'fg/maint-exclude-bq' into maint

* fg/maint-exclude-bq:
Support "\" in non-wildcard exclusion entries

Merge branch 'en/maint-hash-object' into maintJunio C Hamano Wed, 11 Mar 2009 20:51:59 +0000 (13:51 -0700)

Merge branch 'en/maint-hash-object' into maint

* en/maint-hash-object:
Ensure proper setup of git_dir for git-hash-object

Conflicts:
hash-object.c

Merge branch 'mg/maint-submodule-normalize-path'Junio C Hamano Wed, 11 Mar 2009 20:50:29 +0000 (13:50 -0700)

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

* 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 'jc/maint-1.6.0-keep-pack'Junio C Hamano Wed, 11 Mar 2009 20:49:56 +0000 (13:49 -0700)

Merge branch 'jc/maint-1.6.0-keep-pack'

* jc/maint-1.6.0-keep-pack:
is_kept_pack(): final clean-up
Simplify is_kept_pack()
Consolidate ignore_packed logic more
has_sha1_kept_pack(): take "struct rev_info"
has_sha1_pack(): refactor "pretend these packs do not exist" interface
git-repack: resist stray environment variable

Merge branch 'rs/memmem'Junio C Hamano Wed, 11 Mar 2009 20:49:42 +0000 (13:49 -0700)

Merge branch 'rs/memmem'

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

Merge branch 'tv/rebase-stat'Junio C Hamano Wed, 11 Mar 2009 20:49:11 +0000 (13:49 -0700)

Merge branch 'tv/rebase-stat'

* tv/rebase-stat:
git-pull: Allow --stat and --no-stat to be used with --rebase
git-rebase: Add --stat and --no-stat for producing diffstat on rebase

Merge branch 'jk/clone-post-checkout'Junio C Hamano Wed, 11 Mar 2009 20:48:31 +0000 (13:48 -0700)

Merge branch 'jk/clone-post-checkout'

* jk/clone-post-checkout:
clone: run post-checkout hook when checking out

Merge branch 'tr/format-patch-thread'Junio C Hamano Wed, 11 Mar 2009 20:48:07 +0000 (13:48 -0700)

Merge branch 'tr/format-patch-thread'

* tr/format-patch-thread:
format-patch: support deep threading
format-patch: thread as reply to cover letter even with in-reply-to
format-patch: track several references
format-patch: threading test reactivation

Conflicts:
builtin-log.c

Merge branch 'el/blame-date'Junio C Hamano Wed, 11 Mar 2009 20:47:12 +0000 (13:47 -0700)

Merge branch 'el/blame-date'

* el/blame-date:
Make git blame's date output format configurable, like git log

Merge branch 'tr/gcov'Junio C Hamano Wed, 11 Mar 2009 20:47:01 +0000 (13:47 -0700)

Merge branch 'tr/gcov'

* tr/gcov:
Test git-patch-id
Test rev-list --parents/--children
Test log --decorate
Test fsck a bit harder
Test log --graph
Test diff --dirstat functionality
Test that diff can read from stdin
Support coverage testing with GCC/gcov

test: do not LoadModule log_config_module unconditionallyJohannes Schindelin Wed, 11 Mar 2009 11:47:06 +0000 (12:47 +0100)

test: do not LoadModule log_config_module unconditionally

LoadModule directive for log_config_module will not work if the module is
built-in.

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

winansi: support ESC [ K (erase in line)Johannes Schindelin Tue, 10 Mar 2009 21:58:09 +0000 (22:58 +0100)

winansi: support ESC [ K (erase in line)

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>

recv_sideband: Bands #2 and #3 always go to stderrJohannes Sixt Tue, 10 Mar 2009 21:54:17 +0000 (22:54 +0100)

recv_sideband: Bands #2 and #3 always go to stderr

This removes the last parameter of recv_sideband, by which the callers
told which channel bands #2 and #3 should be written to.

Sayeth Shawn Pearce:

The definition of the streams in the current sideband protocol
are rather well defined for the one protocol that uses it,
fetch-pack/receive-pack:

stream #1: pack data
stream #2: stderr messages, progress, meant for tty
stream #3: abort message, remote is dead, goodbye!

Since both callers of the function passed 2 for the parameter, we hereby
remove it and send bands #2 and #3 to stderr explicitly using fprintf.

This has the nice side-effect that these two streams pass through our
ANSI emulation layer on Windows.

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

rsync transport: allow local paths, and fix testsJohannes Schindelin Mon, 9 Mar 2009 18:44:55 +0000 (19:44 +0100)

rsync transport: allow local paths, and fix tests

Earlier, the rsync tests were disabled by default, as they needed a
running rsyncd daemon. This was only due to the limitation that our
rsync transport only allowed full URLs of the form

rsync://<host>/<path>

Relaxing the URLs to allow

rsync:<path>

permitted the change in the tests to run whenever rsync is available,
without requiring a fully configured and running rsyncd.

While at it, the tests were fixed so that they run in directories with a
space in their name.

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

git-instaweb: fix lighttpd configuration on cygwinRamsay Jones Mon, 9 Mar 2009 18:31:55 +0000 (18:31 +0000)

git-instaweb: fix lighttpd configuration on cygwin

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Tested-by: Pascal Obry <pascal@obry.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Give error when no remote is configuredDaniel Barkalow Wed, 11 Mar 2009 05:47:20 +0000 (01:47 -0400)

Give error when no remote is configured

When there's no explicitly-named remote, we use the remote specified
for the current branch, which in turn defaults to "origin". But it
this case should require the remote to actually be configured, and not
fall back to the path "origin".

Possibly, the config file's "remote = something" should require the
something to be a configured remote instead of a bare repository URL,
but we actually test with a bare repository URL.

In fetch, we were giving the sensible error message when coming up
with a URL failed, but this wasn't actually reachable, so move that
error up and use it when appropriate.

In push, we need a new error message, because the old one (formerly
unreachable without a lot of help) used the repo name, which was NULL.

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Include log_config module in apache.confDaniel Barkalow Wed, 11 Mar 2009 03:23:45 +0000 (23:23 -0400)

Include log_config module in apache.conf

The log_config module is needed for at least some versions of apache to
support the LogFormat directive.

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Typo and language fixes for git-checkout.txtMichael J Gruber Tue, 10 Mar 2009 15:06:30 +0000 (16:06 +0100)

Typo and language fixes for git-checkout.txt

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http authentication via promptsJunio C Hamano Tue, 10 Mar 2009 06:34:25 +0000 (23:34 -0700)

http authentication via prompts

Curl is designed not to ask for password when only username is given in
the URL, but has a way for application to feed a (username, password) pair
to it. With this patch, you do not have to keep your password in
plaintext in your $HOME/.netrc file when talking with a password protected
URL with http://<username>@<host>/path/to/repository.git/ syntax.

The code handles only the http-walker side, not the push side. At least,
not yet. But interested parties can add support for it.

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

http_init(): Fix config file parsingJunio C Hamano Tue, 10 Mar 2009 02:00:30 +0000 (19:00 -0700)

http_init(): Fix config file parsing

We honor the command line options, environment variables, variables in
repository configuration file, variables in user's global configuration
file, variables in the system configuration file, and then finally use
built-in default. To implement this semantics, the code should:

- start from built-in default values;

- call git_config() with the configuration parser callback, which
implements "later definition overrides earlier ones" logic
(git_config() reads the system's, user's and then repository's
configuration file in this order);

- override the result from the above with environment variables if set;

- override the result from the above with command line options.

The initialization code http_init() for http transfer got this wrong, and
implemented a "first one wins, ignoring the later ones" in http_options(),
to compensate this mistake, read environment variables before calling
git_config(). This is all wrong.

As a second class citizen, the http codepath hasn't been audited as
closely as other parts of the system, but we should try to bring sanity to
it, before inviting contributors to improve on it.

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

Improve "git branch --tracking" outputJunio C Hamano Tue, 10 Mar 2009 08:20:42 +0000 (01:20 -0700)

Improve "git branch --tracking" output

An earlier patch always spelled the full name of the ref that we track
(e.g. "refs/heads/frotz" instead of just "frotz" when we mean the branch
whose name is "frotz"). Worse yet, because we now use the true name of
the ref at the original repository when talk about a tracking branch that
copies from a remote, such a full name alone still does not give enough
information.

This reorganizes the verbose codepath to:

- differentiate "refs/heads/something" and everything else; we say that
the branch tracks "branch <something>" if it begins with "refs/heads/",
and otherwise the branch tracks "ref refs/<someother>/<something>";

- report the name of the remote when we talk about a tracking branch, by
saying "branch frotz from origin";

- not say "by merging" at the end; it is the default and is not worth
reporting.

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

connect.c: remove a few globals by using git_config... Erik Faye-Lund Wed, 11 Mar 2009 02:38:12 +0000 (02:38 +0000)

connect.c: remove a few globals by using git_config callback data

Since ef90d6d (Provide git_config with a callback-data parameter,
2008-05-14), git_config() takes a callback data pointer that can be
used to pass extra parameters to the parsing function. The codepath
to parse configuration variables related to git proxy predates this
facility and used a pair of file scope static variables instead.

This patch removes the need for these global variables by passing the
name of the host we are trying to access as the callback data.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http.c: style cleanupsJunio C Hamano Tue, 10 Mar 2009 01:47:29 +0000 (18:47 -0700)

http.c: style cleanups

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

Merge git://git.bogomips.org/git-svnJunio C Hamano Tue, 10 Mar 2009 01:38:18 +0000 (18:38 -0700)

Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
git-svn: support intermediate paths when matching tags/branches

Move push matching and reporting logic into transport.cDaniel Barkalow Mon, 9 Mar 2009 01:06:07 +0000 (21:06 -0400)

Move push matching and reporting logic into transport.c

For native-protocol pushes (and other protocols as they are converted
to the new method), this moves the refspec match, tracking update, and
report message out of send-pack() and into transport_push(), where it
can be shared completely with other protocols. This also makes fetch
and push more similar in terms of what code is in what file.

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Use a common function to get the pretty name of refsDaniel Barkalow Mon, 9 Mar 2009 01:06:05 +0000 (21:06 -0400)

Use a common function to get the pretty name of refs

The result should be consistent between fetch and push, so we ought to
use the same code in both cases, even though it's short.

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

parseopt: prevent KEEP_UNKNOWN and STOP_AT_NON_OPTION... René Scharfe Mon, 9 Mar 2009 20:57:38 +0000 (21:57 +0100)

parseopt: prevent KEEP_UNKNOWN and STOP_AT_NON_OPTION from being used together

As suggested by Junio, disallow the flags PARSE_OPT_KEEP_UNKNOWN and
PARSE_OPT_STOP_AT_NON_OPTION to be turned on at the same time, as a
value of an unknown option could be mistakenly classified as a
non-option, stopping the parser early. E.g.:

git cmd --known --unknown value arg0 arg1

The parser should have stopped at "arg0", but it already stops at
"value".

This patch makes parse_options() die if the two flags are used in
combination.

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

parseopt: document KEEP_ARGV0, KEEP_UNKNOWN, NO_INTERNA... René Scharfe Mon, 9 Mar 2009 20:26:56 +0000 (21:26 +0100)

parseopt: document KEEP_ARGV0, KEEP_UNKNOWN, NO_INTERNAL_HELP

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

git-svn: support intermediate paths when matching tags... Michael Lai Mon, 9 Mar 2009 18:45:47 +0000 (11:45 -0700)

git-svn: support intermediate paths when matching tags/branches

For repositories laid out like the following:

[svn-remote "svn"]
url = http://foo.com/svn/repos/bar
fetch = myproject/trunk:refs/remotes/trunk
branches = bar/myproject/branches/*:refs/remotes/*
tags = bar/myproject/tags/*:refs/remotes/tags/*

The "bar" component above is considered the intermediate path
and was not handled correctly.

Signed-off-by: Michael Lai <myllai@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>

grep: cast printf %.*s "precision" argument explicitly... Junio C Hamano Mon, 9 Mar 2009 01:22:44 +0000 (18:22 -0700)

grep: cast printf %.*s "precision" argument explicitly to int

On some systems, regoff_t that is the type of rm_so/rm_eo members are
wider than int; %.*s precision specifier expects an int, so use an explicit
cast.

A breakage reported on Darwin by Brian Gernhardt should be fixed with
this patch.

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

Makefile: Set compiler switch for USE_NSECBrian Gernhardt Sun, 8 Mar 2009 21:22:51 +0000 (17:22 -0400)

Makefile: Set compiler switch for USE_NSEC

The comments indicated that setting a Makefile variable USE_NSEC would
enable the code for sub-second [cm]times. However, the Makefile
variable was never turned into a compiler switch so the code was never
enabled. This patch allows USE_NSEC to be noticed by the compiler.

Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Create USE_ST_TIMESPEC and turn it on for DarwinBrian Gernhardt Sun, 8 Mar 2009 20:04:28 +0000 (16:04 -0400)

Create USE_ST_TIMESPEC and turn it on for Darwin

Not all OSes use st_ctim and st_mtim in their struct stat. In
particular, it appears that OS X uses st_*timespec instead. So add a
Makefile variable and #define called USE_ST_TIMESPEC to switch the
USE_NSEC defines to use st_*timespec.

This also turns it on by default for OS X (Darwin) machines. Likely
this is a sane default for other BSD kernels as well, but I don't have
any to test that assumption on.

Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Not all systems use st_[cm]tim field for ns resolution... Junio C Hamano Sun, 8 Mar 2009 20:51:33 +0000 (13:51 -0700)

Not all systems use st_[cm]tim field for ns resolution file timestamp

Some codepaths do not still use the ST_[CM]TIME_NSEC() pair of macros
introduced by the previous commit but assumes all systems use st_mtim
and st_ctim fields in "struct stat" to record nanosecond resolution part
of the file timestamps.

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

archive: use parseopt for local-only optionsRené Scharfe Sun, 8 Mar 2009 18:21:53 +0000 (19:21 +0100)

archive: use parseopt for local-only options

Replace the hand-rolled parsers that find and remove --remote and --exec
by a parseopt parser that also handles --output.

All three options only have a meaning if no remote server is used or on
the local side. They must be rejected by upload-archive and should not
be sent to the server by archive.

We can't use a single parser for both remote and local side because the
remote end possibly understands a different set of options than the
local side. A local parser would then wrongly accuse options valid on
the other side as being incorrect.

This patch implements a very forgiving parser that understands only the
three options mentioned above. All others are passed to the normal,
complete parser in archive.c (running either locally in archive, or
remotely in upload-archive). This normal parser definition contains
dummy entries for the three options, in order for them to appear in the
help screen.

The parseopt parser allows multiple occurrences of --remote and --exec
unlike the previous one; the one specified last wins. This looseness
is acceptable, I think.

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

parseopt: make usage optionalRené Scharfe Sun, 8 Mar 2009 18:16:58 +0000 (19:16 +0100)

parseopt: make usage optional

Allow usagestr to be NULL and don't display any help screen in
this case. This is useful to implement incremental parsers.

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

parseopt: add PARSE_OPT_NO_INTERNAL_HELPRené Scharfe Sun, 8 Mar 2009 18:15:08 +0000 (19:15 +0100)

parseopt: add PARSE_OPT_NO_INTERNAL_HELP

Add a parseopt flag, PARSE_OPT_NO_INTERNAL_HELP, that turns off internal
handling of -h, --help and --help-all. This allows the implementation
of custom help option handlers or incremental parsers.

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

parseopt: add PARSE_OPT_KEEP_UNKNOWNRené Scharfe Sun, 8 Mar 2009 18:12:47 +0000 (19:12 +0100)

parseopt: add PARSE_OPT_KEEP_UNKNOWN

Add a parseopt flag, PARSE_OPT_KEEP_UNKNOWN, that can be used to keep
unknown options in argv, similar to the existing KEEP flags.

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

Adjust js/remote-improvements and db/refspec-wildcard... Junio C Hamano Sun, 8 Mar 2009 08:12:33 +0000 (00:12 -0800)

Adjust js/remote-improvements and db/refspec-wildcard-in-the-middle

The latter topic changes the definition of how refspec's src and dst side
is stored in-core; it used to be that the asterisk for pattern was
omitted, but now it is included. The former topic handcrafts an old style
refspec to feed the refspec matching machinery that lacks the asterisk and
triggers an error.

This resolves the semantic clash between the two topics early before they
need to be merged to integration branches.

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

builtin-remote.c: no "commented out" code, pleaseJunio C Hamano Sun, 8 Mar 2009 08:10:33 +0000 (00:10 -0800)

builtin-remote.c: no "commented out" code, please

And especially do not use // comment.

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

Merge branch 'maint'Junio C Hamano Sun, 8 Mar 2009 06:34:13 +0000 (22:34 -0800)

Merge branch 'maint'

* maint:
builtin-revert.c: release index lock when cherry-picking an empty commit
document config --bool-or-int
t1300: use test_must_fail as appropriate
cleanup: add isascii()
Documentation: fix badly indented paragraphs in "--bisect-all" description

Merge branch 'maint-1.6.1' into maintJunio C Hamano Sun, 8 Mar 2009 05:00:27 +0000 (21:00 -0800)

Merge branch 'maint-1.6.1' into maint

* maint-1.6.1:
builtin-revert.c: release index lock when cherry-picking an empty commit

http.c: use strbuf API in quote_ref_urlTay Ray Chuan Sat, 7 Mar 2009 16:47:21 +0000 (00:47 +0800)

http.c: use strbuf API in quote_ref_url

In addition, ''quote_ref_url'' inserts a slash between the base URL and
remote ref path only if needed. Previously, this insertion wasn't
contingent on the lack of a separating slash.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Move local variables to narrower scopesBenjamin Kramer Sat, 7 Mar 2009 20:02:26 +0000 (21:02 +0100)

Move local variables to narrower scopes

These weren't used outside and can be safely moved

Signed-off-by: Benjamin Kramer <benny.kra@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Remove unused function scope local variablesBenjamin Kramer Sat, 7 Mar 2009 20:02:10 +0000 (21:02 +0100)

Remove unused function scope local variables

These variables were unused and can be removed safely:

builtin-clone.c::cmd_clone(): use_local_hardlinks, use_separate_remote
builtin-fetch-pack.c::find_common(): len
builtin-remote.c::mv(): symref
diff.c::show_stats():show_stats(): total
diffcore-break.c::should_break(): base_size
fast-import.c::validate_raw_date(): date, sign
fsck.c::fsck_tree(): o_sha1, sha1
xdiff-interface.c::parse_num(): read_some

Signed-off-by: Benjamin Kramer <benny.kra@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

MinGW: fix diff --no-index /dev/null ...Johannes Schindelin Sat, 7 Mar 2009 15:51:33 +0000 (16:51 +0100)

MinGW: fix diff --no-index /dev/null ...

When launching "diff --no-index" with a parameter "/dev/null", the MSys
bash converts the "/dev/null" to a "nul", which usually makes sense. But

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

git-p4: remove tabs from usermap filePete Wyckoff Fri, 27 Feb 2009 18:53:59 +0000 (10:53 -0800)

git-p4: remove tabs from usermap file

Some users have tabs in their names, oddly enough. This
causes problems when loading the usercache from disk,
as split separates the fields on the wrong tabs. When
fast-import's parse_ident() tries to parse the committer
field, it is unhappy about the unbalanced <..> angle brackets.

It is easy enough to convert the tabs to single spaces.

Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add an (optional, since expensive) test for >2gb clonesJohannes Schindelin Fri, 6 Mar 2009 09:48:53 +0000 (10:48 +0100)

Add an (optional, since expensive) test for >2gb clones

Define GIT_TEST_CLONE_2GB=t if you want the test not to be skipped.

The test works by constructing a repository larger than 2gb, and then
cloning it.

The repository is forced larger than 2gb by setting compression and
delta depth to zero, and then adding just enough unique objects of
a given size.

The objects consist of a running decimal number in ASCII, padded by
spaces. Should that break in the future, e.g. when pack v4 becomes
default, there is a commented-out call to test-genrandom which can be
substituted, but that uses more cycles than the current method.

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

Record ns-timestamps if possible, but do not use it... Kjetil Barvik Wed, 4 Mar 2009 17:47:40 +0000 (18:47 +0100)

Record ns-timestamps if possible, but do not use it without USE_NSEC

Traditionally, the lack of USE_NSEC meant "do not record nor use the
nanosecond resolution part of the file timestamps". To avoid problems on
filesystems that lose the ns part when the metadata is flushed to the disk
and then later read back in, disabling USE_NSEC has been a good idea in
general.

If you are on a filesystem without such an issue, it does not hurt to read
and store them in the cached stat data in the index entries even if your
git is compiled without USE_NSEC. The index left with such a version of
git can be read by git compiled with USE_NSEC and it can make use of the
nanosecond part to optimize the check to see if the path on the filesystem
hsa been modified since we last looked at.

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

bash completion: teach fetch, pull, and push to complet... Jay Soffian Fri, 6 Mar 2009 04:39:33 +0000 (23:39 -0500)

bash completion: teach fetch, pull, and push to complete their options

fetch, pull, and push didn't know their options. They do now. merge's
options are factored into a variable so they can be shared between
_git_merge and _git_pull

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

bash completion: refactor --strategy completionJay Soffian Fri, 6 Mar 2009 16:30:44 +0000 (11:30 -0500)

bash completion: refactor --strategy completion

The code to complete --strategy was duplicated between _git_rebase and
_git_merge, and is about to gain a third caller (_git_pull). This patch
factors it into its own function.

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