]> git.ipfire.org Git - thirdparty/git.git/log
thirdparty/git.git
10 years agohttp: hoist credential request out of handle_curl_result
Jeff King [Sat, 28 Sep 2013 08:31:45 +0000 (04:31 -0400)] 
http: hoist credential request out of handle_curl_result

When we are handling a curl response code in http_request or
in the remote-curl RPC code, we use the handle_curl_result
helper to translate curl's response into an easy-to-use
code. When we see an HTTP 401, we do one of two things:

  1. If we already had a filled-in credential, we mark it as
     rejected, and then return HTTP_NOAUTH to indicate to
     the caller that we failed.

  2. If we didn't, then we ask for a new credential and tell
     the caller HTTP_REAUTH to indicate that they may want
     to try again.

Rejecting in the first case makes sense; it is the natural
result of the request we just made. However, prompting for
more credentials in the second step does not always make
sense. We do not know for sure that the caller is going to
make a second request, and nor are we sure that it will be
to the same URL. Logically, the prompt belongs not to the
request we just finished, but to the request we are (maybe)
about to make.

In practice, it is very hard to trigger any bad behavior.
Currently, if we make a second request, it will always be to
the same URL (even in the face of redirects, because curl
handles the redirects internally). And we almost always
retry on HTTP_REAUTH these days. The one exception is if we
are streaming a large RPC request to the server (e.g., a
pushed packfile), in which case we cannot restart. It's
extremely unlikely to see a 401 response at this stage,
though, as we would typically have seen it when we sent a
probe request, before streaming the data.

This patch drops the automatic prompt out of case 2, and
instead requires the caller to do it. This is a few extra
lines of code, and the bug it fixes is unlikely to come up
in practice. But it is conceptually cleaner, and paves the
way for better handling of credentials across redirects.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
10 years agohttp: refactor options to http_get_*
Jeff King [Sat, 28 Sep 2013 08:31:23 +0000 (04:31 -0400)] 
http: refactor options to http_get_*

Over time, the http_get_strbuf function has grown several
optional parameters. We now have a bitfield with multiple
boolean options, as well as an optional strbuf for returning
the content-type of the response. And a future patch in this
series is going to add another strbuf option.

Treating these as separate arguments has a few downsides:

  1. Most call sites need to add extra NULLs and 0s for the
     options they aren't interested in.

  2. The http_get_* functions are actually wrappers around
     2 layers of low-level implementation functions. We have
     to pass these options through individually.

  3. The http_get_strbuf wrapper learned these options, but
     nobody bothered to do so for http_get_file, even though
     it is backed by the same function that does understand
     the options.

Let's consolidate the options into a single struct. For the
common case of the default options, we'll allow callers to
simply pass a NULL for the options struct.

The resulting code is often a few lines longer, but it ends
up being easier to read (and to change as we add new
options, since we do not need to update each call site).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
10 years agohttp_request: factor out curlinfo_strbuf
Jeff King [Sat, 28 Sep 2013 08:31:11 +0000 (04:31 -0400)] 
http_request: factor out curlinfo_strbuf

When we retrieve the content-type of an http response, curl
gives us a pointer to internal storage, which we then copy
into a strbuf. Let's factor out the get-and-copy routine,
which can be used for getting other curl info.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
10 years agohttp_get_file: style fixes
Jeff King [Sat, 28 Sep 2013 08:31:00 +0000 (04:31 -0400)] 
http_get_file: style fixes

Besides being ugly, the extra parentheses are idiomatic for
suppressing compiler warnings when we are assigning within a
conditional. We aren't doing that here, and they just
confuse the reader.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
10 years agoGit 1.8.4.1 v1.8.4.1
Jonathan Nieder [Thu, 26 Sep 2013 22:01:41 +0000 (15:01 -0700)] 
Git 1.8.4.1

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
10 years agoMerge branch 'mm/rebase-continue-freebsd-WB' into maint
Jonathan Nieder [Thu, 26 Sep 2013 19:41:14 +0000 (12:41 -0700)] 
Merge branch 'mm/rebase-continue-freebsd-WB' into maint

* mm/rebase-continue-freebsd-WB:
  rebase: fix run_specific_rebase's use of "return" on FreeBSD

10 years agoMerge branch 'km/svn-1.8-serf-only' into maint
Jonathan Nieder [Thu, 26 Sep 2013 19:34:23 +0000 (12:34 -0700)] 
Merge branch 'km/svn-1.8-serf-only' into maint

* km/svn-1.8-serf-only:
  Git.pm: revert _temp_cache use of temp_is_locked
  git-svn: allow git-svn fetching to work using serf
  Git.pm: add new temp_is_locked function

10 years agoMerge branch 'js/xread-in-full' into maint
Jonathan Nieder [Thu, 26 Sep 2013 19:30:44 +0000 (12:30 -0700)] 
Merge branch 'js/xread-in-full' into maint

* js/xread-in-full:
  stream_to_pack: xread does not guarantee to read all requested bytes

10 years agoMerge branch 'bc/send-email-ssl-die-message-fix' into maint
Jonathan Nieder [Thu, 26 Sep 2013 19:27:29 +0000 (12:27 -0700)] 
Merge branch 'bc/send-email-ssl-die-message-fix' into maint

* bc/send-email-ssl-die-message-fix:
  send-email: don't call methods on undefined values

10 years agogit-remote-mediawiki: bugfix for pages w/ >500 revisions
Benoit Person [Tue, 24 Sep 2013 19:32:30 +0000 (21:32 +0200)] 
git-remote-mediawiki: bugfix for pages w/ >500 revisions

Mediawiki introduces a new API for queries w/ more than 500 results in
version 1.21. That change triggered an infinite loop while cloning a
mediawiki with such a page.

The latest API renamed and moved the "continuing" information in the
response, necessary to build the next query. The code failed to retrieve
that information but still detected that it was in a "continuing
query". As a result, it launched the same query over and over again.

If a "continuing" information is detected in the response (old or new),
the next query is updated accordingly. If not, we quit assuming it's not
a continuing query.

Reported-by: Benjamin Cathey
Signed-off-by: Benoit Person <benoit.person@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
10 years agoStart preparing for 1.8.4.1
Junio C Hamano [Wed, 18 Sep 2013 19:08:09 +0000 (12:08 -0700)] 
Start preparing for 1.8.4.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge branch 'bc/completion-for-bash-3.0' into maint
Junio C Hamano [Wed, 18 Sep 2013 19:00:11 +0000 (12:00 -0700)] 
Merge branch 'bc/completion-for-bash-3.0' into maint

Some people still use rather old versions of bash, which cannot grok
some constructs like 'printf -v varname' the prompt and completion
code started to use recently.

* bc/completion-for-bash-3.0:
  contrib/git-prompt.sh: handle missing 'printf -v' more gracefully
  t9902-completion.sh: old Bash still does not support array+=('') notation
  git-completion.bash: use correct Bash/Zsh array length syntax

10 years agoMerge branch 'mm/no-shell-escape-in-die-message' into maint
Junio C Hamano [Wed, 18 Sep 2013 18:59:50 +0000 (11:59 -0700)] 
Merge branch 'mm/no-shell-escape-in-die-message' into maint

Fixes a minor bug in "git rebase -i" (there could be others, as the
root cause is pretty generic) where the code feeds a random, data
dependeant string to 'echo' and expects it to come out literally.

* mm/no-shell-escape-in-die-message:
  die_with_status: use "printf '%s\n'", not "echo"

10 years agoMerge branch 'jl/some-submodule-config-are-not-boolean' into maint
Junio C Hamano [Wed, 18 Sep 2013 18:59:35 +0000 (11:59 -0700)] 
Merge branch 'jl/some-submodule-config-are-not-boolean' into maint

* jl/some-submodule-config-are-not-boolean:
  avoid segfault on submodule.*.path set to an empty "true"

10 years agoMerge branch 'tr/log-full-diff-keep-true-parents' into maint
Junio C Hamano [Wed, 18 Sep 2013 18:59:05 +0000 (11:59 -0700)] 
Merge branch 'tr/log-full-diff-keep-true-parents' into maint

Output from "git log --full-diff -- <pathspec>" looked strange,
because comparison was done with the previous ancestor that touched
the specified <pathspec>, causing the patches for paths outside the
pathspec to show more than the single commit has changed.

* tr/log-full-diff-keep-true-parents:
  log: use true parents for diff when walking reflogs
  log: use true parents for diff even when rewriting

10 years agoMerge branch 'jc/transport-do-not-use-connect-twice-in-fetch' into maint
Junio C Hamano [Wed, 18 Sep 2013 18:58:18 +0000 (11:58 -0700)] 
Merge branch 'jc/transport-do-not-use-connect-twice-in-fetch' into maint

The auto-tag-following code in "git fetch" tries to reuse the same
transport twice when the serving end does not cooperate and does
not give tags that point to commits that are asked for as part of
the primary transfer.  Unfortunately, Git-aware transport helper
interface is not designed to be used more than once, hence this
does not work over smart-http transfer.

* jc/transport-do-not-use-connect-twice-in-fetch:
  builtin/fetch.c: Fix a sparse warning
  fetch: work around "transport-take-over" hack
  fetch: refactor code that fetches leftover tags
  fetch: refactor code that prepares a transport
  fetch: rename file-scope global "transport" to "gtransport"
  t5802: add test for connect helper

10 years agoMerge branch 'sp/clip-read-write-to-8mb' into maint
Junio C Hamano [Wed, 18 Sep 2013 18:57:58 +0000 (11:57 -0700)] 
Merge branch 'sp/clip-read-write-to-8mb' into maint

Send a large request to read(2)/write(2) as a smaller but still
reasonably large chunks, which would improve the latency when the
operation needs to be killed and incidentally works around broken
64-bit systems that cannot take a 2GB write or read in one go.

* sp/clip-read-write-to-8mb:
  Revert "compat/clipped-write.c: large write(2) fails on Mac OS X/XNU"
  xread, xwrite: limit size of IO to 8MB

10 years agoMerge branch 'jk/mailmap-incomplete-line' into maint
Junio C Hamano [Wed, 18 Sep 2013 18:57:32 +0000 (11:57 -0700)] 
Merge branch 'jk/mailmap-incomplete-line' into maint

* jk/mailmap-incomplete-line:
  mailmap: handle mailmap blobs without trailing newlines

10 years agot7406-submodule-update: add missing &&
Tay Ray Chuan [Sun, 15 Sep 2013 17:38:21 +0000 (01:38 +0800)] 
t7406-submodule-update: add missing &&

322bb6e (2011 Aug 11) introduced a new subshell at the end of a test
case but omitted a '&&' to join the two; fix this.

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge branch 'maint' of git://github.com/git-l10n/git-po into maint
Junio C Hamano [Thu, 12 Sep 2013 04:12:02 +0000 (21:12 -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: use "das Tag" instead of "der Tag"

10 years agosend-email: don't call methods on undefined values
Brian M. Carlson [Sun, 8 Sep 2013 20:54:34 +0000 (20:54 +0000)] 
send-email: don't call methods on undefined values

If SSL verification is enabled in git send-email, we could attempt to call a
method on an undefined value if the verification failed, since $smtp would end
up being undef.  Look up the error string in a way that will produce a helpful
error message and not cause further errors.

Signed-off-by: Brian M. Carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agorebase: fix run_specific_rebase's use of "return" on FreeBSD
Matthieu Moy [Mon, 9 Sep 2013 08:53:15 +0000 (10:53 +0200)] 
rebase: fix run_specific_rebase's use of "return" on FreeBSD

Since a1549e10, git-rebase--am.sh uses the shell's "return" statement, to
mean "return from the current file inclusion", which is POSIXly correct,
but badly interpreted on FreeBSD, which returns from the current
function, hence skips the finish_rebase statement that follows the file
inclusion.

Make the use of "return" portable by using the file inclusion as the last
statement of a function.

Reported-by: Christoph Mallon <christoph.mallon@gmx.de>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agol10n: de.po: use "das Tag" instead of "der Tag"
Ralf Thielow [Sun, 8 Sep 2013 14:28:36 +0000 (16:28 +0200)] 
l10n: de.po: use "das Tag" instead of "der Tag"

Use "das Tag" to avoid confusion with the German word "Tag" (day).

Reported-by: Dirk Heinrichs <dirk.heinrichs@altum.de>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
10 years agoMerge branch 'nd/fetch-pack-shallow-fix' into maint
Junio C Hamano [Thu, 5 Sep 2013 21:40:58 +0000 (14:40 -0700)] 
Merge branch 'nd/fetch-pack-shallow-fix' into maint

The recent "short-cut clone connectivity check" topic broke a shallow
repository when a fetch operation tries to auto-follow tags.

* nd/fetch-pack-shallow-fix:
  fetch-pack: do not remove .git/shallow file when --depth is not specified

10 years agoMerge branch 'hv/config-from-blob' into maint
Junio C Hamano [Thu, 5 Sep 2013 21:40:18 +0000 (14:40 -0700)] 
Merge branch 'hv/config-from-blob' into maint

Compilation fix on platforms with fgetc() and friends defined as
macros.

* hv/config-from-blob:
  config: do not use C function names as struct members

10 years agoMerge branch 'maint-1.8.3' into maint
Junio C Hamano [Thu, 5 Sep 2013 21:24:59 +0000 (14:24 -0700)] 
Merge branch 'maint-1.8.3' into maint

* maint-1.8.3:
  Documentation/git-merge.txt: fix formatting of example block

10 years agoMerge branch 'maint-1.8.2' into maint-1.8.3
Junio C Hamano [Thu, 5 Sep 2013 21:24:52 +0000 (14:24 -0700)] 
Merge branch 'maint-1.8.2' into maint-1.8.3

* maint-1.8.2:
  Documentation/git-merge.txt: fix formatting of example block

10 years agoDocumentation/git-merge.txt: fix formatting of example block
Andreas Schwab [Thu, 5 Sep 2013 15:12:45 +0000 (17:12 +0200)] 
Documentation/git-merge.txt: fix formatting of example block

You need at least four dashes in a line to have it recognized as listing
block delimiter by asciidoc.

Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge git://github.com/git-l10n/git-po into maint
Junio C Hamano [Tue, 3 Sep 2013 20:58:03 +0000 (13:58 -0700)] 
Merge git://github.com/git-l10n/git-po into maint

* git://github.com/git-l10n/git-po:
  l10n: fr.po: hotfix for commit 6b388fc

10 years agoMerge branch 'maint-1.8.3' into maint
Junio C Hamano [Tue, 3 Sep 2013 20:54:32 +0000 (13:54 -0700)] 
Merge branch 'maint-1.8.3' into maint

* maint-1.8.3:
  fix shell syntax error in template

10 years agoMerge branch 'maint-1.8.2' into maint-1.8.3
Junio C Hamano [Tue, 3 Sep 2013 20:54:26 +0000 (13:54 -0700)] 
Merge branch 'maint-1.8.2' into maint-1.8.3

* maint-1.8.2:
  fix shell syntax error in template

10 years agofix shell syntax error in template
Thorsten Glaser [Fri, 30 Aug 2013 10:40:30 +0000 (12:40 +0200)] 
fix shell syntax error in template

An if clause must not be empty; add a "colon" command.

Signed-off-by: Thorsten Glaser <t.glaser@tarent.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agol10n: fr.po: hotfix for commit 6b388fc
Sebastien Helleu [Sun, 25 Aug 2013 09:45:13 +0000 (11:45 +0200)] 
l10n: fr.po: hotfix for commit 6b388fc

Fix many typos and add some new translations (1277/2080 messages
translated).

Closes git-l10n/git-po/pull/63.

Signed-off-by: Sebastien Helleu <flashcode@flashtux.org>
Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
10 years agobuiltin/fetch.c: Fix a sparse warning
Ramsay Jones [Wed, 28 Aug 2013 18:56:17 +0000 (19:56 +0100)] 
builtin/fetch.c: Fix a sparse warning

Sparse issues an "'prepare_transport' was not declared. Should it
be static?" warning. In order to suppress the warning, since this
symbol only requires file scope, we simply add the static modifier
to it's declaration.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agomailmap: handle mailmap blobs without trailing newlines
Jeff King [Wed, 28 Aug 2013 01:41:39 +0000 (21:41 -0400)] 
mailmap: handle mailmap blobs without trailing newlines

The read_mailmap_buf function reads each line of the mailmap
using strchrnul, like:

    const char *end = strchrnul(buf, '\n');
    unsigned long linelen = end - buf + 1;

But that's off-by-one when we actually hit the NUL byte; our
line does not have a terminator, and so is only "end - buf"
bytes long. As a result, when we subtract the linelen from
the total len, we end up with (unsigned long)-1 bytes left
in the buffer, and we start reading random junk from memory.

We could fix it with:

    unsigned long linelen = end - buf + !!*end;

but let's take a step back for a moment. It's questionable
in the first place for a function that takes a buffer and
length to be using strchrnul. But it works because we only
have one caller (and are only likely to ever have this one),
which is handing us data from read_sha1_file. Which means
that it's always NUL-terminated.

Instead of tightening the assumptions to make the
buffer/length pair work for a caller that doesn't actually
exist, let's let loosen the assumptions to what the real
caller has: a modifiable, NUL-terminated string.

This makes the code simpler and shorter (because we don't
have to correlate strchrnul with the length calculation),
correct (because the code with the off-by-one just goes
away), and more efficient (we can drop the extra allocation
we needed to create NUL-terminated strings for each line,
and just terminate in place).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoconfig: do not use C function names as struct members
Jeff King [Mon, 26 Aug 2013 21:57:18 +0000 (17:57 -0400)] 
config: do not use C function names as struct members

According to C99, section 7.1.4:

  Any function declared in a header may be additionally
  implemented as a function-like macro defined in the
  header.

Therefore calling our struct member function pointer "fgetc"
may run afoul of unwanted macro expansion when we call:

  char c = cf->fgetc(cf);

This turned out to be a problem on uclibc, which defines
fgetc as a macro and causes compilation failure.

The standard suggests fixing this in a few ways:

  1. Using extra parentheses to inhibit the function-like
     macro expansion. E.g., "(cf->fgetc)(cf)". This is
     undesirable as it's ugly, and each call site needs to
     remember to use it (and on systems without the macro,
     forgetting will compile just fine).

  2. Using #undef (because a conforming implementation must
     also be providing fgetc as a function). This is
     undesirable because presumably the implementation was
     using the macro for a performance benefit, and we are
     dropping that optimization.

Instead, we can simply use non-colliding names.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agofetch-pack: do not remove .git/shallow file when --depth is not specified
Nguyễn Thái Ngọc Duy [Mon, 26 Aug 2013 02:17:26 +0000 (09:17 +0700)] 
fetch-pack: do not remove .git/shallow file when --depth is not specified

fetch_pack() can remove .git/shallow file when a shallow repository
becomes a full one again. This behavior is triggered incorrectly when
tags are also fetched because fetch_pack() will be called twice. At
the first fetch_pack() call:

 - shallow_lock is set up
 - alternate_shallow_file points to shallow_lock.filename, which is
   "shallow.lock"
 - commit_lock_file is called, which sets shallow_lock.filename to "".
   alternate_shallow_file also becomes "" because it points to the
   same memory.

At the second call, setup_alternate_shallow() is not called and
alternate_shallow_file remains "". It's mistaken as unshallow case and
.git/shallow is removed. The end result is a broken repository.

Fix this by always initializing alternate_shallow_file when
fetch_pack() is called. As an extra measure, check if args->depth > 0
before commit/rollback shallow file.

Reported-by: Kacper Kornet <kornet@camk.edu.pl>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoGit 1.8.4 v1.8.4
Junio C Hamano [Fri, 23 Aug 2013 18:49:46 +0000 (11:49 -0700)] 
Git 1.8.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agocontrib/git-prompt.sh: handle missing 'printf -v' more gracefully
Brandon Casey [Thu, 22 Aug 2013 01:39:03 +0000 (18:39 -0700)] 
contrib/git-prompt.sh: handle missing 'printf -v' more gracefully

Old Bash (3.0) which is distributed with RHEL 4.X and other ancient
platforms that are still in wide use, do not have a printf that
supports -v.  Neither does Zsh (which is already handled in the code).

As suggested by Junio, let's test whether printf supports the -v
option and store the result.  Then later, we can use it to
determine whether 'printf -v' can be used, or whether printf
must be called in a subshell.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agot9902-completion.sh: old Bash still does not support array+=('') notation
Brandon Casey [Wed, 21 Aug 2013 20:49:32 +0000 (13:49 -0700)] 
t9902-completion.sh: old Bash still does not support array+=('') notation

Old Bash (3.0) which is distributed with RHEL 4.X and other ancient
platforms that are still in wide use, does not understand the
array+=() notation.  Let's use an explicit assignment to the new array
element which works everywhere, like:

   array[${#array[@]}+1]=''

The right-hand side '' is not strictly necessary, but in this case
I think it is more clear.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agogit-completion.bash: use correct Bash/Zsh array length syntax
Brandon Casey [Wed, 21 Aug 2013 20:49:31 +0000 (13:49 -0700)] 
git-completion.bash: use correct Bash/Zsh array length syntax

The syntax for retrieving the number of elements in an array is:

   ${#name[@]}

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoTypofix draft release notes to 1.8.4
Junio C Hamano [Wed, 21 Aug 2013 22:30:04 +0000 (15:30 -0700)] 
Typofix draft release notes to 1.8.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agostream_to_pack: xread does not guarantee to read all requested bytes
Johannes Sixt [Tue, 20 Aug 2013 09:15:26 +0000 (11:15 +0200)] 
stream_to_pack: xread does not guarantee to read all requested bytes

The deflate loop in bulk-checkin::stream_to_pack expects to get all bytes
from a file that it requests to read in a single function call. But it
used xread(), which does not give that guarantee. Replace it by
read_in_full().

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoRevert "compat/clipped-write.c: large write(2) fails on Mac OS X/XNU"
Steffen Prohaska [Tue, 20 Aug 2013 06:43:55 +0000 (08:43 +0200)] 
Revert "compat/clipped-write.c: large write(2) fails on Mac OS X/XNU"

This reverts commit 6c642a878688adf46b226903858b53e2d31ac5c3.

The previous commit introduced a size limit on IO chunks on all
platforms.  The compat clipped_write() is not needed anymore.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoxread, xwrite: limit size of IO to 8MB
Steffen Prohaska [Tue, 20 Aug 2013 06:43:54 +0000 (08:43 +0200)] 
xread, xwrite: limit size of IO to 8MB

Checking out 2GB or more through an external filter (see test) fails
on Mac OS X 10.8.4 (12E55) for a 64-bit executable with:

    error: read from external filter cat failed
    error: cannot feed the input to external filter cat
    error: cat died of signal 13
    error: external filter cat failed 141
    error: external filter cat failed

The reason is that read() immediately returns with EINVAL when asked
to read more than 2GB.  According to POSIX [1], if the value of
nbyte passed to read() is greater than SSIZE_MAX, the result is
implementation-defined.  The write function has the same restriction
[2].  Since OS X still supports running 32-bit executables, the
32-bit limit (SSIZE_MAX = INT_MAX = 2GB - 1) seems to be also
imposed on 64-bit executables under certain conditions.  For write,
the problem has been addressed earlier [6c642a].

Address the problem for read() and write() differently, by limiting
size of IO chunks unconditionally on all platforms in xread() and
xwrite().  Large chunks only cause problems, like causing latencies
when killing the process, even if OS X was not buggy.  Doing IO in
reasonably sized smaller chunks should have no negative impact on
performance.

The compat wrapper clipped_write() introduced earlier [6c642a] is
not needed anymore.  It will be reverted in a separate commit.  The
new test catches read and write problems.

Note that 'git add' exits with 0 even if it prints filtering errors
to stderr.  The test, therefore, checks stderr.  'git add' should
probably be changed (sometime in another commit) to exit with
nonzero if filtering fails.  The test could then be changed to use
test_must_fail.

Thanks to the following people for suggestions and testing:

    Johannes Sixt <j6t@kdbg.org>
    John Keeping <john@keeping.me.uk>
    Jonathan Nieder <jrnieder@gmail.com>
    Kyle J. McKay <mackyle@gmail.com>
    Linus Torvalds <torvalds@linux-foundation.org>
    Torsten Bögershausen <tboegi@web.de>

[1] http://pubs.opengroup.org/onlinepubs/009695399/functions/read.html
[2] http://pubs.opengroup.org/onlinepubs/009695399/functions/write.html

[6c642a] commit 6c642a878688adf46b226903858b53e2d31ac5c3
    compate/clipped-write.c: large write(2) fails on Mac OS X/XNU

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoavoid segfault on submodule.*.path set to an empty "true"
Jharrod LaFon [Mon, 19 Aug 2013 16:26:56 +0000 (09:26 -0700)] 
avoid segfault on submodule.*.path set to an empty "true"

Git fails due to a segmentation fault if a submodule path is empty.
Here is an example .gitmodules that will cause a segmentation fault:

    [submodule "foo-module"]
      path
      url = http://host/repo.git
    $ git status
    Segmentation fault (core dumped)

This is because the parsing of "submodule.*.path" is not prepared to
see a value-less "true" and assumes that the value is always
non-NULL (parsing of "ignore" has the same problem).

Fix it by checking the NULL-ness of value and complain with
config_error_nonbool().

Signed-off-by: Jharrod LaFon <jlafon@eyesopen.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoGit 1.8.4-rc4 v1.8.4-rc4
Junio C Hamano [Mon, 19 Aug 2013 17:34:14 +0000 (10:34 -0700)] 
Git 1.8.4-rc4

As we had to revert two topics at the last minute, let's have
another (hopefully short) round of rc to make sure the final release
will be sound.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoRevert "Add new @ shortcut for HEAD"
Junio C Hamano [Wed, 14 Aug 2013 17:57:24 +0000 (10:57 -0700)] 
Revert "Add new @ shortcut for HEAD"

This reverts commit cdfd94837b27c220f70f032b596ea993d195488f, as it
does not just apply to "@" (and forms with modifiers like @{u}
applied to it), but also affects e.g. "refs/heads/@/foo", which it
shouldn't.

The basic idea of giving a short-hand might be good, and the topic
can be retried later, but let's revert to avoid affecting existing
use cases for now for the upcoming release.

10 years agoRevert "git stash: avoid data loss when "git stash save" kills a directory"
Junio C Hamano [Wed, 14 Aug 2013 16:53:43 +0000 (09:53 -0700)] 
Revert "git stash: avoid data loss when "git stash save" kills a directory"

This reverts commit a73653130edd6a8977106d45a8092c09040f9132, as it
has been reported that "ls-files --killed" is too time-consuming in
a deep directory with too many untracked crufts (e.g. $HOME/.git
tracking only a few files).

We'd need to revisit it later but "ls-files --killed" needs to be
optimized before it happens.

10 years agoGit 1.8.4-rc3 v1.8.4-rc3
Junio C Hamano [Tue, 13 Aug 2013 18:10:18 +0000 (11:10 -0700)] 
Git 1.8.4-rc3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge git://github.com/git-l10n/git-po
Junio C Hamano [Tue, 13 Aug 2013 17:50:01 +0000 (10:50 -0700)] 
Merge git://github.com/git-l10n/git-po

* git://github.com/git-l10n/git-po:
  l10n: Add reference for french translation team
  l10n: fr.po: 821/2112 messages translated

10 years agoMerge branch 'sb/mailmap-updates'
Junio C Hamano [Tue, 13 Aug 2013 17:49:33 +0000 (10:49 -0700)] 
Merge branch 'sb/mailmap-updates'

* sb/mailmap-updates:
  .mailmap: Combine more (name, email) to individual persons
  .mailmap: update long-lost friends with multiple defunct addresses

10 years ago.mailmap: Combine more (name, email) to individual persons
Stefan Beller [Mon, 12 Aug 2013 08:12:09 +0000 (10:12 +0200)] 
.mailmap: Combine more (name, email) to individual persons

Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years ago.mailmap: update long-lost friends with multiple defunct addresses
Junio C Hamano [Mon, 12 Aug 2013 07:58:11 +0000 (00:58 -0700)] 
.mailmap: update long-lost friends with multiple defunct addresses

A handful of past contributors are recorded with multiple e-mail
addresses, all of which are undeliverable.  With a lot of help from
Jonathan, we located all of them except for one person, and a pair
of addresses we suspect belong to a single person but we are not
certain.

Update the found ones with their currently preferred address, and
use the last known address to consolidate contributions by the lost
one.

Helped-by: Stefan Beller <stefanbeller@googlemail.com>
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agogit-remote-mediawiki: ignore generated git-mw
Matthieu Moy [Tue, 13 Aug 2013 13:32:19 +0000 (15:32 +0200)] 
git-remote-mediawiki: ignore generated git-mw

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agol10n: Add reference for french translation team
Jean-Noel Avila [Fri, 9 Aug 2013 22:30:55 +0000 (00:30 +0200)] 
l10n: Add reference for french translation team

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
10 years agol10n: fr.po: 821/2112 messages translated
Jean-Noel Avila [Mon, 1 Jul 2013 20:19:04 +0000 (22:19 +0200)] 
l10n: fr.po: 821/2112 messages translated

Trying to focus on most useful phrases.

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
10 years agoMerge branch 'maint'
Junio C Hamano [Fri, 9 Aug 2013 22:49:55 +0000 (15:49 -0700)] 
Merge branch 'maint'

* maint:
  parse-options: fix clang opterror() -Wunused-value warning

10 years agoMerge branch 'master' of git://github.com/git-l10n/git-po
Junio C Hamano [Fri, 9 Aug 2013 21:31:28 +0000 (14:31 -0700)] 
Merge branch 'master' of git://github.com/git-l10n/git-po

* 'master' of git://github.com/git-l10n/git-po:
  l10n: de.po: translate 5 messages
  l10n: de.po: translate 99 new messages
  l10n: de.po: switch from pure German to German+English
  l10n: de.po: Fix a typo
  l10n: Update Swedish translation (2135t0f0u)
  l10n: zh_CN.po: translate 5 messages (2135t0f0u)
  l10n: vi.po(2135t): v1.8.4 round 2
  l10n: git.pot: v1.8.4 round 2 (5 new, 3 removed)

10 years agoMerge branch 'jk/submodule-subdirectory-ok'
Junio C Hamano [Fri, 9 Aug 2013 21:30:41 +0000 (14:30 -0700)] 
Merge branch 'jk/submodule-subdirectory-ok'

* jk/submodule-subdirectory-ok:
  t/t7407: fix two typos in submodule tests

10 years agoMerge branch 'sb/mailmap-updates'
Junio C Hamano [Fri, 9 Aug 2013 21:30:13 +0000 (14:30 -0700)] 
Merge branch 'sb/mailmap-updates'

* sb/mailmap-updates:
  .mailmap: fixup entries

10 years ago.mailmap: fixup entries
Stefan Beller [Fri, 9 Aug 2013 18:18:24 +0000 (20:18 +0200)] 
.mailmap: fixup entries

This patch adds no new names, but fixes the mistakes I made in the previous
commits. (94b410bba8f4f49e225c07a6bc57, 2013-07-12, .mailmap: Map
email addresses to names).

These mistakes are double white spaces between name and surname,
different capitalization in email address, or just the email address set
as name.

Also I forgot to include James Knight to the mailmap file.

Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agot/t7407: fix two typos in submodule tests
Phil Hord [Fri, 9 Aug 2013 20:12:54 +0000 (16:12 -0400)] 
t/t7407: fix two typos in submodule tests

In t/t7407-submodule-foreach.sh there is a typo in one of the
path names given for a test step.  The correct path is
nested1/nested2/.git, but nested1/nested1/nested2/.git is
given instead.  The typo is hidden because this line also
accidentally omits the && chain operator.  The omitted chain
also means the return values of all the previous commands in
this test are also being ignored.

Fix the path and add the chain operator so the entire test
sequence can be properly validated.

Signed-off-by: Phil Hord <hordp@cisco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoparse-options: fix clang opterror() -Wunused-value warning
Eric Sunshine [Fri, 9 Aug 2013 09:06:17 +0000 (05:06 -0400)] 
parse-options: fix clang opterror() -Wunused-value warning

a469a1019352b8ef (silence some -Wuninitialized false positives;
2012-12-15) triggered "unused value" warnings when the return value of
opterror() and several other error-related functions was not used.
5ded807f7c0be10e (fix clang -Wunused-value warnings for error functions;
2013-01-16) applied a fix by adding #if !defined(__clang__) in cache.h
and git-compat-util.h, but misspelled it as #if !defined(clang) in
parse-options.h. Fix this.

This mistake went unnoticed because existing callers of opterror()
utilize its return value.  1158826394e162c5 (parse-options: add
OPT_CMDMODE(); 2013-07-30), however, adds a new invocation of opterror()
which ignores the return value, thus triggering the "unused value"
warning.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agol10n: de.po: translate 5 messages
Ralf Thielow [Tue, 6 Aug 2013 17:54:29 +0000 (19:54 +0200)] 
l10n: de.po: translate 5 messages

Translate 5 new messages came from git.pot update in b8ecf23
(l10n: git.pot: v1.8.4 round 2 (5 new, 3 removed)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
10 years agol10n: de.po: translate 99 new messages
Ralf Thielow [Fri, 26 Jul 2013 15:48:46 +0000 (17:48 +0200)] 
l10n: de.po: translate 99 new messages

Translate 99 new messages came from git.pot update in
28b3cff (l10n: git.pot: v1.8.4 round 1 (99 new, 46 removed)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Thomas Rast <trast@inf.ethz.ch>
10 years agoGit 1.8.4-rc2 v1.8.4-rc2
Junio C Hamano [Thu, 8 Aug 2013 20:58:34 +0000 (13:58 -0700)] 
Git 1.8.4-rc2

This is with mostly minor documentation and test updates, nothing
spectacular except for removal of funky lstat(2) emulation on Cygwin.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agol10n: de.po: switch from pure German to German+English
Ralf Thielow [Wed, 29 May 2013 16:03:39 +0000 (18:03 +0200)] 
l10n: de.po: switch from pure German to German+English

This switches the translation from pure German to German+English.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Thomas Rast <trast@inf.ethz.ch>
10 years agol10n: de.po: Fix a typo
Wieland Hoffmann [Wed, 5 Jun 2013 20:59:44 +0000 (22:59 +0200)] 
l10n: de.po: Fix a typo

Signed-off-by: Wieland Hoffmann <themineo@gmail.com>
10 years agofetch: work around "transport-take-over" hack
Junio C Hamano [Wed, 7 Aug 2013 22:47:18 +0000 (15:47 -0700)] 
fetch: work around "transport-take-over" hack

A Git-aware "connect" transport allows the "transport_take_over" to
redirect generic transport requests like fetch(), push_refs() and
get_refs_list() to the native Git transport handling methods.  The
take-over process replaces transport->data with a fake data that
these method implementations understand.

While this hack works OK for a single request, it breaks when the
transport needs to make more than one requests.  transport->data
that used to hold necessary information for the specific helper to
work correctly is destroyed during the take-over process.

One codepath that this matters is "git fetch" in auto-follow mode;
when it does not get all the tags that ought to point at the history
it got (which can be determined by looking at the peeled tags in the
initial advertisement) from the primary transfer, it internally
makes a second request to complete the fetch.  Because "take-over"
hack has already destroyed the data necessary to talk to the
transport helper by the time this happens, the second request cannot
make a request to the helper to make another connection to fetch
these additional tags.

Mark such a transport as "cannot_reuse", and use a separate
transport to perform the backfill fetch in order to work around
this breakage.

Note that this problem does not manifest itself when running t5802,
because our upload-pack gives you all the necessary auto-followed
tags during the primary transfer.  You would need to step through
"git fetch" in a debugger, stop immediately after the primary
transfer finishes and writes these auto-followed tags, remove the
tag references and repack/prune the repository to convince the
"find-non-local-tags" procedure that the primary transfer failed to
give us all the necessary tags, and then let it continue, in order
to trigger the bug in the secondary transfer this patch fixes.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agofetch: refactor code that fetches leftover tags
Junio C Hamano [Wed, 7 Aug 2013 22:14:45 +0000 (15:14 -0700)] 
fetch: refactor code that fetches leftover tags

Usually the upload-pack process running on the other side will give
us all the reachable tags we need during the primary object transfer
in do_fetch().  If that does not happen (e.g. the other side may be
running a third-party implementation of upload-pack), we will run
another fetch to pick up leftover tags that we know point at the
commits reachable from our updated tips.

Separate out the code to run this second fetch into a helper
function.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agofetch: refactor code that prepares a transport
Junio C Hamano [Wed, 7 Aug 2013 21:43:20 +0000 (14:43 -0700)] 
fetch: refactor code that prepares a transport

Make a helper function prepare_transport() that returns a transport
to talk to a given remote.

The set_option() helper that used to always affect the file-scope
global "gtransport" now takes a transport as its parameter.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agofetch: rename file-scope global "transport" to "gtransport"
Junio C Hamano [Wed, 7 Aug 2013 22:38:45 +0000 (15:38 -0700)] 
fetch: rename file-scope global "transport" to "gtransport"

Although many functions in this file take a "struct transport" as a
parameter, "fetch_one()" assigns to the global singleton instance
which is a file-scope static, in order to allow a parameterless
signal handler unlock_pack() to access it.

Rename the variable to gtransport to make sure these uses stand out.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agot5802: add test for connect helper
Junio C Hamano [Wed, 7 Aug 2013 15:18:10 +0000 (08:18 -0700)] 
t5802: add test for connect helper

This is an attempt to reproduce a problem reported for a third-party
custom "connect" remote helper.  The conjecture is that sometimes
"git fetch" wants to make two connections (one for the primary
transfer with 'follow-tags' option set, and then after noticing that
some tags are not packed because the primary transfer did not have
to send any commit that is pointed by them, another to explicitly
ask for the missing tags), and their "connect" helper is not called
in the second request, breaking the "fetch" as a whole.

Unfortunately this test script does not trigger the alleged failure
and happily passes when talking to upload-pack from git-core (see
patch 5/5 for details).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agodie_with_status: use "printf '%s\n'", not "echo"
Matthieu Moy [Wed, 7 Aug 2013 09:26:05 +0000 (11:26 +0200)] 
die_with_status: use "printf '%s\n'", not "echo"

Some implementations of 'echo' (e.g. dash's built-in) interpret
backslash sequences in their arguments.

This triggered at least one bug: the error message of "rebase -i" was
turning \t in commit messages into actual tabulations. There may be
others.

Using "printf '%s\n'" instead avoids this bad behavior, and is the form
used by the "say" function.

Noticed-by: David Kastrup <dak@gnu.org>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agol10n: Update Swedish translation (2135t0f0u)
Peter Krefting [Tue, 6 Aug 2013 11:41:48 +0000 (12:41 +0100)] 
l10n: Update Swedish translation (2135t0f0u)

Fix some incorrect translations in existing messages while at it.

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
10 years agol10n: zh_CN.po: translate 5 messages (2135t0f0u)
Jiang Xin [Tue, 6 Aug 2013 06:49:18 +0000 (14:49 +0800)] 
l10n: zh_CN.po: translate 5 messages (2135t0f0u)

Translate 5 new messages came from git.pot update in b8ecf23
(l10n: git.pot: v1.8.4 round 2 (5 new, 3 removed)).

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
10 years agol10n: vi.po(2135t): v1.8.4 round 2
Tran Ngoc Quan [Tue, 6 Aug 2013 07:34:48 +0000 (14:34 +0700)] 
l10n: vi.po(2135t): v1.8.4 round 2

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
10 years agol10n: git.pot: v1.8.4 round 2 (5 new, 3 removed)
Jiang Xin [Tue, 6 Aug 2013 06:13:23 +0000 (14:13 +0800)] 
l10n: git.pot: v1.8.4 round 2 (5 new, 3 removed)

Generate po/git.pot from v1.8.4-rc1-21-gfb56570 for git v1.8.4
l10n round 2.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
10 years agoSync with maint to grab trivial doc fixes
Junio C Hamano [Mon, 5 Aug 2013 20:00:20 +0000 (13:00 -0700)] 
Sync with maint to grab trivial doc fixes

* maint:
  fix typo in documentation of git-svn
  Documentation/rev-list-options: add missing word in --*-parents
  log doc: the argument to --encoding is not optional

10 years agoMerge branch 'es/blame-L-breakage'
Junio C Hamano [Mon, 5 Aug 2013 17:44:39 +0000 (10:44 -0700)] 
Merge branch 'es/blame-L-breakage'

* es/blame-L-breakage:
  t8001, t8002: fix "blame -L :literal" test on NetBSD

10 years agot8001, t8002: fix "blame -L :literal" test on NetBSD
René Scharfe [Mon, 5 Aug 2013 15:21:17 +0000 (17:21 +0200)] 
t8001, t8002: fix "blame -L :literal" test on NetBSD

Sub-test 42 of t8001 and t8002 ("blame -L :literal") fails on NetBSD
with the following verbose output:

git annotate  -L:main hello.c
Author F (expected 4, attributed 3) bad
Author G (expected 1, attributed 1) good

This is not caused by different behaviour of git blame or annotate on
that platform, but by different test input, in turn caused by a sed
command that forgets to add a newline on NetBSD.  Here's the diff of the
commit that adds "goodbye" to hello.c, for Linux:

@@ -1,4 +1,5 @@
 int main(int argc, const char *argv[])
 {
puts("hello");
+ puts("goodbye");
 }

We see that it adds an extra TAB, but that's not a problem.  Here's the
same on NetBSD:

@@ -1,4 +1,4 @@
 int main(int argc, const char *argv[])
 {
puts("hello");
-}
+ puts("goodbye");}

It also adds an extra TAB, but it is missing the newline character
after the semicolon.

The following patch gets rid of the extra TAB at the beginning, but
more importantly adds the missing newline at the end in a (hopefully)
portable way, mentioned in http://sed.sourceforge.net/sedfaq4.html.
The diff becomes this, on both Linux and NetBSD:

@@ -1,4 +1,5 @@
 int main(int argc, const char *argv[])
 {
puts("hello");
+ puts("goodbye");
 }

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge git://github.com/git-l10n/git-po
Junio C Hamano [Mon, 5 Aug 2013 17:38:23 +0000 (10:38 -0700)] 
Merge git://github.com/git-l10n/git-po

* git://github.com/git-l10n/git-po:
  l10n: zh_CN.po: translate 99 messages (2133t0f0u)
  l10n: vi.po (2133t)
  l10n: git.pot: v1.8.4 round 1 (99 new, 46 removed)

10 years agoMerge branch 'sb/mailmap-updates'
Junio C Hamano [Mon, 5 Aug 2013 17:11:14 +0000 (10:11 -0700)] 
Merge branch 'sb/mailmap-updates'

* sb/mailmap-updates:
  .mailmap: Multiple addresses of Michael S. Tsirkin

10 years agoMerge branch 'dn/test-reject-utf-16'
Junio C Hamano [Mon, 5 Aug 2013 17:11:10 +0000 (10:11 -0700)] 
Merge branch 'dn/test-reject-utf-16'

* dn/test-reject-utf-16:
  t3900: test rejecting log message with NULs correctly
  Add missing test file for UTF-16.

10 years agoMerge branch 'bc/commit-invalid-utf8'
Junio C Hamano [Mon, 5 Aug 2013 17:11:04 +0000 (10:11 -0700)] 
Merge branch 'bc/commit-invalid-utf8'

* bc/commit-invalid-utf8:
  commit: typofix for xxFFF[EF] check

10 years agocommit: typofix for xxFFF[EF] check
Junio C Hamano [Mon, 5 Aug 2013 16:52:28 +0000 (09:52 -0700)] 
commit: typofix for xxFFF[EF] check

We wanted to catch all codepoints that ends with FFFE and FFFF,
not with 0FFFE and 0FFFF.

Noticed and corrected by Peter Krefting.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agot3900: test rejecting log message with NULs correctly
Junio C Hamano [Mon, 5 Aug 2013 16:47:11 +0000 (09:47 -0700)] 
t3900: test rejecting log message with NULs correctly

It is not like that our longer term desire is to someday start
accept log messages with NULs in them, so it is wrong to mark a test
that demonstrates "git commit" that correctly fails given such an
input as "expect-failure".  "git commit" should fail today, and it
should fail the same way in the future given a message with NUL in it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoAdd missing test file for UTF-16.
Brian M. Carlson [Sat, 3 Aug 2013 17:26:31 +0000 (17:26 +0000)] 
Add missing test file for UTF-16.

The test file that the UTF-16 rejection test looks for is missing, but this went
unnoticed because the test is expected to fail anyway; as a consequence, the
test fails because the file containing the commit message is missing, and not
because the test file contains a NUL byte.  Fix this by including a sample text
file containing a commit message encoded in UTF-16.

Signed-off-by: Brian M. Carlson <sandals@crustytoothpaste.net>
Tested-by: Duy Nguyen <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agofix typo in documentation of git-svn
Felix Gruber [Sat, 3 Aug 2013 14:37:15 +0000 (16:37 +0200)] 
fix typo in documentation of git-svn

Signed-off-by: Felix Gruber <felgru@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoDocumentation/rev-list-options: add missing word in --*-parents
Torstein Hegge [Fri, 2 Aug 2013 18:40:07 +0000 (20:40 +0200)] 
Documentation/rev-list-options: add missing word in --*-parents

A commit has "parent commits" or "parents", not "commits".

Signed-off-by: Torstein Hegge <hegge@resisty.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years ago.mailmap: Multiple addresses of Michael S. Tsirkin
Stefan Beller [Sat, 3 Aug 2013 11:54:03 +0000 (13:54 +0200)] 
.mailmap: Multiple addresses of Michael S. Tsirkin

Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Stefan Beller <stefanbeller@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agolog: use true parents for diff when walking reflogs
Thomas Rast [Sat, 3 Aug 2013 10:36:15 +0000 (12:36 +0200)] 
log: use true parents for diff when walking reflogs

The reflog walking logic (git log -g) replaces the true parent list
with the preceding commit in the reflog.  This results in bogus commit
diffs when combined with options such as -p; the diff is against the
reflog predecessor, not the parent of the commit.

Save the true parents on the side, extending the functions from the
previous commit.  The diff logic picks them up and uses them to show
the correct diffs.

We do have to be somewhat careful about repeated calling of
save_parents(), since the reflog may list a commit more than once.  We
now store (commit_list*)-1 to distinguish the "not saved yet" and
"root commit" cases.  This lets us preserve an empty parent list even
if save_parents() is repeatedly called.

Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Thomas Rast <trast@inf.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agolog doc: the argument to --encoding is not optional
Jonathan Nieder [Fri, 2 Aug 2013 22:16:40 +0000 (15:16 -0700)] 
log doc: the argument to --encoding is not optional

 $ git log --encoding
 fatal: Option '--encoding' requires a value
 $ git rev-list --encoding
 fatal: Option '--encoding' requires a value

The argument to --encoding has always been mandatory.  Unfortunately
manpages like git-rev-list(1), git-log(1), and git-show(1) have
described the option's syntax as "--encoding[=<encoding>]" since it
was first documented.  Clarify by removing the extra brackets.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agol10n: zh_CN.po: translate 99 messages (2133t0f0u)
Jiang Xin [Fri, 26 Jul 2013 06:00:02 +0000 (14:00 +0800)] 
l10n: zh_CN.po: translate 99 messages (2133t0f0u)

Translate 99 new messages came from git.pot update in 28b3cff
(l10n: git.pot: v1.8.4 round 1 (99 new, 46 removed)).

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
10 years agoMerge branch 'rj/cygwin-clarify-use-of-cheating-lstat'
Junio C Hamano [Fri, 2 Aug 2013 18:01:00 +0000 (11:01 -0700)] 
Merge branch 'rj/cygwin-clarify-use-of-cheating-lstat'

Cygwin port added a "not quite correct but a lot faster and good
enough for many lstat() calls that are only used to see if the
working tree entity matches the index entry" lstat() emulation some
time ago, and it started biting us in places.  This removes it and
uses the standard lstat() that comes with Cygwin.

Recent topic that uses lstat on packed-refs file is broken when
this cheating lstat is used, and this is a simplest fix that is
also the cleanest direction to go in the long run.

* rj/cygwin-clarify-use-of-cheating-lstat:
  cygwin: Remove the Win32 l/stat() implementation

10 years agoMerge branch 'jk/cat-file-batch-optim'
Junio C Hamano [Fri, 2 Aug 2013 16:32:48 +0000 (09:32 -0700)] 
Merge branch 'jk/cat-file-batch-optim'

* jk/cat-file-batch-optim:
  Revert "cat-file: split --batch input lines on whitespace"

10 years agoRevert "cat-file: split --batch input lines on whitespace"
Junio C Hamano [Fri, 2 Aug 2013 16:29:30 +0000 (09:29 -0700)] 
Revert "cat-file: split --batch input lines on whitespace"

This reverts commit c334b87b30c1464a1ab563fe1fb8de5eaf0e5bac; the
update assumed that people only used the command to read from
"rev-list --objects" output, whose lines begin with a 40-hex object
name followed by a whitespace, but it turns out that scripts feed
random extended SHA-1 expressions (e.g. "HEAD:$pathname") in which
a whitespace has to be kept.

10 years agoGit 1.8.4-rc1 v1.8.4-rc1
Junio C Hamano [Thu, 1 Aug 2013 19:01:53 +0000 (12:01 -0700)] 
Git 1.8.4-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
10 years agoMerge branch 'ob/typofixes'
Junio C Hamano [Thu, 1 Aug 2013 18:58:32 +0000 (11:58 -0700)] 
Merge branch 'ob/typofixes'

* ob/typofixes:
  many small typofixes