]> git.ipfire.org Git - thirdparty/git.git/log
thirdparty/git.git
8 years agoreplace trivial malloc + sprintf / strcpy calls with xstrfmt
Jeff King [Thu, 24 Sep 2015 21:07:03 +0000 (17:07 -0400)] 
replace trivial malloc + sprintf / strcpy calls with xstrfmt

It's a common pattern to do:

  foo = xmalloc(strlen(one) + strlen(two) + 1 + 1);
  sprintf(foo, "%s %s", one, two);

(or possibly some variant with strcpy()s or a more
complicated length computation).  We can switch these to use
xstrfmt, which is shorter, involves less error-prone manual
computation, and removes many sprintf and strcpy calls which
make it harder to audit the code for real buffer overflows.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoreceive-pack: convert strncpy to xsnprintf
Jeff King [Thu, 24 Sep 2015 21:07:00 +0000 (17:07 -0400)] 
receive-pack: convert strncpy to xsnprintf

This strncpy is pointless; we pass the strlen() of the src
string, meaning that it works just like a memcpy. Worse,
though, is that the size has no relation to the destination
buffer, meaning it is a potential overflow.  In practice,
it's not. We pass only short constant strings like
"warning: " and "error: ", which are much smaller than the
destination buffer.

We can make this much simpler by just using xsnprintf, which
will check for overflow and return the size for our next
vsnprintf, without us having to run a separate strlen().

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agohttp-push: replace strcat with xsnprintf
Jeff King [Thu, 24 Sep 2015 21:06:58 +0000 (17:06 -0400)] 
http-push: replace strcat with xsnprintf

We account for these strcats in our initial allocation, but
the code is confusing to follow and verify. Let's remember
our original allocation length, and then xsnprintf can
verify that we don't exceed it.

Note that we can't just use xstrfmt here (which would be
even cleaner) because the code tries to grow the buffer only
when necessary.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoadd_packed_git: convert strcpy into xsnprintf
Jeff King [Thu, 24 Sep 2015 21:06:55 +0000 (17:06 -0400)] 
add_packed_git: convert strcpy into xsnprintf

We have the path "foo.idx", and we create a buffer big
enough to hold "foo.pack" and "foo.keep", and then strcpy
straight into it. This isn't a bug (we have enough space),
but it's very hard to tell from the strcpy that this is so.

Let's instead use strip_suffix to take off the ".idx",
record the size of our allocation, and use xsnprintf to make
sure we don't violate our assumptions.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoentry.c: convert strcpy to xsnprintf
Jeff King [Thu, 24 Sep 2015 21:06:53 +0000 (17:06 -0400)] 
entry.c: convert strcpy to xsnprintf

This particular conversion is non-obvious, because nobody
has passed our function the length of the destination
buffer. However, the interface to checkout_entry specifies
that the buffer must be at least TEMPORARY_FILENAME_LENGTH
bytes long, so we can check that (meaning the existing code
was not buggy, but merely worrisome to somebody reading it).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agogrep: use xsnprintf to format failure message
Jeff King [Thu, 24 Sep 2015 21:06:51 +0000 (17:06 -0400)] 
grep: use xsnprintf to format failure message

This looks at first glance like the sprintf can overflow our
buffer, but it's actually fine; the p->origin string is
something constant and small, like "command line" or "-e
option".

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agocompat/hstrerror: convert sprintf to snprintf
Jeff King [Thu, 24 Sep 2015 21:06:48 +0000 (17:06 -0400)] 
compat/hstrerror: convert sprintf to snprintf

This is a trivially correct use of sprintf, as our error
number should not be excessively long. But it's still nice
to drop an sprintf call.

Note that we cannot use xsnprintf here, because this is
compat code which does not load git-compat-util.h.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agostop_progress_msg: convert sprintf to xsnprintf
Jeff King [Thu, 24 Sep 2015 21:06:46 +0000 (17:06 -0400)] 
stop_progress_msg: convert sprintf to xsnprintf

The usual arguments for using xsnprintf over sprintf apply,
but this case is a little tricky. We print to a fixed-size
buffer if we have room, and otherwise to an allocated
buffer. So there should be no overflow here, but it is still
good to communicate our intention, as well as to check our
earlier math for how much space the string will need.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agofind_short_object_filename: convert sprintf to xsnprintf
Jeff King [Thu, 24 Sep 2015 21:06:44 +0000 (17:06 -0400)] 
find_short_object_filename: convert sprintf to xsnprintf

We use sprintf() to format some hex data into a buffer. The
buffer is clearly long enough, and using snprintf here is
not necessary. And in fact, it does not really make anything
easier to audit, as the size we feed to snprintf accounts
for the magic extra 42 bytes found in each alt->name field
of struct alternate_object_database (which is there exactly
to do this formatting).

Still, it is nice to remove an sprintf call and replace it
with an xsnprintf and explanatory comment, which makes it
easier to audit the code base for overflows.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agouse xsnprintf for generating git object headers
Jeff King [Thu, 24 Sep 2015 21:06:42 +0000 (17:06 -0400)] 
use xsnprintf for generating git object headers

We generally use 32-byte buffers to format git's "type size"
header fields. These should not generally overflow unless
you can produce some truly gigantic objects (and our types
come from our internal array of constant strings). But it is
a good idea to use xsnprintf to make sure this is the case.

Note that we slightly modify the interface to
write_sha1_file_prepare, which nows uses "hdrlen" as an "in"
parameter as well as an "out" (on the way in it stores the
allocated size of the header, and on the way out it returns
the ultimate size of the header).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoarchive-tar: use xsnprintf for trivial formatting
Jeff King [Thu, 24 Sep 2015 21:06:24 +0000 (17:06 -0400)] 
archive-tar: use xsnprintf for trivial formatting

When we generate tar headers, we sprintf() values directly
into a struct with the fixed-size header values. For the
most part this is fine, as we are formatting small values
(e.g., the octal format of "mode & 0x7777" is of fixed
length). But it's still a good idea to use xsnprintf here.
It communicates to readers what our expectation is, and it
provides a run-time check that we are not overflowing the
buffers.

The one exception here is the mtime, which comes from the
epoch time of the commit we are archiving. For sane values,
this fits into the 12-byte value allocated in the header.
But since git can handle 64-bit times, if I claim to be a
visitor from the year 10,000 AD, I can overflow the buffer.
This turns out to be harmless, as we simply overflow into
the chksum field, which is then overwritten.

This case is also best as an xsnprintf. It should never come
up, short of extremely malformed dates, and in that case we
are probably better off dying than silently truncating the
date value (and we cannot expand the size of the buffer,
since it is dictated by the ustar format). Our friends in
the year 5138 (when we legitimately flip to a 12-digit
epoch) can deal with that problem then.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoconvert trivial sprintf / strcpy calls to xsnprintf
Jeff King [Thu, 24 Sep 2015 21:06:08 +0000 (17:06 -0400)] 
convert trivial sprintf / strcpy calls to xsnprintf

We sometimes sprintf into fixed-size buffers when we know
that the buffer is large enough to fit the input (either
because it's a constant, or because it's numeric input that
is bounded in size). Likewise with strcpy of constant
strings.

However, these sites make it hard to audit sprintf and
strcpy calls for buffer overflows, as a reader has to
cross-reference the size of the array with the input. Let's
use xsnprintf instead, which communicates to a reader that
we don't expect this to overflow (and catches the mistake in
case we do).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agocompat/inet_ntop: fix off-by-one in inet_ntop4
Jeff King [Thu, 24 Sep 2015 21:06:06 +0000 (17:06 -0400)] 
compat/inet_ntop: fix off-by-one in inet_ntop4

Our compat inet_ntop4 function writes to a temporary buffer
with snprintf, and then uses strcpy to put the result into
the final "dst" buffer. We check the return value of
snprintf against the size of "dst", but fail to account for
the NUL terminator. As a result, we may overflow "dst" with
a single NUL. In practice, this doesn't happen because the
output of inet_ntop is limited, and we provide buffers that
are way oversized.

We can fix the off-by-one check easily, but while we are
here let's also use strlcpy for increased safety, just in
case there are other bugs lurking.

As a side note, this compat code seems to be BSD-derived.
Searching for "vixie inet_ntop" turns up NetBSD's latest
version of the same code, which has an identical fix (and
switches to strlcpy, too!).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agotest-dump-cache-tree: avoid overflow of cache-tree name
Jeff King [Thu, 24 Sep 2015 21:06:03 +0000 (17:06 -0400)] 
test-dump-cache-tree: avoid overflow of cache-tree name

When dumping a cache-tree, we sprintf sub-tree names directly
into a fixed-size buffer, which can overflow. We can
trivially fix this by converting to xsnprintf to at least
notice and die.

This probably should handle arbitrary-sized names, but
there's not much point. It's used only by the test scripts,
so the trivial fix is enough.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoprogress: store throughput display in a strbuf
Jeff King [Thu, 24 Sep 2015 21:05:57 +0000 (17:05 -0400)] 
progress: store throughput display in a strbuf

Coverity noticed that we strncpy() into a fixed-size buffer
without making sure that it actually ended up
NUL-terminated. This is unlikely to be a bug in practice,
since throughput strings rarely hit 32 characters, but it
would be nice to clean it up.

The most obvious way to do so is to add a NUL-terminator.
But instead, this patch switches the fixed-size buffer out
for a strbuf. At first glance this seems much less
efficient, until we realize that filling in the fixed-size
buffer is done by writing into a strbuf and copying the
result!

By writing straight to the buffer, we actually end up more
efficient:

  1. We avoid an extra copy of the bytes.

  2. Rather than malloc/free each time progress is shown, we
     can strbuf_reset and use the same buffer each time.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agotrace: use strbuf for quote_crnl output
Jeff King [Thu, 24 Sep 2015 21:05:54 +0000 (17:05 -0400)] 
trace: use strbuf for quote_crnl output

When we output GIT_TRACE_SETUP paths, we quote any
meta-characters. But our buffer to hold the result is only
PATH_MAX bytes, and we could double the size of the input
path (if every character needs quoting). We could use a
2*PATH_MAX buffer, if we assume the input will never be more
than PATH_MAX. But it's easier still to just switch to a
strbuf and not worry about whether the input can exceed
PATH_MAX or not.

The original copied the "p2" pointer to "p1", advancing
both. Since this gets rid of "p1", let's also drop "p2",
whose name is now confusing. We can just advance the
original "path" pointer.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agomailsplit: make PATH_MAX buffers dynamic
Jeff King [Thu, 24 Sep 2015 21:05:51 +0000 (17:05 -0400)] 
mailsplit: make PATH_MAX buffers dynamic

There are several PATH_MAX-sized buffers in mailsplit, along
with some questionable uses of sprintf.  These are not
really of security interest, as local mailsplit pathnames
are not typically under control of an attacker, and you
could generally only overflow a few numbers at the end of a
path that approaches PATH_MAX (a longer path would choke
mailsplit long before). But it does not hurt to be careful,
and as a bonus we lift some limits for systems with
too-small PATH_MAX varibles.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agofsck: use strbuf to generate alternate directories
Jeff King [Thu, 24 Sep 2015 21:05:48 +0000 (17:05 -0400)] 
fsck: use strbuf to generate alternate directories

When fsck-ing alternates, we make a copy of the alternate
directory in a fixed PATH_MAX buffer. We memcpy directly,
without any check whether we are overflowing the buffer.
This is OK if PATH_MAX is a true representation of the
maximum path on the system, because any path here will have
already been vetted by the alternates subsystem. But that is
not true on every system, so we should be more careful.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoadd reentrant variants of sha1_to_hex and find_unique_abbrev
Jeff King [Thu, 24 Sep 2015 21:05:45 +0000 (17:05 -0400)] 
add reentrant variants of sha1_to_hex and find_unique_abbrev

The sha1_to_hex and find_unique_abbrev functions always
write into reusable static buffers. There are a few problems
with this:

  - future calls overwrite our result. This is especially
    annoying with find_unique_abbrev, which does not have a
    ring of buffers, so you cannot even printf() a result
    that has two abbreviated sha1s.

  - if you want to put the result into another buffer, we
    often strcpy, which looks suspicious when auditing for
    overflows.

This patch introduces sha1_to_hex_r and find_unique_abbrev_r,
which write into a user-provided buffer. Of course this is
just punting on the overflow-auditing, as the buffer
obviously needs to be GIT_SHA1_HEXSZ + 1 bytes. But it is
much easier to audit, since that is a well-known size.

We retain the non-reentrant forms, which just become thin
wrappers around the reentrant ones. This patch also adds a
strbuf variant of find_unique_abbrev, which will be handy in
later patches.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agostrbuf: make strbuf_complete_line more generic
Jeff King [Thu, 24 Sep 2015 21:05:43 +0000 (17:05 -0400)] 
strbuf: make strbuf_complete_line more generic

The strbuf_complete_line function makes sure that a buffer
ends in a newline. But we may want to do this for any
character (e.g., "/" on the end of a path). Let's factor out
a generic version, and keep strbuf_complete_line as a thin
wrapper.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoadd git_path_buf helper function
Jeff King [Thu, 24 Sep 2015 21:05:40 +0000 (17:05 -0400)] 
add git_path_buf helper function

If you have a function that uses git_path a lot, but would
prefer to avoid the static buffers, it's useful to keep a
single scratch buffer locally and reuse it for each call.
You used to be able to do this with git_snpath:

  char buf[PATH_MAX];

  foo(git_snpath(buf, sizeof(buf), "foo"));
  bar(git_snpath(buf, sizeof(buf), "bar"));

but since 1a83c24, git_snpath has been replaced with
strbuf_git_path. This is good, because it removes the
arbitrary PATH_MAX limit. But using strbuf_git_path is more
awkward for two reasons:

  1. It adds to the buffer, rather than replacing it. This
     is consistent with other strbuf functions, but makes
     reuse of a single buffer more tedious.

  2. It doesn't return the buffer, so you can't format
     as part of a function's arguments.

The new git_path_buf solves both of these, so you can use it
like:

  struct strbuf buf = STRBUF_INIT;

  foo(git_path_buf(&buf, "foo"));
  bar(git_path_buf(&buf, "bar"));

  strbuf_release(&buf);

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoadd xsnprintf helper function
Jeff King [Thu, 24 Sep 2015 21:05:37 +0000 (17:05 -0400)] 
add xsnprintf helper function

There are a number of places in the code where we call
sprintf(), with the assumption that the output will fit into
the buffer. In many cases this is true (e.g., formatting a
number into a large buffer), but it is hard to tell
immediately from looking at the code. It would be nice if we
had some run-time check to make sure that our assumption is
correct (and to communicate to readers of the code that we
are not blindly calling sprintf, but have actually thought
about this case).

This patch introduces xsnprintf, which behaves just like
snprintf, except that it dies whenever the output is
truncated. This acts as a sort of assert() for these cases,
which can help find places where the assumption is violated
(as opposed to truncating and proceeding, which may just
silently give a wrong answer).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agofsck: don't fsck alternates for connectivity-only check
Jeff King [Thu, 24 Sep 2015 21:05:30 +0000 (17:05 -0400)] 
fsck: don't fsck alternates for connectivity-only check

Commit 02976bf (fsck: introduce `git fsck --connectivity-only`,
2015-06-22) recently gave fsck an option to perform only a
subset of the checks, by skipping the fsck_object_dir()
call. However, it does so only for the local object
directory, and we still do expensive checks on any alternate
repos. We should skip them in this case, too.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoarchive-tar: fix minor indentation violation
Jeff King [Thu, 24 Sep 2015 21:03:49 +0000 (17:03 -0400)] 
archive-tar: fix minor indentation violation

This looks like a simple omission from 8539070 (archive-tar:
unindent write_tar_entry by one level, 2012-05-03).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agomailsplit: fix FILE* leak in split_maildir
Jeff King [Thu, 24 Sep 2015 21:03:05 +0000 (17:03 -0400)] 
mailsplit: fix FILE* leak in split_maildir

If we encounter an error while splitting a maildir, we exit
the function early, leaking the open filehandle. This isn't
a big deal, since we exit the program soon after, but it's
easy enough to be careful.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoshow-branch: avoid segfault with --reflog of unborn branch
Jeff King [Thu, 24 Sep 2015 21:02:54 +0000 (17:02 -0400)] 
show-branch: avoid segfault with --reflog of unborn branch

When no branch is given to the "--reflog" option, we resolve
HEAD to get the default branch. However, if HEAD points to
an unborn branch, resolve_ref returns NULL, and we later
segfault trying to access it.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoGit 2.6-rc3 v2.6.0-rc3
Junio C Hamano [Mon, 21 Sep 2015 20:26:13 +0000 (13:26 -0700)] 
Git 2.6-rc3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'rj/mailmap-ramsay'
Junio C Hamano [Mon, 21 Sep 2015 19:58:35 +0000 (12:58 -0700)] 
Merge branch 'rj/mailmap-ramsay'

* rj/mailmap-ramsay:
  mailmap: update my entry with new email address

8 years agoMerge branch 'bn/send-email-smtp-auth-error-message-fix'
Junio C Hamano [Mon, 21 Sep 2015 19:27:15 +0000 (12:27 -0700)] 
Merge branch 'bn/send-email-smtp-auth-error-message-fix'

Fix a minor regression brought in to "git send-email" by a recent
addition of the "--smtp-auth" option.

* bn/send-email-smtp-auth-error-message-fix:
  send-email: fix uninitialized var warning for $smtp_auth

8 years agoMerge tag 'l10n-2.6.0-rnd2+de' of git://github.com/git-l10n/git-po
Junio C Hamano [Mon, 21 Sep 2015 17:54:07 +0000 (10:54 -0700)] 
Merge tag 'l10n-2.6.0-rnd2+de' of git://github.com/git-l10n/git-po

l10n-2.6.0-rnd2 plus de

* tag 'l10n-2.6.0-rnd2+de' of git://github.com/git-l10n/git-po: (25 commits)
  l10n: de.po: better language for one string
  l10n: de.po: translate 2 messages
  l10n: Update and review Vietnamese translation (2440t)
  l10n: fr.po v2.6.0 round 2 (2440t)
  l10n: zh_CN: for git v2.6.0 l10n round 2
  l10n: ca.po: update translation
  l10n: git.pot: v2.6.0 round 2 (3 improvements)
  l10n: de.po: translate 123 new messages
  l10n: fr.po v2.6.0 round 1 (2441t)
  l10n: sv.po: Update Swedish translation (2441t0f0u)
  l10n: zh_CN: for git v2.6.0 l10n round 1
  l10n: Updated Vietnamese translation (2441t)
  l10n: git.pot: v2.6.0 round 1 (123 new, 41 removed)
  l10n: zh_CN: Update Git Glossary: "commit message"
  l10n: zh_CN: Update Git Glossary: pickaxe
  l10n: zh_CN: Update Git Glossary: fork
  l10n: zh_CN: Update Git Glossary: tag
  l10n: zh_CN: Update Git Glossary: "dumb", "smart"
  l10n: zh_CN: Update Git Glossary: SHA-1
  l10n: zh_CN: Add Surrounding Spaces
  ...

8 years agosend-email: fix uninitialized var warning for $smtp_auth
Brian Norris [Fri, 18 Sep 2015 22:12:50 +0000 (15:12 -0700)] 
send-email: fix uninitialized var warning for $smtp_auth

On the latest version of git-send-email, I see this error just before
running SMTP auth (I didn't provide any --smtp-auth= parameter):

  Use of uninitialized value $smtp_auth in pattern match (m//) at \
  /home/briannorris/git/git/git-send-email.perl line 1139.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Reviewed-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agol10n: de.po: better language for one string
Phillip Sz [Thu, 17 Sep 2015 15:50:32 +0000 (17:50 +0200)] 
l10n: de.po: better language for one string

Just one string I think we could translate better.

Signed-off-by: Phillip Sz <phillip.szelat@gmail.com>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
8 years agol10n: de.po: translate 2 messages
Ralf Thielow [Wed, 16 Sep 2015 17:28:07 +0000 (19:28 +0200)] 
l10n: de.po: translate 2 messages

Translate 2 messages came from git.pot update in e447091
(l10n: git.pot: v2.6.0 round 2 (3 improvements)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Phillip Sz <phillip.szelat@gmail.com>
8 years agol10n: Update and review Vietnamese translation (2440t)
Tran Ngoc Quan [Tue, 15 Sep 2015 00:17:53 +0000 (07:17 +0700)] 
l10n: Update and review Vietnamese translation (2440t)

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
8 years agol10n: fr.po v2.6.0 round 2 (2440t)
Jean-Noel Avila [Tue, 15 Sep 2015 18:22:52 +0000 (20:22 +0200)] 
l10n: fr.po v2.6.0 round 2 (2440t)

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
8 years agol10n: zh_CN: for git v2.6.0 l10n round 2
Jiang Xin [Tue, 15 Sep 2015 13:51:26 +0000 (21:51 +0800)] 
l10n: zh_CN: for git v2.6.0 l10n round 2

Update 2 translations (2440t0f0u) for git v2.6.0-rc2.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
8 years agol10n: ca.po: update translation
Alex Henrie [Tue, 15 Sep 2015 03:05:50 +0000 (21:05 -0600)] 
l10n: ca.po: update translation

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
8 years agol10n: git.pot: v2.6.0 round 2 (3 improvements)
Jiang Xin [Mon, 14 Sep 2015 22:57:19 +0000 (06:57 +0800)] 
l10n: git.pot: v2.6.0 round 2 (3 improvements)

Introduce three i18n improvements from the following commits:

* tag, update-ref: improve description of option "create-reflog"
* pull: don't mark values for option "rebase" for translation
* show-ref: place angle brackets around variables in usage string

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
8 years agoMerge branch 'master' of git://github.com/git-l10n/git-po
Jiang Xin [Mon, 14 Sep 2015 22:45:32 +0000 (06:45 +0800)] 
Merge branch 'master' of git://github.com/git-l10n/git-po

* 'master' of git://github.com/git-l10n/git-po:
  l10n: de.po: translate 123 new messages
  l10n: fr.po v2.6.0 round 1 (2441t)
  l10n: sv.po: Update Swedish translation (2441t0f0u)
  l10n: zh_CN: for git v2.6.0 l10n round 1
  l10n: Updated Vietnamese translation (2441t)
  l10n: git.pot: v2.6.0 round 1 (123 new, 41 removed)
  l10n: zh_CN: Update Git Glossary: "commit message"
  l10n: zh_CN: Update Git Glossary: pickaxe
  l10n: zh_CN: Update Git Glossary: fork
  l10n: zh_CN: Update Git Glossary: tag
  l10n: zh_CN: Update Git Glossary: "dumb", "smart"
  l10n: zh_CN: Update Git Glossary: SHA-1
  l10n: zh_CN: Add Surrounding Spaces
  l10n: zh_CN: Add translations for Git glossary
  l10n: TEAMS: stash inactive zh_CN team members
  l10n: zh_CN: Update Translation of "tag"
  l10n: zh_CN: Unify Translation of "packfile"
  l10n: zh_CN: Update Translation: "tag object"

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
8 years agol10n: de.po: translate 123 new messages
Ralf Thielow [Tue, 8 Sep 2015 07:31:34 +0000 (09:31 +0200)] 
l10n: de.po: translate 123 new messages

Translate 123 new messages came from git.pot update in df0617b
(l10n: git.pot: v2.6.0 round 1 (123 new, 41 removed)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Phillip Sz <phillip.szelat@gmail.com>
Acked-by: Matthias Rüster <matthias.ruester@gmail.com>
8 years agol10n: fr.po v2.6.0 round 1 (2441t)
Jean-Noel Avila [Wed, 9 Sep 2015 20:55:10 +0000 (22:55 +0200)] 
l10n: fr.po v2.6.0 round 1 (2441t)

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
8 years agoUpdate RelNotes to 2.6
Junio C Hamano [Thu, 17 Sep 2015 19:32:58 +0000 (12:32 -0700)] 
Update RelNotes to 2.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoSync with 2.5.3
Junio C Hamano [Thu, 17 Sep 2015 19:29:49 +0000 (12:29 -0700)] 
Sync with 2.5.3

* maint:
  Git 2.5.3

8 years agoMerge branch 'po/doc-branch-desc'
Junio C Hamano [Thu, 17 Sep 2015 19:29:03 +0000 (12:29 -0700)] 
Merge branch 'po/doc-branch-desc'

The branch descriptions that are set with "git branch --edit-description"
option were used in many places but they weren't clearly documented.

* po/doc-branch-desc:
  doc: show usage of branch description

8 years agoMerge branch 'et/win32-poll-timeout'
Junio C Hamano [Thu, 17 Sep 2015 19:29:02 +0000 (12:29 -0700)] 
Merge branch 'et/win32-poll-timeout'

* et/win32-poll-timeout:
  poll: honor the timeout on Win32

8 years agoMerge branch 'as/config-doc-markup-fix'
Junio C Hamano [Thu, 17 Sep 2015 19:29:01 +0000 (12:29 -0700)] 
Merge branch 'as/config-doc-markup-fix'

* as/config-doc-markup-fix:
  Documentation/config: fix formatting for branch.*.rebase and pull.rebase

8 years agoGit 2.5.3 v2.5.3
Junio C Hamano [Thu, 17 Sep 2015 19:16:10 +0000 (12:16 -0700)] 
Git 2.5.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'dt/untracked-subdir' into maint
Junio C Hamano [Thu, 17 Sep 2015 19:12:29 +0000 (12:12 -0700)] 
Merge branch 'dt/untracked-subdir' into maint

The experimental untracked-cache feature were buggy when paths with
a few levels of subdirectories are involved.

* dt/untracked-subdir:
  untracked cache: fix entry invalidation
  untracked-cache: fix subdirectory handling
  t7063: use --force-untracked-cache to speed up a bit
  untracked-cache: support sparse checkout

8 years agoMerge branch 'br/svn-doc-include-paths-config' into maint
Junio C Hamano [Thu, 17 Sep 2015 19:11:46 +0000 (12:11 -0700)] 
Merge branch 'br/svn-doc-include-paths-config' into maint

* br/svn-doc-include-paths-config:
  git-svn doc: mention "svn-remote.<name>.include-paths"

8 years agoMerge branch 'ah/submodule-typofix-in-error' into maint
Junio C Hamano [Thu, 17 Sep 2015 19:11:06 +0000 (12:11 -0700)] 
Merge branch 'ah/submodule-typofix-in-error' into maint

Error string fix.

* ah/submodule-typofix-in-error:
  git-submodule: remove extraneous space from error message

8 years agoMerge branch 'js/maint-am-skip-performance-regression' into maint
Junio C Hamano [Thu, 17 Sep 2015 19:03:02 +0000 (12:03 -0700)] 
Merge branch 'js/maint-am-skip-performance-regression' into maint

* js/maint-am-skip-performance-regression:
  am --skip/--abort: merge HEAD/ORIG_HEAD tree into index

8 years agomailmap: update my entry with new email address
Ramsay Jones [Tue, 1 Sep 2015 15:50:06 +0000 (16:50 +0100)] 
mailmap: update my entry with new email address

My 'demon' email address is no longer functional since, after 16+
years with demon, I have had to change my ISP. :(

Also, take the opportunity to remove my middle name, which I only
use on official documents (or in the GECOS field when creating a
user account on unix).

Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoUpdate RelNotes to 2.6 to describe leftover bits since -rc2
Junio C Hamano [Mon, 14 Sep 2015 22:00:41 +0000 (15:00 -0700)] 
Update RelNotes to 2.6 to describe leftover bits since -rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'js/maint-am-skip-performance-regression'
Junio C Hamano [Mon, 14 Sep 2015 21:59:07 +0000 (14:59 -0700)] 
Merge branch 'js/maint-am-skip-performance-regression'

Recent versions of scripted "git am" has a performance regression in
"git am --skip" codepath, which no longer exists in the built-in
version on the 'master' front.  Fix the regression in the last
scripted version that appear in 2.5.x maintenance track and older.

* js/maint-am-skip-performance-regression:
  am --skip/--abort: merge HEAD/ORIG_HEAD tree into index

8 years agoMerge branch 'ah/show-ref-usage-string'
Junio C Hamano [Mon, 14 Sep 2015 21:59:06 +0000 (14:59 -0700)] 
Merge branch 'ah/show-ref-usage-string'

Both "git show-ref -h" and "git show-ref --help" illustrated that the
"--exclude-existing" option makes the command read list of refs
from its standard input.  Change only the "show-ref -h" output to
have a pair of "<>" around the placeholder that designate an input
file, i.e. "git show-ref --exclude-existing < <ref-list>".

* ah/show-ref-usage-string:
  show-ref: place angle brackets around variables in usage string

8 years agoMerge branch 'sg/help-group'
Junio C Hamano [Mon, 14 Sep 2015 21:59:05 +0000 (14:59 -0700)] 
Merge branch 'sg/help-group'

* sg/help-group:
  Makefile: use SHELL_PATH when running generate-cmdlist.sh

8 years agoMerge branch 'rt/help-strings-fix'
Junio C Hamano [Mon, 14 Sep 2015 21:59:04 +0000 (14:59 -0700)] 
Merge branch 'rt/help-strings-fix'

* rt/help-strings-fix:
  tag, update-ref: improve description of option "create-reflog"
  pull: don't mark values for option "rebase" for translation

8 years agoGit 2.6-rc2 v2.6.0-rc2
Junio C Hamano [Mon, 14 Sep 2015 20:17:56 +0000 (13:17 -0700)] 
Git 2.6-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agopoll: honor the timeout on Win32
Edward Thomson [Sat, 12 Sep 2015 17:50:26 +0000 (17:50 +0000)] 
poll: honor the timeout on Win32

Ensure that when passing a pipe, the gnulib poll replacement will not
return 0 before the timeout has passed.

Not obeying the timeout (and merely returning 0) causes pathological
behavior when preparing a packfile for a repository and taking a
long time to do so.  If poll were to return 0 immediately, this would
cause keep-alives to get sent as quickly as possible until the packfile
was created.  Such deviance from the standard would cause megabytes (or
more) of keep-alive packets to be sent.

GetTickCount is used as it is efficient, stable and monotonically
increasing.  (Neither GetSystemTime nor QueryPerformanceCounter have
all three of these properties.)

Signed-off-by: Edward Thomson <ethomson@microsoft.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agodoc: show usage of branch description
Philip Oakley [Mon, 14 Sep 2015 14:10:53 +0000 (15:10 +0100)] 
doc: show usage of branch description

The branch description will be included in 'git format-patch
--cover-letter' and in 'git pull-request' emails. It can also
be used in the automatic merge message. Tell the reader.

While here, clarify that the description may be a multi-line
explanation of the purpose of the branch's patch series.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge git://ozlabs.org/~paulus/gitk
Junio C Hamano [Mon, 14 Sep 2015 18:50:21 +0000 (11:50 -0700)] 
Merge git://ozlabs.org/~paulus/gitk

* git://ozlabs.org/~paulus/gitk:
  gitk: Accelerators for the main menu
  gitk: Adjust the menu line numbers to compensate for the new entry
  gitk: Add a "Copy commit summary" command
  gitk: Update Bulgarian translation (307t)
  gitk: Update .po files
  gitk: Update Bulgarian translation (304t)
  gitk: Use translated version of "Command line" in getcommitlines
  gitk: Make it easier to go quickly to a specific commit
  gitk: Show the current view's name in the window title
  gitk: Add mouse right-click options to copy path and branch name
  gitk: Remove mc parameter from proc show_error
  gitk: Fix error when changing colors after closing "List references" window
  gitk: Replace catch {unset foo} with unset -nocomplain foo
  gitk: Rearrange window title to be more conventional
  gitk: sv.po: Update Swedish translation (305t0f0u)
  gitk: Fix bad English grammar "Matches none Commit Info"

8 years agoMerge branch 'jk/pack-protocol-doc'
Junio C Hamano [Mon, 14 Sep 2015 18:46:59 +0000 (11:46 -0700)] 
Merge branch 'jk/pack-protocol-doc'

Streamline documentation of the pkt-line protocol.

* jk/pack-protocol-doc:
  pack-protocol: clarify LF-handling in PKT-LINE()

8 years agoMerge branch 'mp/t7060-diff-index-test'
Junio C Hamano [Mon, 14 Sep 2015 18:46:28 +0000 (11:46 -0700)] 
Merge branch 'mp/t7060-diff-index-test'

Fix an old test that was doing the same thing as another one.

* mp/t7060-diff-index-test:
  t7060: actually test "git diff-index --cached -M"

8 years agoMerge branch 'gb/apply-comment-typofix'
Junio C Hamano [Mon, 14 Sep 2015 18:44:43 +0000 (11:44 -0700)] 
Merge branch 'gb/apply-comment-typofix'

* gb/apply-comment-typofix:
  apply: comment grammar fix

8 years agogitk: Accelerators for the main menu
Giuseppe Bilotta [Wed, 9 Sep 2015 13:20:53 +0000 (15:20 +0200)] 
gitk: Accelerators for the main menu

This allows fast, keyboard-only usage of the menu (e.g. Alt+V, N to open a
new view).

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agogitk: Adjust the menu line numbers to compensate for the new entry
Beat Bolli [Mon, 7 Sep 2015 23:16:37 +0000 (01:16 +0200)] 
gitk: Adjust the menu line numbers to compensate for the new entry

Commit d835dbb9 ("gitk: Add a "Copy commit summary" command",
2015-08-13) in the upstream gitk repo added a new context menu entry.
Therefore, the line numbers of the entries below the new one need to be
adjusted when their text or state is changed.

Signed-off-by: Beat Bolli <dev+git@drbeat.li>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agoDocumentation/config: fix formatting for branch.*.rebase and pull.rebase
Andreas Schwab [Sat, 12 Sep 2015 14:26:53 +0000 (16:26 +0200)] 
Documentation/config: fix formatting for branch.*.rebase and pull.rebase

Don't format the second paragraph as a literal block.

Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agotag, update-ref: improve description of option "create-reflog"
Ralf Thielow [Fri, 11 Sep 2015 16:04:13 +0000 (18:04 +0200)] 
tag, update-ref: improve description of option "create-reflog"

The description of option "create-reflog" is "create_reflog", which
is neither a good description, nor a sensible string to translate.
Change it to a more meaningful message.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agopull: don't mark values for option "rebase" for translation
Ralf Thielow [Fri, 11 Sep 2015 15:53:17 +0000 (17:53 +0200)] 
pull: don't mark values for option "rebase" for translation

"false|true|preserve" are actual values for option "rebase"
of the "git-pull" command and should therefore not be marked
for translation.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMakefile: use SHELL_PATH when running generate-cmdlist.sh
Alejandro R. Sedeño [Thu, 10 Sep 2015 23:37:07 +0000 (19:37 -0400)] 
Makefile: use SHELL_PATH when running generate-cmdlist.sh

Non-POSIX shells, such as /bin/sh on SunOS, do not support $((...))
arithmetic expansion or $(...) command substitution needed by
generate-cmdlist.sh.  Make sure that we use a POSIX compliant shell
$(SHELL_PATH) when running generate-cmdlist.sh.

Signed-off-by: Alejandro R. Sedeño <asedeno@mit.edu>
Acked-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge git://bogomips.org/git-svn
Junio C Hamano [Thu, 10 Sep 2015 21:06:58 +0000 (14:06 -0700)] 
Merge git://bogomips.org/git-svn

* git://bogomips.org/git-svn:
  git-svn: parse authors file more leniently

8 years agogit-svn: parse authors file more leniently
Michael J Gruber [Thu, 10 Sep 2015 12:32:13 +0000 (14:32 +0200)] 
git-svn: parse authors file more leniently

Currently, git-svn parses an authors file using the perl regex

/^(.+?|\(no author\))\s*=\s*(.+?)\s*<(.+)>\s*$/

in order to extract svn user name, real name and e-mail.
This does not match an empty e-mail field like "<>". On the other hand,
the output of an authors-prog is parsed with the perl regex

/^\s*(.+?)\s*<(.*)>\s*$/

in order to extract real name and e-mail.

So, specifying a trivial file grep such as

grep "$1" /tmp/authors | head -n 1 | cut -d'=' -f2 | cut -c'2-'

as the authors prog gives different results compared to specifying
/tmp/authors as the authors file directly.

Instead, make git svn uses the perl regex

/^(.+?|\(no author\))\s*=\s*(.+?)\s*<(.*)>\s*$/

for parsing the authors file so that the same (slightly more lenient)
regex is used in both cases.

Reported-by: Till Schäfer <till2.schaefer@tu-dortmund.de>
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
8 years agoMerge branch 'master' of github.com:jiangxin/git
Jiang Xin [Thu, 10 Sep 2015 15:14:16 +0000 (23:14 +0800)] 
Merge branch 'master' of github.com:jiangxin/git

* 'master' of github.com:jiangxin/git:
  l10n: zh_CN: for git v2.6.0 l10n round 1
  l10n: zh_CN: Update Git Glossary: "commit message"
  l10n: zh_CN: Update Git Glossary: pickaxe
  l10n: zh_CN: Update Git Glossary: fork
  l10n: zh_CN: Update Git Glossary: tag
  l10n: zh_CN: Update Git Glossary: "dumb", "smart"
  l10n: zh_CN: Update Git Glossary: SHA-1
  l10n: zh_CN: Add Surrounding Spaces
  l10n: zh_CN: Add translations for Git glossary
  l10n: TEAMS: stash inactive zh_CN team members
  l10n: zh_CN: Update Translation of "tag"
  l10n: zh_CN: Unify Translation of "packfile"
  l10n: zh_CN: Update Translation: "tag object"

8 years agoSync with 2.5.2
Junio C Hamano [Wed, 9 Sep 2015 21:30:35 +0000 (14:30 -0700)] 
Sync with 2.5.2

8 years agoam --skip/--abort: merge HEAD/ORIG_HEAD tree into index
Johannes Schindelin [Wed, 9 Sep 2015 09:10:07 +0000 (09:10 +0000)] 
am --skip/--abort: merge HEAD/ORIG_HEAD tree into index

f8da6801 (am --skip: support skipping while on unborn branch,
2015-06-06) introduced a performance regression to "git am --skip",
where it used "read-tree" to reconstruct the index from scratch
without reusing the cached stat information.

This is a backport of the corresponding patch to the builtin am in 2.6:
3ecc704 (am --skip/--abort: merge HEAD/ORIG_HEAD tree into index,
2015-08-19).

Reportedly, it can make a huge difference on Windows, in one case a `git
rebase --skip` took 1m40s without, and 5s with, this patch.

cf. https://github.com/git-for-windows/git/issues/365

Reported-and-suggested-by: Kim Gybels <kgybels@infogroep.be>
Acked-by: Paul Tan <pyokagan@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agol10n: sv.po: Update Swedish translation (2441t0f0u)
Peter Krefting [Wed, 9 Sep 2015 20:46:35 +0000 (21:46 +0100)] 
l10n: sv.po: Update Swedish translation (2441t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
8 years agoRelease Notes: typofix
Junio C Hamano [Wed, 9 Sep 2015 17:34:35 +0000 (10:34 -0700)] 
Release Notes: typofix

Thanks to Andreas Schwab for careful reading.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoapply: comment grammar fix
Giuseppe Bilotta [Wed, 9 Sep 2015 13:33:18 +0000 (15:33 +0200)] 
apply: comment grammar fix

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoGit 2.6-rc1 v2.6.0-rc1
Junio C Hamano [Tue, 8 Sep 2015 22:38:43 +0000 (15:38 -0700)] 
Git 2.6-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'jc/builtin-am-signoff-regression-fix'
Junio C Hamano [Tue, 8 Sep 2015 22:34:57 +0000 (15:34 -0700)] 
Merge branch 'jc/builtin-am-signoff-regression-fix'

Recent "git am" had regression when adding a Signed-off-by line
with its "-s" option by an unintended tightening of how an existing
trailer block is detected.

* jc/builtin-am-signoff-regression-fix:
  am: match --signoff to the original scripted version

8 years agol10n: zh_CN: for git v2.6.0 l10n round 1
Jiang Xin [Sun, 23 Aug 2015 07:23:21 +0000 (15:23 +0800)] 
l10n: zh_CN: for git v2.6.0 l10n round 1

Update 123 translations (2441t0f0u) for git v2.6.0-rc0.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Reviewed-by: Ray Chen <oldsharp@gmail.com>
8 years agoam: match --signoff to the original scripted version
Junio C Hamano [Sun, 6 Sep 2015 02:56:20 +0000 (19:56 -0700)] 
am: match --signoff to the original scripted version

Linus noticed that the recently reimplemented "git am -s" defines
the trailer block too rigidly, resulting in an unnecessary blank
line between the existing sign-offs and his new sign-off.  An e-mail
submission sent to Linus in real life ends with mixture of sign-offs
and commentaries, e.g.

title here

message here

Signed-off-by: Original Author <original@auth.or>
[rv: tweaked frotz and nitfol]
Signed-off-by: Re Viewer <rv@ew.er>
Signed-off-by: Other Reviewer <other@rev.ewer>
---
patch here

Because the reimplementation reused append_signoff() helper that is
used by other codepaths, which is unaware that people intermix such
comments with their sign-offs in the trailer block, such a message
was judged to end with a non-trailer, resulting in an extra blank
line before adding a new sign-off.

The original scripted version of "git am" used a lot looser
definition, i.e. "if and only if there is no line that begins with
Signed-off-by:, add a blank line before adding a new sign-off".  For
the upcoming release, stop using the append_signoff() in "git am"
and reimplement the looser definition used by the scripted version
to use only in "git am" to fix this regression in "am" while
avoiding new regressions to other users of append_signoff().

In the longer term, we should look into loosening append_signoff()
so that other codepaths that add a new sign-off behave the same way
as "git am -s", but that is a task for post-release.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agol10n: Updated Vietnamese translation (2441t)
Tran Ngoc Quan [Mon, 7 Sep 2015 01:54:05 +0000 (08:54 +0700)] 
l10n: Updated Vietnamese translation (2441t)

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
8 years agoMerge branch 'master' of github.com:jiangxin/git into master
Jiang Xin [Sat, 5 Sep 2015 01:23:31 +0000 (09:23 +0800)] 
Merge branch 'master' of github.com:jiangxin/git into master

* 'master' of github.com:jiangxin/git:
  l10n: zh_CN: Update Git Glossary: "commit message"
  l10n: zh_CN: Update Git Glossary: pickaxe
  l10n: zh_CN: Update Git Glossary: fork
  l10n: zh_CN: Update Git Glossary: tag
  l10n: zh_CN: Update Git Glossary: "dumb", "smart"
  l10n: zh_CN: Update Git Glossary: SHA-1
  l10n: zh_CN: Add Surrounding Spaces
  l10n: zh_CN: Add translations for Git glossary
  l10n: TEAMS: stash inactive zh_CN team members
  l10n: zh_CN: Update Translation of "tag"
  l10n: zh_CN: Unify Translation of "packfile"
  l10n: zh_CN: Update Translation: "tag object"

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
8 years agol10n: git.pot: v2.6.0 round 1 (123 new, 41 removed)
Jiang Xin [Sat, 5 Sep 2015 01:21:10 +0000 (09:21 +0800)] 
l10n: git.pot: v2.6.0 round 1 (123 new, 41 removed)

Generate po/git.pot from v2.6.0-rc0-24-gec371ff for git v2.6.0 l10n
round 1.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
8 years agoSync with maint
Junio C Hamano [Fri, 4 Sep 2015 21:34:57 +0000 (14:34 -0700)] 
Sync with maint

* maint:

8 years agoGit 2.5.2 v2.5.2
Junio C Hamano [Fri, 4 Sep 2015 17:46:00 +0000 (10:46 -0700)] 
Git 2.5.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoSync with 2.4.9
Junio C Hamano [Fri, 4 Sep 2015 17:43:23 +0000 (10:43 -0700)] 
Sync with 2.4.9

8 years agoGit 2.4.9 v2.4.9
Junio C Hamano [Fri, 4 Sep 2015 17:36:00 +0000 (10:36 -0700)] 
Git 2.4.9

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoSync with 2.3.9
Junio C Hamano [Fri, 4 Sep 2015 17:34:19 +0000 (10:34 -0700)] 
Sync with 2.3.9

8 years agoGit 2.3.9 v2.3.9
Junio C Hamano [Fri, 4 Sep 2015 17:31:34 +0000 (10:31 -0700)] 
Git 2.3.9

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoSync with 2.2.3
Junio C Hamano [Fri, 4 Sep 2015 17:29:28 +0000 (10:29 -0700)] 
Sync with 2.2.3

8 years agoGit 2.2.3 v2.2.3
Junio C Hamano [Fri, 4 Sep 2015 17:25:47 +0000 (10:25 -0700)] 
Git 2.2.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'jk/long-paths' into maint-2.2
Junio C Hamano [Fri, 4 Sep 2015 17:25:23 +0000 (10:25 -0700)] 
Merge branch 'jk/long-paths' into maint-2.2

8 years agoshow-branch: use a strbuf for reflog descriptions
Jeff King [Wed, 19 Aug 2015 18:12:48 +0000 (14:12 -0400)] 
show-branch: use a strbuf for reflog descriptions

When we show "branch@{0}", we format into a fixed-size
buffer using sprintf. This can overflow if you have long
branch names. We can fix it by using a temporary strbuf.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoread_info_alternates: handle paths larger than PATH_MAX
Jeff King [Wed, 19 Aug 2015 18:12:45 +0000 (14:12 -0400)] 
read_info_alternates: handle paths larger than PATH_MAX

This function assumes that the relative_base path passed
into it is no larger than PATH_MAX, and writes into a
fixed-size buffer. However, this path may not have actually
come from the filesystem; for example, add_submodule_odb
generates a path using a strbuf and passes it in. This is
hard to trigger in practice, though, because the long
submodule directory would have to exist on disk before we
would try to open its info/alternates file.

We can easily avoid the bug, though, by simply creating the
filename on the heap.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agonotes: use a strbuf in add_non_note
Jeff King [Wed, 19 Aug 2015 18:12:41 +0000 (14:12 -0400)] 
notes: use a strbuf in add_non_note

When we are loading a notes tree into our internal hash
table, we also collect any files that are clearly non-notes.
We format the name of the file into a PATH_MAX buffer, but
unlike true notes (which cannot be larger than a fanned-out
sha1 hash), these tree entries can be arbitrarily long,
overflowing our buffer.

We can fix this by switching to a strbuf. It doesn't even
cost us an extra allocation, as we can simply hand ownership
of the buffer over to the non-note struct.

This is of moderate security interest, as you might fetch
notes trees from an untrusted remote. However, we do not do
so by default, so you would have to manually fetch into the
notes namespace.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoverify_absent: allow filenames longer than PATH_MAX
Jeff King [Wed, 19 Aug 2015 18:12:37 +0000 (14:12 -0400)] 
verify_absent: allow filenames longer than PATH_MAX

When unpack-trees wants to know whether a path will
overwrite anything in the working tree, we use lstat() to
see if there is anything there. But if we are going to write
"foo/bar", we can't just lstat("foo/bar"); we need to look
for leading prefixes (e.g., "foo"). So we use the lstat cache
to find the length of the leading prefix, and copy the
filename up to that length into a temporary buffer (since
the original name is const, we cannot just stick a NUL in
it).

The copy we make goes into a PATH_MAX-sized buffer, which
will overflow if the prefix is longer than PATH_MAX. How
this happens is a little tricky, since in theory PATH_MAX is
the biggest path we will have read from the filesystem. But
this can happen if:

  - the compiled-in PATH_MAX does not accurately reflect
    what the filesystem is capable of

  - the leading prefix is not _quite_ what is on disk; it
    contains the next element from the name we are checking.
    So if we want to write "aaa/bbb/ccc/ddd" and "aaa/bbb"
    exists, the prefix of interest is "aaa/bbb/ccc". If
    "aaa/bbb" approaches PATH_MAX, then "ccc" can overflow
    it.

So this can be triggered, but it's hard to do. In
particular, you cannot just "git clone" a bogus repo. The
verify_absent checks happen before unpack-trees writes
anything to the filesystem, so there are never any leading
prefixes during the initial checkout, and the bug doesn't
trigger. And by definition, these files are larger than
PATH_MAX, so writing them will fail, and clone will
complain (though it may write a partial path, which will
cause a subsequent "git checkout" to hit the bug).

We can fix it by creating the temporary path on the heap.
The extra malloc overhead is not important, as we are
already making at least one stat() call (and probably more
for the prefix discovery).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'ee/clean-test-fixes' into maint
Junio C Hamano [Fri, 4 Sep 2015 02:18:05 +0000 (19:18 -0700)] 
Merge branch 'ee/clean-test-fixes' into maint

* ee/clean-test-fixes:
  t7300: fix broken && chains

8 years agoMerge branch 'jk/log-missing-default-HEAD' into maint
Junio C Hamano [Fri, 4 Sep 2015 02:18:03 +0000 (19:18 -0700)] 
Merge branch 'jk/log-missing-default-HEAD' into maint

"git init empty && git -C empty log" said "bad default revision 'HEAD'",
which was found to be a bit confusing to new users.

* jk/log-missing-default-HEAD:
  log: diagnose empty HEAD more clearly