git.git
12 years agorebase: Handle cases where format-patch fails
Andrew Wong [Thu, 11 Oct 2012 03:54:03 +0000 (23:54 -0400)]
rebase: Handle cases where format-patch fails

'format-patch' could fail due to reasons such as out of memory. Such
failures are not detected or handled, which causes rebase to incorrectly
think that it completed successfully and continue with cleanup. i.e.
calling move_to_original_branch

Instead of using a pipe, we separate 'format-patch' and 'am' by using an
intermediate file. This gurantees that we can invoke 'am' with the
complete input, or not invoking 'am' at all if 'format-patch' failed.

Also remove the use of '&&' at the end of the if-block, and rearrange
the 'write_basic_state' and 'move_to_original_branch' to make the logic
flow a bit better and easier to read.

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoattr: a note about the order of .gitattributes lookup
Nguyen 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>
12 years agoMerge branch 'maint' of git://github.com/git-l10n/git-po into maint
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

12 years agoGit 1.7.12.3 v1.7.12.3
Junio 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>
12 years agoMerge branch 'os/commit-submodule-ignore' into maint
Junio 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

12 years agoMerge branch 'jk/receive-pack-unpack-error-to-pusher' into maint
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

12 years agoMerge branch 'rt/maint-clone-single' into maint
Junio 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

12 years agoMerge branch 'jc/blame-follows-renames' into maint
Junio 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

12 years agoMerge branch 'lt/mailinfo-handle-attachment-more-sanely' into maint
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

12 years agol10n: de.po: fix a few minor typos
Simon 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>
12 years agoStart preparing for 1.7.12.3
Junio 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>
12 years agoMerge branch 'rr/maint-submodule-unknown-cmd' into maint
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

12 years agoMerge branch 'sp/maint-http-enable-gzip' into maint
Junio 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

12 years agoMerge branch 'sp/maint-http-info-refs-no-retry' into maint
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"

12 years agol10n: Fix to Swedish translation
Peter 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>
12 years agomailinfo: don't require "text" mime type for attachments
Linus 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>
12 years agoGit 1.7.12.2 v1.7.12.2
Junio 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>
12 years agoMerge branch 'maint' of git://github.com/git-l10n/git-po into maint
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'

12 years agoMerge branch 'jc/maint-log-grep-all-match-1' into maint
Junio 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

12 years agoMerge branch 'jc/maint-mailinfo-mime-attr' into maint
Junio 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

12 years agoMerge branch 'l10n-thynson' of git://github.com/thynson/git-po-zh_CN into maint
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'

12 years agoMerge branch 'maint' of https://github.com/ralfth/git-po-de into maint
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

12 years agol10n: de.po: correct translation of a 'rebase' message
Ralf 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>
12 years agosubmodule: if $command was not matched, don't parse other args
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>
12 years agoRevert "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>
12 years agoStart preparation for 1.7.12.2
Junio 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>
12 years agoMerge branch 'jc/maint-blame-no-such-path' into maint
Junio 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

12 years agoMerge branch 'dj/fetch-all-tags' into maint
Junio 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

12 years agoImprove the description of GIT_PS1_SHOWUPSTREAM
Jonathan "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>
12 years agocommit: pay attention to submodule.$name.ignore in .gitmodules
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>
12 years agogit blame: document that it always follows origin across whole-file renames
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>
12 years agoreceive-pack: drop "n/a" on unpacker errors
Jeff 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>
12 years agoreceive-pack: send pack-processing stderr over sideband
Jeff 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>
12 years agoreceive-pack: redirect unpack-objects stdout to /dev/null
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>
12 years agoMerge branch 'nd/maint-diffstat-summary' into maint
Junio 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

12 years agoMerge branch 'jw/doc-commit-title' into maint
Junio 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

12 years agoMerge branch 'dg/run-command-child-cleanup' into maint
Junio 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

12 years agoMerge branch 'jc/mailinfo-RE' into maint
Junio 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

12 years agoMerge branch 'sn/ls-remote-get-url-doc' into maint
Junio 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

12 years agoMerge branch 'nd/log-n-doc' into maint
Junio 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

12 years agoMerge branch 'nd/maint-remote-remove' into maint
Junio 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'

12 years agogrep.c: make two symbols really file-scope static this time
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>
12 years agoclone --single: limit the fetch refspec to fetched branch
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>
12 years agoDocumentation: Document signature showing options
Stephen 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>
12 years agoEnable info/refs gzip decompression in HTTP client
Shawn 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>
12 years agoRevert "retry request without query when info/refs?query fails"
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>
12 years agocompletion: fix shell expansion of items
Felipe 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>
12 years agoGit 1.7.12.1 v1.7.12.1
Junio 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>
12 years agoMerge branch 'er/doc-fast-import-done' into maint
Junio 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

12 years agoMerge branch 'jk/config-warn-on-inaccessible-paths' into maint
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

12 years agoDoc: Improve shallow depth wording
Philip 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>
12 years agoDocumentation/git-filter-branch: Move note about effect of removing commits
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>
12 years agomailinfo: do not concatenate charset= attribute values from mime headers
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>
12 years agot/perf: add "trash directory" to .gitignore
Ramkumar 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>
12 years agoAdd missing -z to git check-attr usage text for consistency with man page
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>
12 years agogit-jump: ignore (custom) prefix in diff mode
Mischa 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>
12 years agoDocumentation: indent-with-non-tab uses "equivalent tabs" not 8
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>
12 years agocompletion: add --no-edit to git-commit
Yacine 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>
12 years agot7810-grep: test --all-match with multiple --grep and --author options
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>
12 years agot7810-grep: test interaction of multiple --grep and --author options
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>
12 years agot7810-grep: test multiple --author with --all-match
Michael 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>
12 years agot7810-grep: test multiple --grep with and without --all-match
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>
12 years agot7810-grep: bring log --grep tests in common form
Michael 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>
12 years agogrep.c: mark private file-scope symbols as static
Junio 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>
12 years agoDraft release notes to 1.7.12.1
Junio 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>
12 years agoMerge branch 'sb/send-email-reconfirm-fix' into maint
Junio 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

12 years agoMerge branch 'jc/send-email-reconfirm' into maint
Junio 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

12 years agoMerge branch 'mz/cherry-pick-cmdline-order' into maint
Junio 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

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

12 years agoGit 1.7.11.7 v1.7.11.7
Junio 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>
12 years agoMerge branch 'jk/maint-quiet-is-synonym-to-s-in-log' into maint-1.7.11
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

12 years agoMerge branch 'jc/maint-ident-missing-human-name' into maint-1.7.11
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

12 years agoMerge branch 'rj/test-regex' into maint-1.7.11
Junio C Hamano [Sat, 15 Sep 2012 03:46:39 +0000 (20:46 -0700)]
Merge branch 'rj/test-regex' into maint-1.7.11

* rj/test-regex:
  test-regex: Add a test to check for a bug in the regex routines

12 years agoMerge branch 'da/gitk-reload-tag-contents' into maint-1.7.11
Junio C Hamano [Sat, 15 Sep 2012 03:45:55 +0000 (20:45 -0700)]
Merge branch 'da/gitk-reload-tag-contents' into maint-1.7.11

* da/gitk-reload-tag-contents:
  gitk: Rename 'tagcontents' to 'cached_tagcontent'
  gitk: Teach "Reread references" to reload tags
  gitk: Avoid Meta1-F5

12 years agoMerge branch 'jc/maint-checkout-fileglob-doc' into maint-1.7.11
Junio C Hamano [Sat, 15 Sep 2012 03:45:03 +0000 (20:45 -0700)]
Merge branch 'jc/maint-checkout-fileglob-doc' into maint-1.7.11

* jc/maint-checkout-fileglob-doc:
  gitcli: contrast wildcard given to shell and to git
  gitcli: formatting fix
  Document file-glob for "git checkout -- '*.c'"

12 years agolog: document use of multiple commit limiting options
Junio C Hamano [Fri, 14 Sep 2012 01:54:30 +0000 (18:54 -0700)]
log: document use of multiple commit limiting options

Generally speaking, using more options will further narrow the
selection, but there are a few exceptions.  Document them.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agolog --grep/--author: honor --all-match honored for multiple --grep patterns
Junio C Hamano [Thu, 13 Sep 2012 23:26:57 +0000 (16:26 -0700)]
log --grep/--author: honor --all-match honored for multiple --grep patterns

When we have both header expression (which has to be an OR node by
construction) and a pattern expression (which could be anything), we
create a new top-level OR node to bind them together, and the
resulting expression structure looks like this:

             OR
        /          \
       /            \
   pattern            OR
     / \           /     \
    .....    committer    OR
                         /   \
                     author   TRUE

The three elements on the top-level backbone that are inspected by
the "all-match" logic are "pattern", "committer" and "author".  When
there are more than one elements in the "pattern", the top-level
node of the "pattern" part of the subtree is an OR, and that node is
inspected by "all-match".

The result ends up ignoring the "--all-match" given from the command
line.  A match on either side of the pattern is considered a match,
hence:

        git log --grep=A --grep=B --author=C --all-match

shows the same "authored by C and has either A or B" that is correct
only when run without "--all-match".

Fix this by turning the resulting expression around when "--all-match"
is in effect, like this:

              OR
          /        \
         /          \
        /              OR
    committer        /    \
                 author    \
                           pattern

The set of nodes on the top-level backbone in the resulting
expression becomes "committer", "author", and the nodes that are on
the top-level backbone of the "pattern" subexpression.  This makes
the "all-match" logic inspect the same nodes in "pattern" as the
case without the author and/or the committer restriction, and makes
the earlier "log" example to show "authored by C and has A and has
B", which is what the command line expects.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogrep: show --debug output only once
Michael J Gruber [Fri, 14 Sep 2012 09:46:35 +0000 (11:46 +0200)]
grep: show --debug output only once

When threaded grep is in effect, the patterns are duplicated and
recompiled for each thread. Avoid "--debug" output during the
recompilation so that the output is given once instead of "1+nthreads"
times.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agogrep: teach --debug option to dump the parse tree
Junio C Hamano [Thu, 13 Sep 2012 21:21:44 +0000 (14:21 -0700)]
grep: teach --debug option to dump the parse tree

Our "grep" allows complex boolean expressions to be formed to match
each individual line with operators like --and, '(', ')' and --not.
Introduce the "--debug" option to show the parse tree to help people
who want to debug and enhance it.

Also "log" learns "--grep-debug" option to do the same.  The command
line parser to the log family is a lot more limited than the general
"git grep" parser, but it has special handling for header matching
(e.g. "--author"), and a parse tree is valuable when working on it.

Note that "--all-match" is *not* any individual node in the parse
tree.  It is an instruction to the evaluator to check all the nodes
in the top-level backbone have matched and reject a document as
non-matching otherwise.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoRevert diffstat back to English
Nguyễn Thái Ngọc Duy [Thu, 13 Sep 2012 14:16:26 +0000 (21:16 +0700)]
Revert diffstat back to English

This reverts the i18n part of 7f81463 (Use correct grammar in diffstat
summary line - 2012-02-01) but still keeps the grammar correctness for
English. It also reverts b354f11 (Fix tests under GETTEXT_POISON on
diffstat - 2012-08-27). The result is diffstat always in English
for all commands.

This helps stop users from accidentally sending localized
format-patch'd patches.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoattr: failure to open a .gitattributes file is OK with ENOTDIR
Junio C Hamano [Thu, 13 Sep 2012 19:40:39 +0000 (12:40 -0700)]
attr: failure to open a .gitattributes file is OK with ENOTDIR

Often we consult an in-tree .gitattributes file that exists per
directory.  Majority of directories do not usually have such a file,
and it is perfectly fine if we cannot open it because there is no
such file, but we do want to know when there is an I/O or permission
error.  Earlier, we made the codepath warn when we fail to open it
for reasons other than ENOENT for that reason.

We however sometimes have to attempt to open the .gitattributes file
from a directory that does not exist in the commit that is currently
checked out.  "git pack-objects" wants to know if a path is marked
with "-delta" attributes, and "git archive" wants to know about
export-ignore and export-subst attributes.  Both commands may and do
need to ask the attributes system about paths in an arbitrary
commit.  "git diff", after removing an entire directory, may want to
know textconv on paths that used to be in that directory.

Make sure we also ignore a failure to open per-directory attributes
file due to ENOTDIR.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoDocumentation: describe subject more precisely
Jeremy White [Thu, 13 Sep 2012 22:27:09 +0000 (17:27 -0500)]
Documentation: describe subject more precisely

The discussion of email subject throughout the documentation is
misleading; it indicates that the first line will always become
the subject.  In fact, the subject is generally all lines up until
the first full blank line.

This patch refines that, and makes more use of the concept of a
commit title, with the title being all text up to the first blank line.

Signed-off-by: Jeremy White <jwhite@codeweavers.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoFurther merging in preparation for 1.7.12.1
Junio C Hamano [Wed, 12 Sep 2012 21:10:54 +0000 (14:10 -0700)]
Further merging in preparation for 1.7.12.1

Describe the following in the draft release notes:

 . jc/apply-binary-p0
 . jc/dotdot-is-parent-directory
 . jc/maint-doc-checkout-b-always-takes-branch-name
 . jk/maint-http-half-auth-push
 . kk/maint-for-each-ref-multi-sort

Yet to be merged before 1.7.12.1 are:

 . jk/config-warn-on-inaccessible-paths
 . jk/maint-quiet-is-synonym-to-s-in-log
 . mz/cherry-pick-cmdline-order

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'maint-1.7.11' into maint
Junio C Hamano [Wed, 12 Sep 2012 21:08:05 +0000 (14:08 -0700)]
Merge branch 'maint-1.7.11' into maint

12 years agoMerge branch 'jc/apply-binary-p0' into maint-1.7.11
Junio C Hamano [Wed, 12 Sep 2012 21:00:52 +0000 (14:00 -0700)]
Merge branch 'jc/apply-binary-p0' into maint-1.7.11

"git apply -p0" did not parse pathnames on "diff --git" line
correctly.  This caused patches that had pathnames in no other
places to be mistakenly rejected (most notably, binary patch that
does not rename nor change mode).  Textual patches, renames or mode
changes have preimage and postimage pathnames in different places in
a form that can be parsed unambiguously and did not suffer from this
problem.

* jc/apply-binary-p0:
  apply: compute patch->def_name correctly under -p0

12 years agoMerge branch 'jc/dotdot-is-parent-directory' into maint-1.7.11
Junio C Hamano [Wed, 12 Sep 2012 21:00:34 +0000 (14:00 -0700)]
Merge branch 'jc/dotdot-is-parent-directory' into maint-1.7.11

"git log .." errored out saying it is both rev range and a path when
there is no disambiguating "--" is on the command line.  Update the
command line parser to interpret ".." as a path in such a case.

* jc/dotdot-is-parent-directory:
  specifying ranges: we did not mean to make ".." an empty set

12 years agoMerge branch 'jc/maint-doc-checkout-b-always-takes-branch-name' into maint-1.7.11
Junio C Hamano [Wed, 12 Sep 2012 20:59:58 +0000 (13:59 -0700)]
Merge branch 'jc/maint-doc-checkout-b-always-takes-branch-name' into maint-1.7.11

The synopsis said "checkout [-B branch]" to make it clear the
branch name is a parameter to the option, but the heading for the
option description was "-B::", not "-B branch::", making the
documentation misleading.

* jc/maint-doc-checkout-b-always-takes-branch-name:
  doc: "git checkout -b/-B/--orphan" always takes a branch name

12 years agoMerge branch 'jk/maint-http-half-auth-push' into maint-1.7.11
Junio C Hamano [Wed, 12 Sep 2012 20:58:22 +0000 (13:58 -0700)]
Merge branch 'jk/maint-http-half-auth-push' into maint-1.7.11

Pushing to smart HTTP server with recent Git fails without having
the username in the URL to force authentication, if the server is
configured to allow GET anonymously, while requiring authentication
for POST.

* jk/maint-http-half-auth-push:
  http: prompt for credentials on failed POST
  http: factor out http error code handling
  t: test http access to "half-auth" repositories
  t: test basic smart-http authentication
  t/lib-httpd: recognize */smart/* repos as smart-http
  t/lib-httpd: only route auth/dumb to dumb repos
  t5550: factor out http auth setup
  t5550: put auth-required repo in auth/dumb

12 years agoMerge branch 'kk/maint-for-each-ref-multi-sort' into maint-1.7.11
Junio C Hamano [Wed, 12 Sep 2012 20:57:43 +0000 (13:57 -0700)]
Merge branch 'kk/maint-for-each-ref-multi-sort' into maint-1.7.11

"git for-each-ref" did not honor multiple "--sort=<key>" arguments
correctly.

* kk/maint-for-each-ref-multi-sort:
  for-each-ref: Fix sort with multiple keys
  t6300: test sort with multiple keys

12 years agoblame: allow "blame file" in the middle of a conflicted merge
Junio C Hamano [Tue, 11 Sep 2012 21:30:03 +0000 (14:30 -0700)]
blame: allow "blame file" in the middle of a conflicted merge

"git blame file" has always meant "find the origin of each line of
the file in the history leading to HEAD, oh by the way, blame the
lines that are modified locally to the working tree".

This teaches "git blame" that during a conflicted merge, some
uncommitted changes may have come from the other history that is
being merged.

The verify_working_tree_path() function introduced in the previous
patch to notice a typo in the filename (primarily on case insensitive
filesystems) has been updated to allow a filename that does not exist
in HEAD (i.e. the tip of our history) as long as it exists one of the
commits being merged, so that a "we deleted, the other side modified"
case tracks the history of the file in the history of the other side.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoFurther merging down for 1.7.12.1
Junio C Hamano [Tue, 11 Sep 2012 18:27:35 +0000 (11:27 -0700)]
Further merging down for 1.7.12.1

We will wait for a handful of other fixes that have graduated to the
'master' for 1.8.0 to be tested in the wild and then tag 1.7.12.1:

 . mz/cherry-pick-cmdline-order
 . jk/maint-quiet-is-synonym-to-s-in-log
 . jk/maint-http-half-auth-push
 . jc/apply-binary-p0
 . jk/config-warn-on-inaccessible-paths
 . kk/maint-for-each-ref-multi-sort

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoSync with 1.7.11.6
Junio C Hamano [Tue, 11 Sep 2012 18:23:45 +0000 (11:23 -0700)]
Sync with 1.7.11.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'js/use-sc-open-max' into maint
Junio C Hamano [Tue, 11 Sep 2012 18:23:06 +0000 (11:23 -0700)]
Merge branch 'js/use-sc-open-max' into maint

* js/use-sc-open-max:
  sha1_file.c: introduce get_max_fd_limit() helper

12 years agoMerge branch 'js/no-curl-easy-strerror-on-old-curl' into maint
Junio C Hamano [Tue, 11 Sep 2012 18:22:58 +0000 (11:22 -0700)]
Merge branch 'js/no-curl-easy-strerror-on-old-curl' into maint

* js/no-curl-easy-strerror-on-old-curl:
  http.c: don't use curl_easy_strerror prior to curl-7.12.0

12 years agoGit 1.7.11.6 v1.7.11.6
Junio C Hamano [Tue, 11 Sep 2012 18:18:48 +0000 (11:18 -0700)]
Git 1.7.11.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 years agoMerge branch 'jc/maint-mergetool-style-fix' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 18:10:23 +0000 (11:10 -0700)]
Merge branch 'jc/maint-mergetool-style-fix' into maint-1.7.11

* jc/maint-mergetool-style-fix:
  mergetool: style fixes

12 years agoMerge branch 'sz/submodule-force-update' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 18:10:17 +0000 (11:10 -0700)]
Merge branch 'sz/submodule-force-update' into maint-1.7.11

* sz/submodule-force-update:
  Make 'git submodule update --force' always check out submodules.

12 years agoMerge branch 'ph/stash-rerere' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 18:10:12 +0000 (11:10 -0700)]
Merge branch 'ph/stash-rerere' into maint-1.7.11

* ph/stash-rerere:
  stash: invoke rerere in case of conflict
  test: git-stash conflict sets up rerere

12 years agoMerge branch 'jc/maint-sane-execvp-notdir' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 18:09:19 +0000 (11:09 -0700)]
Merge branch 'jc/maint-sane-execvp-notdir' into maint-1.7.11

* jc/maint-sane-execvp-notdir:
  sane_execvp(): ignore non-directory on $PATH

12 years agoMerge branch 'jc/maint-config-exit-status' into maint-1.7.11
Junio C Hamano [Tue, 11 Sep 2012 18:09:09 +0000 (11:09 -0700)]
Merge branch 'jc/maint-config-exit-status' into maint-1.7.11

* jc/maint-config-exit-status:
  config: "git config baa" should exit with status 1