gitweb.git
mailmap: avoid out-of-bounds memory accessRomain Francoise Sat, 27 Oct 2012 22:49:55 +0000 (00:49 +0200)

mailmap: avoid out-of-bounds memory access

AddressSanitizer (http://clang.llvm.org/docs/AddressSanitizer.html)
complains of a one-byte buffer underflow in parse_name_and_email() while
running the test suite. And indeed, if one of the lines in the mailmap
begins with '<', we dereference the address just before the beginning of
the buffer when looking for whitespace to remove, before checking that
we aren't going too far.

So reverse the order of the tests to make sure that we don't read
outside the buffer.

Signed-off-by: Romain Francoise <romain@orebokech.com>
Signed-off-by: Jeff King <peff@peff.net>

Git 1.7.12.4 v1.7.12.4Junio C Hamano Wed, 17 Oct 2012 17:36:01 +0000 (10:36 -0700)

Git 1.7.12.4

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

Merge branch 'jk/maint-http-half-auth-push' into maintJunio C Hamano Wed, 17 Oct 2012 17:29:24 +0000 (10:29 -0700)

Merge branch 'jk/maint-http-half-auth-push' into maint

* jk/maint-http-half-auth-push:
http: fix segfault in handle_curl_result

Merge branch 'rr/git-uri-doc' into maintJunio C Hamano Wed, 17 Oct 2012 17:28:56 +0000 (10:28 -0700)

Merge branch 'rr/git-uri-doc' into maint

* rr/git-uri-doc:
Git url doc: mark ftp/ftps as read-only and deprecate them

Merge branch 'bw/cp-a-is-gnuism' into maintJunio C Hamano Wed, 17 Oct 2012 17:28:48 +0000 (10:28 -0700)

Merge branch 'bw/cp-a-is-gnuism' into maint

* bw/cp-a-is-gnuism:
tests: "cp -a" is a GNUism

Merge branch 'nd/doc-ignore' into maintJunio C Hamano Wed, 17 Oct 2012 17:28:42 +0000 (10:28 -0700)

Merge branch 'nd/doc-ignore' into maint

* nd/doc-ignore:
gitignore.txt: suggestions how to get literal # or ! at the beginning

Merge branch 'jc/doc-long-options' into maintJunio C Hamano Wed, 17 Oct 2012 17:28:34 +0000 (10:28 -0700)

Merge branch 'jc/doc-long-options' into maint

* jc/doc-long-options:
gitcli: parse-options lets you omit tail of long options

Merge branch 'jc/maint-t1450-fsck-order-fix' into maintJunio C Hamano Wed, 17 Oct 2012 17:28:19 +0000 (10:28 -0700)

Merge branch 'jc/maint-t1450-fsck-order-fix' into maint

* jc/maint-t1450-fsck-order-fix:
t1450: the order the objects are checked is undefined

Merge branch 'rr/test-use-shell-path-not-shell' into... Junio C Hamano Wed, 17 Oct 2012 17:27:28 +0000 (10:27 -0700)

Merge branch 'rr/test-use-shell-path-not-shell' into maint

* rr/test-use-shell-path-not-shell:
test-lib: use $SHELL_PATH, not $SHELL

Merge branch 'rr/test-make-sure-we-have-git' into maintJunio C Hamano Wed, 17 Oct 2012 17:27:21 +0000 (10:27 -0700)

Merge branch 'rr/test-make-sure-we-have-git' into maint

* rr/test-make-sure-we-have-git:
t/test-lib: make sure Git has already been built

Merge branch 'po/maint-docs' into maintJunio C Hamano Wed, 17 Oct 2012 17:27:10 +0000 (10:27 -0700)

Merge branch 'po/maint-docs' into maint

* po/maint-docs:
Doc branch: show -vv option and alternative
Doc clean: add See Also link
Doc add: link gitignore
Doc: separate gitignore pattern sources
Doc: shallow clone deepens _to_ new depth

Merge branch 'jc/ll-merge-binary-ours' into maintJunio C Hamano Wed, 17 Oct 2012 17:26:51 +0000 (10:26 -0700)

Merge branch 'jc/ll-merge-binary-ours' into maint

* jc/ll-merge-binary-ours:
ll-merge: warn about inability to merge binary files only when we can't
attr: "binary" attribute should choose built-in "binary" merge driver
merge: teach -Xours/-Xtheirs to binary ll-merge driver

Merge branch 'db/doc-custom-xmlto' into maintJunio C Hamano Wed, 17 Oct 2012 17:25:37 +0000 (10:25 -0700)

Merge branch 'db/doc-custom-xmlto' into maint

* db/doc-custom-xmlto:
Documentation/Makefile: Allow custom XMLTO binary

Fix spelling error in post-receive-email hookRichard Fearn Sat, 13 Oct 2012 22:32:50 +0000 (23:32 +0100)

Fix spelling error in post-receive-email hook

Signed-off-by: Richard Fearn <richardfearn@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

http: fix segfault in handle_curl_resultJeff King Fri, 12 Oct 2012 06:22:49 +0000 (02:22 -0400)

http: fix segfault in handle_curl_result

When we create an http active_request_slot, we can set its
"results" pointer back to local storage. The http code will
fill in the details of how the request went, and we can
access those details even after the slot has been cleaned
up.

Commit 8809703 (http: factor out http error code handling)
switched us from accessing our local results struct directly
to accessing it via the "results" pointer of the slot. That
means we're accessing the slot after it has been marked as
finished, defeating the whole purpose of keeping the results
storage separate.

Most of the time this doesn't matter, as finishing the slot
does not actually clean up the pointer. However, when using
curl's multi interface with the dumb-http revision walker,
we might actually start a new request before handing control
back to the original caller. In that case, we may reuse the
slot, zeroing its results pointer, and leading the original
caller to segfault while looking for its results inside the
slot.

Instead, we need to pass a pointer to our local results
storage to the handle_curl_result function, rather than
relying on the pointer in the slot struct. This matches what
the original code did before the refactoring (which did not
use a separate function, and therefore just accessed the
results struct directly).

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

gitweb.cgi: fix "comitter_tz" typo in feedDylan Alex Simon Thu, 11 Oct 2012 20:40:35 +0000 (16:40 -0400)

gitweb.cgi: fix "comitter_tz" typo in feed

gitweb's feeds sometimes contained committer timestamps in the wrong timezone
due to a misspelling.

Signed-off-by: Dylan Simon <dylan@dylex.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

attr: a note about the order of .gitattributes lookupNguyen Thai Ngoc Duy Wed, 10 Oct 2012 13:55:52 +0000 (20:55 +0700)

attr: a note about the order of .gitattributes lookup

This is the documentation part of

1a9d7e9 (attr.c: read .gitattributes from index as well. - 2007-08-14)
06f33c1 (Read attributes from the index that is being checked out - 2009-03-13)

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint' of git://github.com/git-l10n/git... Junio C Hamano Tue, 9 Oct 2012 18:48:53 +0000 (11:48 -0700)

Merge branch 'maint' of git://github.com/git-l10n/git-po into maint

* 'maint' of git://github.com/git-l10n/git-po:
l10n: de.po: fix a few minor typos

tests: "cp -a" is a GNUismBen Walton Mon, 8 Oct 2012 08:08:01 +0000 (09:08 +0100)

tests: "cp -a" is a GNUism

These tests just want a bit-for-bit identical copy; they do not need
even -H (there is no symbolic link involved) nor -p (there is no
funny permission or ownership issues involved).

Just use "cp -R" instead.

Signed-off-by: Ben Walton <bdwalton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git url doc: mark ftp/ftps as read-only and deprecate... Ramkumar Ramachandra Mon, 8 Oct 2012 17:26:53 +0000 (10:26 -0700)

Git url doc: mark ftp/ftps as read-only and deprecate them

It is not even worth mentioning their removal; just discourage
people from using them.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.12.3 v1.7.12.3Junio C Hamano Mon, 8 Oct 2012 18:40:43 +0000 (11:40 -0700)

Git 1.7.12.3

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

Merge branch 'os/commit-submodule-ignore' into maintJunio C Hamano Mon, 8 Oct 2012 18:34:34 +0000 (11:34 -0700)

Merge branch 'os/commit-submodule-ignore' into maint

"git status" honored the ignore=dirty settings in .gitmodules but
"git commit" didn't.

* os/commit-submodule-ignore:
commit: pay attention to submodule.$name.ignore in .gitmodules

Merge branch 'jk/receive-pack-unpack-error-to-pusher... Junio C Hamano Mon, 8 Oct 2012 18:34:19 +0000 (11:34 -0700)

Merge branch 'jk/receive-pack-unpack-error-to-pusher' into maint

"git receive-pack" (the counterpart to "git push") did not give
progress output while processing objects it received to the puser
when run over the smart-http protocol.

* jk/receive-pack-unpack-error-to-pusher:
receive-pack: drop "n/a" on unpacker errors
receive-pack: send pack-processing stderr over sideband
receive-pack: redirect unpack-objects stdout to /dev/null

Merge branch 'rt/maint-clone-single' into maintJunio C Hamano Mon, 8 Oct 2012 18:34:02 +0000 (11:34 -0700)

Merge branch 'rt/maint-clone-single' into maint

A repository created with "git clone --single" had its fetch
refspecs set up just like a clone without "--single", leading the
subsequent "git fetch" to slurp all the other branches, defeating
the whole point of specifying "only this branch".

* rt/maint-clone-single:
clone --single: limit the fetch refspec to fetched branch

Merge branch 'jc/blame-follows-renames' into maintJunio C Hamano Mon, 8 Oct 2012 18:33:35 +0000 (11:33 -0700)

Merge branch 'jc/blame-follows-renames' into maint

It was unclear in the documentation for "git blame" that it is
unnecessary for users to use the "--follow" option.

* jc/blame-follows-renames:
git blame: document that it always follows origin across whole-file renames

Merge branch 'lt/mailinfo-handle-attachment-more-sanely... Junio C Hamano Mon, 8 Oct 2012 18:32:59 +0000 (11:32 -0700)

Merge branch 'lt/mailinfo-handle-attachment-more-sanely' into maint

A patch attached as application/octet-stream (e.g. not text/*) were
mishandled, not correctly honoring Content-Transfer-Encoding
(e.g. base64).

* lt/mailinfo-handle-attachment-more-sanely:
mailinfo: don't require "text" mime type for attachments

gitignore.txt: suggestions how to get literal # or... Nguyễn Thái Ngọc Duy Sun, 7 Oct 2012 03:13:54 +0000 (10:13 +0700)

gitignore.txt: suggestions how to get literal # or ! at the beginning

We support backslash escape, but we hide the details behind the phrase
"a shell glob suitable for consumption by fnmatch(3)". So it may not
be obvious how one can get literal # or ! at the beginning of pattern.
Add a few lines on how to work around the magic characters.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitcli: parse-options lets you omit tail of long optionsJunio C Hamano Thu, 4 Oct 2012 17:13:49 +0000 (10:13 -0700)

gitcli: parse-options lets you omit tail of long options

Describe the behaviour, but do warn people against taking it too
literally and expect an abbreviation valid today will stay valid
forever.

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

l10n: de.po: fix a few minor typosSimon Ruderich Thu, 4 Oct 2012 14:23:14 +0000 (16:23 +0200)

l10n: de.po: fix a few minor typos

Signed-off-by: Simon Ruderich <simon@ruderich.org>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>

t1450: the order the objects are checked is undefinedJunio C Hamano Tue, 2 Oct 2012 22:08:16 +0000 (15:08 -0700)

t1450: the order the objects are checked is undefined

When a tag T points at an object X that is of a type that is
different from what the tag records as, fsck should report it as an
error.

However, depending on the order X and T are checked individually,
the actual error message can be different. If X is checked first,
fsck remembers X's type and then when it checks T, it notices that T
records X as a wrong type (i.e. the complaint is about a broken tag
T). If T is checked first, on the other hand, fsck remembers that we
need to verify X is of the type tag records, and when it later
checks X, it notices that X is of a wrong type (i.e. the complaint
is about a broken object X).

The important thing is that fsck notices such an error and diagnoses
the issue on object X, but the test was expecting that we happen to
check objects in the order to make us detect issues with tag T, not
with object X. Remove this unwarranted assumption.

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

Start preparing for 1.7.12.3Junio C Hamano Tue, 2 Oct 2012 20:44:59 +0000 (13:44 -0700)

Start preparing for 1.7.12.3

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

Merge branch 'rr/maint-submodule-unknown-cmd' into... Junio C Hamano Tue, 2 Oct 2012 20:42:32 +0000 (13:42 -0700)

Merge branch 'rr/maint-submodule-unknown-cmd' into maint

"git submodule frotz" was not diagnosed as "frotz" being an unknown
subcommand to "git submodule"; the user instead got a complaint that
"git submodule status" was run with an unknown path "frotz".

* rr/maint-submodule-unknown-cmd:
submodule: if $command was not matched, don't parse other args

Merge branch 'sp/maint-http-enable-gzip' into maintJunio C Hamano Tue, 2 Oct 2012 20:42:13 +0000 (13:42 -0700)

Merge branch 'sp/maint-http-enable-gzip' into maint

"git fetch" over http advertised that it supports "deflate", which
is much less common, and did not advertise more common "gzip" on its
Accept-Encoding header.

* sp/maint-http-enable-gzip:
Enable info/refs gzip decompression in HTTP client

Merge branch 'sp/maint-http-info-refs-no-retry' into... Junio C Hamano Tue, 2 Oct 2012 20:41:38 +0000 (13:41 -0700)

Merge branch 'sp/maint-http-info-refs-no-retry' into maint

"git fetch" over http had an old workaround for an unlikely server
misconfiguration; it turns out that this hurts debuggability of the
configuration in general, and has been reverted.

* sp/maint-http-info-refs-no-retry:
Revert "retry request without query when info/refs?query fails"

l10n: Fix to Swedish translationPeter Krefting Tue, 2 Oct 2012 07:25:32 +0000 (08:25 +0100)

l10n: Fix to Swedish translation

Fix bad translation of "Receiving objects".

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

mailinfo: don't require "text" mime type for attachmentsLinus Torvalds Sun, 30 Sep 2012 22:10:48 +0000 (15:10 -0700)

mailinfo: don't require "text" mime type for attachments

Currently "git am" does insane things if the mbox it is given contains
attachments with a MIME type that aren't "text/*".

In particular, it will still decode them, and pass them "one line at a
time" to the mail body filter, but because it has determined that they
aren't text (without actually looking at the contents, just at the mime
type) the "line" will be the encoding line (eg 'base64') rather than a
line of *content*.

Which then will cause the text filtering to fail, because we won't
correctly notice when the attachment text switches from the commit message
to the actual patch. Resulting in a patch failure, even if patch may be a
perfectly well-formed attachment, it's just that the message type may be
(for example) "application/octet-stream" instead of "text/plain".

Just remove all the bogus games with the message_type. The only difference
that code creates is how the data is passed to the filter function
(chunked per-pred-code line or per post-decode line), and that difference
is *wrong*, since chunking things per pre-decode line can never be a
sensible operation, and cannot possibly matter for binary data anyway.

This code goes all the way back to March of 2007, in commit 87ab79923463
("builtin-mailinfo.c infrastrcture changes"), and apparently Don used to
pass random mbox contents to git. However, the pre-decode vs post-decode
logic really shouldn't matter even for that case, and more importantly, "I
fed git am crap" is not a valid reason to break *real* patch attachments.

If somebody really cares, and determines that some attachment is binary
data (by looking at the data, not the MIME-type), the whole attachment
should be dismissed, rather than fed in random-sized chunks to
"handle_filter()".

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Don Zickus <dzickus@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.12.2 v1.7.12.2Junio C Hamano Sun, 30 Sep 2012 05:33:25 +0000 (22:33 -0700)

Git 1.7.12.2

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

Merge branch 'maint' of git://github.com/git-l10n/git... Junio C Hamano Sun, 30 Sep 2012 06:20:13 +0000 (23:20 -0700)

Merge branch 'maint' of git://github.com/git-l10n/git-po into maint

Update German and Simplified Chinese translations.

* 'maint' of git://github.com/git-l10n/git-po:
l10n: de.po: correct translation of a 'rebase' message
l10n: Improve many translation for zh_CN
l10n: Unify the translation for '(un)expected'

Merge branch 'jc/maint-log-grep-all-match-1' into maintJunio C Hamano Sun, 30 Sep 2012 05:30:56 +0000 (22:30 -0700)

Merge branch 'jc/maint-log-grep-all-match-1' into maint

* jc/maint-log-grep-all-match-1:
grep.c: make two symbols really file-scope static this time
t7810-grep: test --all-match with multiple --grep and --author options
t7810-grep: test interaction of multiple --grep and --author options
t7810-grep: test multiple --author with --all-match
t7810-grep: test multiple --grep with and without --all-match
t7810-grep: bring log --grep tests in common form
grep.c: mark private file-scope symbols as static
log: document use of multiple commit limiting options
log --grep/--author: honor --all-match honored for multiple --grep patterns
grep: show --debug output only once
grep: teach --debug option to dump the parse tree

Merge branch 'jc/maint-mailinfo-mime-attr' into maintJunio C Hamano Sun, 30 Sep 2012 05:30:47 +0000 (22:30 -0700)

Merge branch 'jc/maint-mailinfo-mime-attr' into maint

* jc/maint-mailinfo-mime-attr:
mailinfo: do not concatenate charset= attribute values from mime headers

Merge branch 'l10n-thynson' of git://github.com/thynson... Jiang Xin Thu, 27 Sep 2012 22:49:08 +0000 (06:49 +0800)

Merge branch 'l10n-thynson' of git://github.com/thynson/git-po-zh_CN into maint

* 'l10n-thynson' of git://github.com/thynson/git-po-zh_CN:
l10n: Improve many translation for zh_CN
l10n: Unify the translation for '(un)expected'

Merge branch 'maint' of https://github.com/ralfth/git... Jiang Xin Thu, 27 Sep 2012 22:30:11 +0000 (06:30 +0800)

Merge branch 'maint' of https://github.com/ralfth/git-po-de into maint

* 'maint' of https://github.com/ralfth/git-po-de:
l10n: de.po: correct translation of a 'rebase' message

l10n: de.po: correct translation of a 'rebase' messageRalf Thielow Mon, 24 Sep 2012 17:16:21 +0000 (19:16 +0200)

l10n: de.po: correct translation of a 'rebase' message

Noticed-by: Sascha Cunz <sascha-ml@babbelbox.org>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>

submodule: if $command was not matched, don't parse... Ramkumar Ramachandra Sat, 22 Sep 2012 11:27:59 +0000 (16:57 +0530)

submodule: if $command was not matched, don't parse other args

"git submodule" command DWIMs the command line and assumes a
unspecified action word for 'status' action. This is a UI mistake
that leads to a confusing behaviour. A mistyped command name is
instead treated as a request for 'status' of the submodule with that
name, e.g.

$ git submodule show
error: pathspec 'show' did not match any file(s) known to git.
Did you forget to 'git add'?

Stop DWIMming an unknown or mistyped subcommand name as pathspec
given to unspelled "status" subcommand. "git submodule" without any
argument is still interpreted as "git submodule status", but its
value is questionable.

Adjust t7400 to match, and stop advertising the default subcommand
being 'status' which does not help much in practice, other than
promoting laziness and confusion.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-lib: use $SHELL_PATH, not $SHELLRamkumar Ramachandra Sat, 22 Sep 2012 04:55:10 +0000 (10:25 +0530)

test-lib: use $SHELL_PATH, not $SHELL

The codepath for handling "--tee" ends up relaunching the test
script under a shell, and that one has to be a Bourne. But we
incorrectly used $SHELL, which could be a non-Bourne (e.g. zsh or
csh); we have the Makefile variable $SHELL_PATH for exactly that,
so use it instead.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Revert "completion: fix shell expansion of items"Jeff King Tue, 25 Sep 2012 04:31:19 +0000 (00:31 -0400)

Revert "completion: fix shell expansion of items"

This reverts commit 25ae7cfd19c8f21721363c64163cd5d9d1135b20.

That patch does fix expansion of weird variables in some
simple tests, but it also seems to break other things, like
expansion of refs by "git checkout".

While we're sorting out the correct solution, we are much
better with the original bug (people with metacharacters in
their completions occasionally see an error message) than
the current bug (ref completion does not work at all).

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

Start preparation for 1.7.12.2Junio C Hamano Mon, 24 Sep 2012 19:50:00 +0000 (12:50 -0700)

Start preparation for 1.7.12.2

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

Merge branch 'jc/maint-blame-no-such-path' into maintJunio C Hamano Mon, 24 Sep 2012 19:40:02 +0000 (12:40 -0700)

Merge branch 'jc/maint-blame-no-such-path' into maint

Even during a conflicted merge, "git blame $path" always meant to
blame uncommitted changes to the "working tree" version; make it
more useful by showing cleanly merged parts as coming from the other
branch that is being merged.

This incidentally fixes an unrelated problem on a case insensitive
filesystem, where "git blame MAKEFILE" run in a history that has
"Makefile" but not "MAKEFILE" did not say "No such file MAKEFILE in
HEAD" but pretended as if "MAKEFILE" was a newly added file.

* jc/maint-blame-no-such-path:
blame: allow "blame file" in the middle of a conflicted merge
blame $path: avoid getting fooled by case insensitive filesystems

Merge branch 'dj/fetch-all-tags' into maintJunio C Hamano Mon, 24 Sep 2012 19:39:21 +0000 (12:39 -0700)

Merge branch 'dj/fetch-all-tags' into maint

"git fetch --all", when passed "--no-tags", did not honor the
"--no-tags" option while fetching from individual remotes (the same
issue existed with "--tags", but combination "--all --tags" makes
much less sense than "--all --no-tags").

* dj/fetch-all-tags:
fetch --all: pass --tags/--no-tags through to each remote
submodule: use argv_array instead of hand-building arrays
fetch: use argv_array instead of hand-building arrays
argv-array: fix bogus cast when freeing array
argv-array: add pop function

Improve the description of GIT_PS1_SHOWUPSTREAMJonathan "Duke" Leto Mon, 24 Sep 2012 17:41:26 +0000 (10:41 -0700)

Improve the description of GIT_PS1_SHOWUPSTREAM

Describe what '=' means in the output of __git_ps1 when using
GIT_PS1_SHOWUPSTREAM, which was not previously described.

Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

commit: pay attention to submodule.$name.ignore in... Orgad Shaneh Sun, 23 Sep 2012 07:37:47 +0000 (09:37 +0200)

commit: pay attention to submodule.$name.ignore in .gitmodules

"git status" does not list a submodule with uncommitted working tree
files as modified when "submodule.$name.ignore" is set to "dirty" in
in-tree ".gitmodules" file. Both status and commit honor the setting
in $GIT_DIR/config, but "commit" does not pick it up from .gitmodules,
which is inconsistent.

Teach "git commit" to pay attention to the setting in .gitmodules as
well.

Signed-off-by: Orgad Shaneh <orgads@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git blame: document that it always follows origin acros... Junio C Hamano Fri, 21 Sep 2012 19:09:42 +0000 (12:09 -0700)

git blame: document that it always follows origin across whole-file renames

Make it clear to people who (rightly or wrongly) think that the
"--follow" option should follow origin across while-file renames
that we already do so. That would explain the output that they see
when they do give the "--follow" option to the command.

We may or may not want to do a "--no-follow" patch as a follow-up,
but that is a separate topic.

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

receive-pack: drop "n/a" on unpacker errorsJeff King Fri, 21 Sep 2012 05:38:46 +0000 (01:38 -0400)

receive-pack: drop "n/a" on unpacker errors

The output from git push currently looks like this:

$ git push dest HEAD
fatal: [some message from index-pack]
error: unpack failed: index-pack abnormal exit
To dest
! [remote rejected] HEAD -> master (n/a (unpacker error))

That n/a is meant to be "the per-ref status is not
available" but the nested parentheses just make it look
ugly. Let's turn the final line into just:

! [remote rejected] HEAD -> master (unpacker error)

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

receive-pack: send pack-processing stderr over sidebandJeff King Fri, 21 Sep 2012 05:34:55 +0000 (01:34 -0400)

receive-pack: send pack-processing stderr over sideband

Receive-pack invokes either unpack-objects or index-pack to
handle the incoming pack. However, we do not redirect the
stderr of the sub-processes at all, so it is never seen by
the client. From the initial thread adding sideband support,
which is here:

http://thread.gmane.org/gmane.comp.version-control.git/139471

it is clear that some messages are specifically kept off the
sideband (with the assumption that they are of interest only
to an administrator, not the client). The stderr of the
subprocesses is mentioned in the thread, but it's unclear if
they are included in that group, or were simply forgotten.

However, there are a few good reasons to show them to the
client:

1. In many cases, they are directly about the incoming
packfile (e.g., fsck warnings with --strict, corruption
in the packfile, etc). Without these messages, the
client just gets "unpacker error" with no extra useful
diagnosis.

2. No matter what the cause, we are probably better off
showing the errors to the client. If the client and the
server admin are not the same entity, it is probably
much easier for the client to cut-and-paste the errors
they see than for the admin to try to dig them out of a
log and correlate them with a particular session.

3. Users of the ssh transport typically already see these
stderr messages, as the remote's stderr is copied
literally by ssh. This brings other transports (http,
and push-over-git if you are crazy enough to enable it)
more in line with ssh. As a bonus for ssh users,
because the messages are now fed through the sideband
and printed by the local git, they will have "remote:"
prepended and be properly interleaved with any local
output to stderr.

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

receive-pack: redirect unpack-objects stdout to /dev... Jeff King Fri, 21 Sep 2012 05:32:52 +0000 (01:32 -0400)

receive-pack: redirect unpack-objects stdout to /dev/null

The unpack-objects command should not generally produce any
output on stdout. However, if it's given extra input after
the packfile, it will spew the remainder to stdout. When
called by receive-pack, this means we will break protocol,
since our stdout is connected to the remote send-pack.

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

Merge branch 'nd/maint-diffstat-summary' into maintJunio C Hamano Thu, 20 Sep 2012 22:55:31 +0000 (15:55 -0700)

Merge branch 'nd/maint-diffstat-summary' into maint

* nd/maint-diffstat-summary:
Revert diffstat back to English

Merge branch 'jw/doc-commit-title' into maintJunio C Hamano Thu, 20 Sep 2012 22:55:22 +0000 (15:55 -0700)

Merge branch 'jw/doc-commit-title' into maint

* jw/doc-commit-title:
Documentation: describe subject more precisely

Merge branch 'dg/run-command-child-cleanup' into maintJunio C Hamano Thu, 20 Sep 2012 22:55:12 +0000 (15:55 -0700)

Merge branch 'dg/run-command-child-cleanup' into maint

* dg/run-command-child-cleanup:
run-command.c: fix broken list iteration in clear_child_for_cleanup

Merge branch 'jc/mailinfo-RE' into maintJunio C Hamano Thu, 20 Sep 2012 22:55:03 +0000 (15:55 -0700)

Merge branch 'jc/mailinfo-RE' into maint

* jc/mailinfo-RE:
mailinfo: strip "RE: " prefix

Merge branch 'sn/ls-remote-get-url-doc' into maintJunio C Hamano Thu, 20 Sep 2012 22:54:57 +0000 (15:54 -0700)

Merge branch 'sn/ls-remote-get-url-doc' into maint

* sn/ls-remote-get-url-doc:
ls-remote: document the '--get-url' option

Merge branch 'nd/log-n-doc' into maintJunio C Hamano Thu, 20 Sep 2012 22:54:43 +0000 (15:54 -0700)

Merge branch 'nd/log-n-doc' into maint

* nd/log-n-doc:
doc: move rev-list option -<n> from git-log.txt to rev-list-options.txt

Merge branch 'nd/maint-remote-remove' into maintJunio C Hamano Thu, 20 Sep 2012 22:53:31 +0000 (15:53 -0700)

Merge branch 'nd/maint-remote-remove' into maint

* nd/maint-remote-remove:
remote: prefer subcommand name 'remove' to 'rm'

grep.c: make two symbols really file-scope static this... Junio C Hamano Thu, 20 Sep 2012 21:20:09 +0000 (14:20 -0700)

grep.c: make two symbols really file-scope static this time

Adding a declaration at the beginning is not sufficient for obvious
reasons. The definition has to be made static.

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

clone --single: limit the fetch refspec to fetched... Ralf Thielow Thu, 20 Sep 2012 18:04:08 +0000 (20:04 +0200)

clone --single: limit the fetch refspec to fetched branch

After running "git clone --single", the resulting repository has the
usual default "+refs/heads/*:refs/remotes/origin/*" wildcard fetch
refspec installed, which means that a subsequent "git fetch" will
end up grabbing all the other branches.

Update the fetch refspec to cover only the singly cloned ref instead
to correct this.

That means:
If "--single" is used without "--branch" or "--mirror", the
fetch refspec covers the branch on which remote's HEAD points to.
If "--single" is used with "--branch", it'll cover only the branch
specified in the "--branch" option.
If "--single" is combined with "--mirror", then it'll cover all
refs of the cloned repository.
If "--single" is used with "--branch" that specifies a tag, then
it'll cover only the ref for this tag.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: Document signature showing optionsStephen Boyd Thu, 20 Sep 2012 08:10:38 +0000 (01:10 -0700)

Documentation: Document signature showing options

The pretty formats for GPG signatures were introduced but never
documented. Use the documentation from the commit that introduced them.
Do the same for the --show-signature option added to git log and
friends.

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

Enable info/refs gzip decompression in HTTP clientShawn O. Pearce Wed, 19 Sep 2012 23:12:02 +0000 (16:12 -0700)

Enable info/refs gzip decompression in HTTP client

Some HTTP servers try to use gzip compression on the /info/refs
request to save transfer bandwidth. Repositories with many tags
may find the /info/refs request can be gzipped to be 50% of the
original size due to the few but often repeated bytes used (hex
SHA-1 and commonly digits in tag names).

For most HTTP requests enable "Accept-Encoding: gzip" ensuring
the /info/refs payload can use this encoding format.

Only request gzip encoding from servers. Although deflate is
supported by libcurl, most servers have standardized on gzip
encoding for compression as that is what most browsers support.
Asking for deflate increases request sizes by a few bytes, but is
unlikely to ever be used by a server.

Disable the Accept-Encoding header on probe RPCs as response bodies
are supposed to be exactly 4 bytes long, "0000". The HTTP headers
requesting and indicating compression use more space than the data
transferred in the body.

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

Revert "retry request without query when info/refs... Shawn O. Pearce Thu, 20 Sep 2012 05:58:00 +0000 (22:58 -0700)

Revert "retry request without query when info/refs?query fails"

This reverts commit 703e6e76a14825e5b0c960d525f34e607154b4f7.

Retrying without the query parameter was added as a workaround
for a single broken HTTP server at git.debian.org[1]. The server
was misconfigured to route every request with a query parameter
into gitweb.cgi. Admins fixed the server's configuration within
16 hours of the bug report to the Git mailing list, but we still
patched Git with this fallback and have been paying for it since.

Most Git hosting services configure the smart HTTP protocol and the
retry logic confuses users when there is a transient HTTP error as
Git dropped the real error from the smart HTTP request. Removing the
retry makes root causes easier to identify.

[1] http://thread.gmane.org/gmane.comp.version-control.git/137609

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

completion: fix shell expansion of itemsFelipe Contreras Thu, 20 Sep 2012 02:15:15 +0000 (04:15 +0200)

completion: fix shell expansion of items

As reported by Jeroen Meijer[1]; the current code doesn't deal properly
with items (tags, branches, etc.) that have ${} in them because they get
expaned by bash while using compgen.

A simple solution is to quote the items so they get expanded properly
(\$\{\}).

In order to achieve that I took bash-completion's quote() function,
which is rather simple, and renamed it to __git_quote() as per Jeff
King's suggestion.

Solves the original problem for me.

[1] http://article.gmane.org/gmane.comp.version-control.git/201596

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/Makefile: Allow custom XMLTO binaryDave Borowitz Wed, 19 Sep 2012 17:06:37 +0000 (10:06 -0700)

Documentation/Makefile: Allow custom XMLTO binary

Signed-off-by: Dave Borowitz <dborowitz@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Doc branch: show -vv option and alternativePhilip Oakley Tue, 18 Sep 2012 23:25:34 +0000 (00:25 +0100)

Doc branch: show -vv option and alternative

Indicate that the -v option can be given twice in the short options.
Without it users pass over the option. Also indicate the alternate
'git remote show' method.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Doc clean: add See Also linkPhilip Oakley Tue, 18 Sep 2012 23:25:33 +0000 (00:25 +0100)

Doc clean: add See Also link

'git clean' is controlled by gitignore. Provide See Also link for it.

Use of core.excludesfile is implied.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Doc add: link gitignorePhilip Oakley Tue, 18 Sep 2012 23:25:32 +0000 (00:25 +0100)

Doc add: link gitignore

Use a gitignore link rather than the gitrepository-
layout link.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Doc: separate gitignore pattern sourcesPhilip Oakley Tue, 18 Sep 2012 23:25:31 +0000 (00:25 +0100)

Doc: separate gitignore pattern sources

Use separate bulleted paragraphs for the three different gitignore
pattern sources.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Doc: shallow clone deepens _to_ new depthPhilip Oakley Tue, 18 Sep 2012 23:25:28 +0000 (00:25 +0100)

Doc: shallow clone deepens _to_ new depth

Clarify that 'depth=' specifies the new depth from the remote's
branch tip. It does not add the depth to the existing shallow clone.
(details from pack-protocol.txt).
Clarify that tags are not fetched. (details from shallow.txt)

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.12.1 v1.7.12.1Junio C Hamano Tue, 18 Sep 2012 21:34:31 +0000 (14:34 -0700)

Git 1.7.12.1

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

Merge branch 'er/doc-fast-import-done' into maintJunio C Hamano Tue, 18 Sep 2012 21:33:52 +0000 (14:33 -0700)

Merge branch 'er/doc-fast-import-done' into maint

* er/doc-fast-import-done:
fast-import: document the --done option

Merge branch 'jk/config-warn-on-inaccessible-paths... Junio C Hamano Tue, 18 Sep 2012 21:24:06 +0000 (14:24 -0700)

Merge branch 'jk/config-warn-on-inaccessible-paths' into maint

The attribute system may be asked for a path that itself or its
leading directories no longer exists in the working tree, and it is
fine if we cannot open .gitattribute file in such a case. Failure
to open per-directory .gitattributes with error status other than
ENOENT and ENOTDIR should be diagnosed.

* jk/config-warn-on-inaccessible-paths:
attr: failure to open a .gitattributes file is OK with ENOTDIR
warn_on_inaccessible(): a helper to warn on inaccessible paths
attr: warn on inaccessible attribute files
gitignore: report access errors of exclude files
config: warn on inaccessible files

t/test-lib: make sure Git has already been builtRamkumar Ramachandra Mon, 17 Sep 2012 17:06:19 +0000 (22:36 +0530)

t/test-lib: make sure Git has already been built

When tests were run without building git, they stopped with:

.: 54: Can't open /path/to/git/source/t/../GIT-BUILD-OPTIONS

Move the check that makes sure that git has already been built from
t0000 to test-lib, so that any test will do so before it runs.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Doc: Improve shallow depth wordingPhilip Oakley Sun, 16 Sep 2012 10:57:58 +0000 (11:57 +0100)

Doc: Improve shallow depth wording

Avoid confusion in compound sentence about the start of the commit set
and the depth measure. Use two sentences.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/git-filter-branch: Move note about effect... Andreas Schwab Tue, 18 Sep 2012 15:55:08 +0000 (17:55 +0200)

Documentation/git-filter-branch: Move note about effect of removing commits

The note that explains that changes introduced by removed commits are
preserved should be placed directly after the paragraph that describes
such commits removal. Otherwise the reference to "the commits" appears
out of context.

Also the big example that follows "Consider this history" is about
rewriting part of the history DAG. Move the paragraph that
describes the operation close to it.

Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

mailinfo: do not concatenate charset= attribute values... Junio C Hamano Mon, 17 Sep 2012 21:17:58 +0000 (14:17 -0700)

mailinfo: do not concatenate charset= attribute values from mime headers

"Content-type: text/plain; charset=UTF-8" header should not appear
twice in the input, but it is always better to gracefully deal with
such a case. The current code concatenates the value to the values
we have seen previously, producing nonsense such as "utf8UTF-8".

Instead of concatenating, forget the previous value and use the last
value we see.

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

t/perf: add "trash directory" to .gitignoreRamkumar Ramachandra Mon, 17 Sep 2012 17:06:18 +0000 (22:36 +0530)

t/perf: add "trash directory" to .gitignore

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add missing -z to git check-attr usage text for consist... Adam Spiers Mon, 17 Sep 2012 11:38:51 +0000 (12:38 +0100)

Add missing -z to git check-attr usage text for consistency with man page

Signed-off-by: Adam Spiers <git@adamspiers.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-jump: ignore (custom) prefix in diff modeMischa POSLAWSKY Mon, 17 Sep 2012 01:21:55 +0000 (03:21 +0200)

git-jump: ignore (custom) prefix in diff mode

Matching the default file prefix b/ does not yield any results if config
option diff.noprefix or diff.mnemonicprefix is enabled.

Signed-off-by: Mischa POSLAWSKY <git@shiar.nl>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: indent-with-non-tab uses "equivalent... Wesley J. Landaker Mon, 17 Sep 2012 14:22:15 +0000 (08:22 -0600)

Documentation: indent-with-non-tab uses "equivalent tabs" not 8

Update the documentation of the core.whitespace option
"indent-with-non-tab" to correctly reflect that it catches the use of
spaces instead of the equivalent tabs, rather than a fixed number.

Signed-off-by: Wesley J. Landaker <wjl@icecavern.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

completion: add --no-edit to git-commitYacine Belkadi Sun, 16 Sep 2012 16:06:11 +0000 (18:06 +0200)

completion: add --no-edit to git-commit

Signed-off-by: Yacine Belkadi <yacine.belkadi.1@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7810-grep: test --all-match with multiple --grep and... Michael J Gruber Fri, 14 Sep 2012 09:46:43 +0000 (11:46 +0200)

t7810-grep: test --all-match with multiple --grep and --author options

The code used to have a bug that ignores "--all-match", that requires
all "--grep" to have matched, when "--author" or "--committer" was used.

Make sure the bug will not be reintroduced.

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

t7810-grep: test interaction of multiple --grep and... Michael J Gruber Fri, 14 Sep 2012 09:46:42 +0000 (11:46 +0200)

t7810-grep: test interaction of multiple --grep and --author options

There are tests for this interaction already. Restructure slightly and
avoid any claims about --all-match.

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

t7810-grep: test multiple --author with --all-matchMichael J Gruber Fri, 14 Sep 2012 09:46:41 +0000 (11:46 +0200)

t7810-grep: test multiple --author with --all-match

The "--all-match" option is about "--grep", and does not affect how
"--author" or "--committer" limitation is applied.

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

t7810-grep: test multiple --grep with and without ... Michael J Gruber Fri, 14 Sep 2012 09:46:40 +0000 (11:46 +0200)

t7810-grep: test multiple --grep with and without --all-match

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

t7810-grep: bring log --grep tests in common formMichael J Gruber Fri, 14 Sep 2012 09:46:39 +0000 (11:46 +0200)

t7810-grep: bring log --grep tests in common form

The log --grep tests generate the expected out in different ways.
Make them all use command blocks so that subshells are avoided and the
expected output is easier to grasp visually.

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

grep.c: mark private file-scope symbols as staticJunio C Hamano Sat, 15 Sep 2012 21:04:36 +0000 (14:04 -0700)

grep.c: mark private file-scope symbols as static

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

Draft release notes to 1.7.12.1Junio C Hamano Sat, 15 Sep 2012 04:37:51 +0000 (21:37 -0700)

Draft release notes to 1.7.12.1

We are almost there...

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

Merge branch 'sb/send-email-reconfirm-fix' into maintJunio C Hamano Sat, 15 Sep 2012 04:32:07 +0000 (21:32 -0700)

Merge branch 'sb/send-email-reconfirm-fix' into maint

* sb/send-email-reconfirm-fix:
send-email: initial_to and initial_reply_to are both optional

Merge branch 'jc/send-email-reconfirm' into maintJunio C Hamano Sat, 15 Sep 2012 04:32:01 +0000 (21:32 -0700)

Merge branch 'jc/send-email-reconfirm' into maint

* jc/send-email-reconfirm:
send-email: validate & reconfirm interactive responses

Merge branch 'mz/cherry-pick-cmdline-order' into maintJunio C Hamano Sat, 15 Sep 2012 04:24:18 +0000 (21:24 -0700)

Merge branch 'mz/cherry-pick-cmdline-order' into maint

* mz/cherry-pick-cmdline-order:
cherry-pick/revert: respect order of revisions to pick
demonstrate broken 'git cherry-pick three one two'
teach log --no-walk=unsorted, which avoids sorting

Sync with 1.7.11.7Junio C Hamano Sat, 15 Sep 2012 04:20:40 +0000 (21:20 -0700)

Sync with 1.7.11.7

Git 1.7.11.7 v1.7.11.7Junio C Hamano Sat, 15 Sep 2012 03:57:23 +0000 (20:57 -0700)

Git 1.7.11.7

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

Merge branch 'jk/maint-quiet-is-synonym-to-s-in-log... Junio C Hamano Sat, 15 Sep 2012 03:48:31 +0000 (20:48 -0700)

Merge branch 'jk/maint-quiet-is-synonym-to-s-in-log' into maint-1.7.11

* jk/maint-quiet-is-synonym-to-s-in-log:
log: fix --quiet synonym for -s

Merge branch 'jc/maint-ident-missing-human-name' into... Junio C Hamano Sat, 15 Sep 2012 03:48:22 +0000 (20:48 -0700)

Merge branch 'jc/maint-ident-missing-human-name' into maint-1.7.11

* jc/maint-ident-missing-human-name:
split_ident_line(): make best effort when parsing author/committer line