]> git.ipfire.org Git - thirdparty/git.git/log
thirdparty/git.git
6 years agostrbuf_setlen: don't write to strbuf_slopbuf
Martin Ågren [Mon, 21 Aug 2017 17:43:47 +0000 (19:43 +0200)] 
strbuf_setlen: don't write to strbuf_slopbuf

strbuf_setlen(., 0) writes '\0' to sb.buf[0], where buf is either
allocated and unique to sb, or the global slopbuf. The slopbuf is meant
to provide a guarantee that buf is not NULL and that a freshly
initialized buffer contains the empty string, but it is not supposed to
be written to. That strbuf_setlen writes to slopbuf has at least two
implications:

First, it's wrong in principle. Second, it might be hiding misuses which
are just waiting to wreak havoc. Third, ThreadSanitizer detects a race
when multiple threads write to slopbuf at roughly the same time, thus
potentially making any more critical races harder to spot.

Avoid writing to strbuf_slopbuf in strbuf_setlen. Let's instead assert
on the first byte of slopbuf being '\0', since it helps ensure the
promised invariant of buf[len] == '\0'. (We know that "len" was already
0, or someone has messed with "alloc". If someone has fiddled with the
fields that much beyond the correct interface, they're on their own.)

This is a function which is used in many places, possibly also in hot
code paths. There are two branches in strbuf_setlen already, and we are
adding a third and possibly a fourth (in the assert). In hot code paths,
we hopefully reuse the buffer in order to avoid continous reallocations.
Thus, after a start-up phase, we should always take the same path,
which might help branch prediction, and we would never make the assert.
If a hot code path continuously reallocates, we probably have bigger
performance problems than this new safety-check.

Simple measurements do not contradict this reasoning. 100000000 times
resetting a buffer and adding the empty string takes 5.29/5.26 seconds
with/without this patch (best of three). Releasing at every iteration
yields 18.01/17.87. Adding a 30-character string instead of the empty
string yields 5.61/5.58 and 17.28/17.28(!).

This patch causes the git binary emitted by gcc 5.4.0 -O2 on my machine
to grow from 11389848 bytes to 11497184 bytes, an increase of 0.9%.

I also tried to piggy-back on the fact that we already check alloc,
which should already tell us whether we are using the slopbuf:

        if (sb->alloc) {
                if (len > sb->alloc - 1)
                        die("BUG: strbuf_setlen() beyond buffer");
                sb->buf[len] = '\0';
        } else {
                if (len)
                        die("BUG: strbuf_setlen() beyond buffer");
                assert(!strbuf_slopbuf[0]);
        }
        sb->len = len;

That didn't seem to be much slower (5.38, 18.02, 5.70, 17.32 seconds),
but it does introduce some minor code duplication. The resulting git
binary was 11510528 bytes large (another 0.1% increase).

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agopack-objects: take lock before accessing `remaining`
Martin Ågren [Mon, 21 Aug 2017 17:43:46 +0000 (19:43 +0200)] 
pack-objects: take lock before accessing `remaining`

When checking the conditional of "while (me->remaining)", we did not
hold the lock. Calling find_deltas would still be safe, since it checks
"remaining" (after taking the lock) and is able to handle all values. In
fact, this could (currently) not trigger any bug: a bug could happen if
`remaining` transitioning from zero to non-zero races with the evaluation
of the while-condition, but these are always separated by the
data_ready-mechanism.

Make sure we have the lock when we read `remaining`. This does mean we
release it just so that find_deltas can take it immediately again. We
could tweak the contract so that the lock should be taken before calling
find_deltas, but let's defer that until someone can actually show that
"unlock+lock" has a measurable negative impact.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoconvert: always initialize attr_action in convert_attrs
Martin Ågren [Mon, 21 Aug 2017 17:43:45 +0000 (19:43 +0200)] 
convert: always initialize attr_action in convert_attrs

convert_attrs contains an "if-else". In the "if", we set attr_action
twice, and the first assignment has no effect. In the "else", we do not
set it at all. Since git_check_attr always returns the same value, we'll
always end up in the "if", so there is no problem right now. But
convert_attrs is obviously trying not to rely on such an
implementation-detail of another component.

Make the initialization of attr_action after the if-else. Remove the
earlier assignments.

Suggested-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoGit 2.14.1 v2.14.1
Junio C Hamano [Fri, 4 Aug 2017 19:41:48 +0000 (12:41 -0700)] 
Git 2.14.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge tag 'v2.13.5' into maint
Junio C Hamano [Fri, 4 Aug 2017 19:40:37 +0000 (12:40 -0700)] 
Merge tag 'v2.13.5' into maint

6 years agoGit 2.14 v2.14.0
Junio C Hamano [Fri, 4 Aug 2017 16:31:12 +0000 (09:31 -0700)] 
Git 2.14

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge branch 'ah/patch-id-doc'
Junio C Hamano [Fri, 4 Aug 2017 16:29:15 +0000 (09:29 -0700)] 
Merge branch 'ah/patch-id-doc'

Docfix.

* ah/patch-id-doc:
  doc: remove unsupported parameter from patch-id

6 years agoMerge branch 'as/diff-options-grammofix'
Junio C Hamano [Fri, 4 Aug 2017 16:29:14 +0000 (09:29 -0700)] 
Merge branch 'as/diff-options-grammofix'

A grammofix.

* as/diff-options-grammofix:
  diff-options doc: grammar fix

6 years agoMerge tag 'l10n-2.14.0-rnd2' of git://github.com/git-l10n/git-po
Junio C Hamano [Wed, 2 Aug 2017 17:52:33 +0000 (10:52 -0700)] 
Merge tag 'l10n-2.14.0-rnd2' of git://github.com/git-l10n/git-po

l10n for Git 2.14.0 round 2

* tag 'l10n-2.14.0-rnd2' of git://github.com/git-l10n/git-po:
  l10n: zh_CN: review for git v2.14.0 l10n
  l10n: ko.po: Update Korean translation
  l10n: zh_CN: for git v2.14.0 l10n round 2
  l10n: de.po: various fixes in German translation
  l10n: ru.po: update Russian translation
  l10n: fr.po v2.14.0 rnd 2
  l10n: fr.po Fix some french typos
  l10n: fr.po Fix typo
  l10n: fr.po Fix some translations
  l10n: de.po: update German translation
  l10n: vi.po (3213t): Updated 9 new strings
  l10n: Update Catalan translation
  l10n: bg.po: Updated Bulgarian translation (3213t)

6 years agol10n: zh_CN: review for git v2.14.0 l10n
Jiang Xin [Wed, 2 Aug 2017 00:02:37 +0000 (08:02 +0800)] 
l10n: zh_CN: review for git v2.14.0 l10n

Reviewed-by: 依云 <lilydjwg@gmail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
6 years agoGit 2.13.5 v2.13.5
Junio C Hamano [Tue, 1 Aug 2017 19:30:00 +0000 (12:30 -0700)] 
Git 2.13.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge tag 'v2.12.4' into maint
Junio C Hamano [Tue, 1 Aug 2017 19:27:31 +0000 (12:27 -0700)] 
Merge tag 'v2.12.4' into maint

6 years agoSync with v2.13.4
Junio C Hamano [Tue, 1 Aug 2017 18:46:51 +0000 (11:46 -0700)] 
Sync with v2.13.4

6 years agoGit 2.13.4 v2.13.4
Junio C Hamano [Tue, 1 Aug 2017 18:45:17 +0000 (11:45 -0700)] 
Git 2.13.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agol10n: ko.po: Update Korean translation
Changwoo Ryu [Tue, 1 Aug 2017 03:32:00 +0000 (12:32 +0900)] 
l10n: ko.po: Update Korean translation

Signed-off-by: Changwoo Ryu <cwryu@debian.org>
6 years agol10n: zh_CN: for git v2.14.0 l10n round 2
Jiang Xin [Sun, 11 Jun 2017 03:28:31 +0000 (11:28 +0800)] 
l10n: zh_CN: for git v2.14.0 l10n round 2

Translate new l10n messages for git 2.14.0, and update translations on
"stash".

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
6 years agoSync with maint
Junio C Hamano [Mon, 31 Jul 2017 20:52:53 +0000 (13:52 -0700)] 
Sync with maint

* maint:
  Preparation for 2.13.4 continues

6 years agoPreparation for 2.13.4 continues
Junio C Hamano [Mon, 31 Jul 2017 20:52:40 +0000 (13:52 -0700)] 
Preparation for 2.13.4 continues

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge branch 'ks/doc-fixes' into maint
Junio C Hamano [Mon, 31 Jul 2017 20:51:06 +0000 (13:51 -0700)] 
Merge branch 'ks/doc-fixes' into maint

Doc clean-up.

* ks/doc-fixes:
  doc: reformat the paragraph containing the 'cut-line'
  doc: camelCase the i18n config variables to improve readability

6 years agoMerge branch 'jk/test-copy-bytes-fix' into maint
Junio C Hamano [Mon, 31 Jul 2017 20:51:05 +0000 (13:51 -0700)] 
Merge branch 'jk/test-copy-bytes-fix' into maint

A test fix.

* jk/test-copy-bytes-fix:
  t: handle EOF in test_copy_bytes()

6 years agoMerge branch 'pw/unquote-path-in-git-pm' into maint
Junio C Hamano [Mon, 31 Jul 2017 20:51:05 +0000 (13:51 -0700)] 
Merge branch 'pw/unquote-path-in-git-pm' into maint

Code refactoring.

* pw/unquote-path-in-git-pm:
  t9700: add tests for Git::unquote_path()
  Git::unquote_path(): throw an exception on bad path
  Git::unquote_path(): handle '\a'
  add -i: move unquote_path() to Git.pm

6 years agoMerge branch 'jk/gc-pre-detach-under-hook' into maint
Junio C Hamano [Mon, 31 Jul 2017 20:51:05 +0000 (13:51 -0700)] 
Merge branch 'jk/gc-pre-detach-under-hook' into maint

We run an early part of "git gc" that deals with refs before
daemonising (and not under lock) even when running a background
auto-gc, which caused multiple gc processes attempting to run the
early part at the same time.  This is now prevented by running the
early part also under the GC lock.

* jk/gc-pre-detach-under-hook:
  gc: run pre-detach operations under lock

6 years agoMerge branch 'jn/hooks-pre-rebase-sample-fix' into maint
Junio C Hamano [Mon, 31 Jul 2017 20:51:05 +0000 (13:51 -0700)] 
Merge branch 'jn/hooks-pre-rebase-sample-fix' into maint

Code clean-up, that makes us in sync with Debian by one patch.

* jn/hooks-pre-rebase-sample-fix:
  pre-rebase hook: capture documentation in a <<here document

6 years agoMerge branch 'rs/progress-overall-throughput-at-the-end' into maint
Junio C Hamano [Mon, 31 Jul 2017 20:51:04 +0000 (13:51 -0700)] 
Merge branch 'rs/progress-overall-throughput-at-the-end' into maint

The progress meter did not give a useful output when we haven't had
0.5 seconds to measure the throughput during the interval.  Instead
show the overall throughput rate at the end, which is a much more
useful number.

* rs/progress-overall-throughput-at-the-end:
  progress: show overall rate in last update

6 years agoMerge branch 'tb/push-to-cygwin-unc-path' into maint
Junio C Hamano [Mon, 31 Jul 2017 20:51:04 +0000 (13:51 -0700)] 
Merge branch 'tb/push-to-cygwin-unc-path' into maint

On Cygwin, similar to Windows, "git push //server/share/repository"
ought to mean a repository on a network share that can be accessed
locally, but this did not work correctly due to stripping the double
slashes at the beginning.

This may need to be heavily tested before it gets unleashed to the
wild, as the change is at a fairly low-level code and would affect
not just the code to decide if the push destination is local.  There
may be unexpected fallouts in the path normalization.

* tb/push-to-cygwin-unc-path:
  cygwin: allow pushing to UNC paths

6 years agoMerge branch 'rs/apply-avoid-over-reading' into maint
Junio C Hamano [Mon, 31 Jul 2017 20:51:04 +0000 (13:51 -0700)] 
Merge branch 'rs/apply-avoid-over-reading' into maint

Code cleanup.

* rs/apply-avoid-over-reading:
  apply: use strcmp(3) for comparing strings in gitdiff_verify_name()
  apply: use starts_with() in gitdiff_verify_name()

6 years agoMerge branch 'js/blame-lib'
Junio C Hamano [Mon, 31 Jul 2017 20:05:15 +0000 (13:05 -0700)] 
Merge branch 'js/blame-lib'

A hotfix to a topic already in 'master'.

* js/blame-lib:
  blame: fix memory corruption scrambling revision name in error message

6 years agodiff-options doc: grammar fix
Anthony Sottile [Mon, 31 Jul 2017 14:00:31 +0000 (07:00 -0700)] 
diff-options doc: grammar fix

Signed-off-by: Anthony Sottile <asottile@umich.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoGit 2.12.4 v2.12.4
Junio C Hamano [Sun, 30 Jul 2017 22:06:06 +0000 (15:06 -0700)] 
Git 2.12.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge tag 'v2.11.3' into maint-2.12
Junio C Hamano [Sun, 30 Jul 2017 22:04:22 +0000 (15:04 -0700)] 
Merge tag 'v2.11.3' into maint-2.12

Git 2.11.3

6 years agoMerge branch 'jk/lib-proto-disable-cleanup' into maint-2.12
Junio C Hamano [Sun, 30 Jul 2017 22:03:21 +0000 (15:03 -0700)] 
Merge branch 'jk/lib-proto-disable-cleanup' into maint-2.12

6 years agoGit 2.11.3 v2.11.3
Junio C Hamano [Sun, 30 Jul 2017 22:02:37 +0000 (15:02 -0700)] 
Git 2.11.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge tag 'v2.10.4' into maint-2.11
Junio C Hamano [Sun, 30 Jul 2017 22:01:31 +0000 (15:01 -0700)] 
Merge tag 'v2.10.4' into maint-2.11

Git 2.10.4

6 years agoGit 2.10.4 v2.10.4
Junio C Hamano [Sun, 30 Jul 2017 22:00:04 +0000 (15:00 -0700)] 
Git 2.10.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge tag 'v2.9.5' into maint-2.10
Junio C Hamano [Sun, 30 Jul 2017 21:57:33 +0000 (14:57 -0700)] 
Merge tag 'v2.9.5' into maint-2.10

Git 2.9.5

6 years agoGit 2.9.5 v2.9.5
Junio C Hamano [Sun, 30 Jul 2017 21:53:25 +0000 (14:53 -0700)] 
Git 2.9.5

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge tag 'v2.8.6' into maint-2.9
Junio C Hamano [Sun, 30 Jul 2017 21:52:14 +0000 (14:52 -0700)] 
Merge tag 'v2.8.6' into maint-2.9

Git 2.8.6

6 years agoGit 2.8.6 v2.8.6
Junio C Hamano [Sun, 30 Jul 2017 21:49:08 +0000 (14:49 -0700)] 
Git 2.8.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge tag 'v2.7.6' into maint-2.8
Junio C Hamano [Sun, 30 Jul 2017 21:46:43 +0000 (14:46 -0700)] 
Merge tag 'v2.7.6' into maint-2.8

Git 2.7.6

6 years agoGit 2.7.6 v2.7.6
Junio C Hamano [Sun, 30 Jul 2017 21:45:13 +0000 (14:45 -0700)] 
Git 2.7.6

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agol10n: de.po: various fixes in German translation
Hartmut Henkel [Thu, 27 Jul 2017 17:24:09 +0000 (19:24 +0200)] 
l10n: de.po: various fixes in German translation

Signed-off-by: Hartmut Henkel <henkel@vh-s.de>
Helped-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Matthias Rüster <matthias.ruester@gmail.com>
6 years agoMerge branch 'russian-l10n' of https://github.com/DJm00n/git-po-ru
Jiang Xin [Sun, 30 Jul 2017 14:47:47 +0000 (22:47 +0800)] 
Merge branch 'russian-l10n' of https://github.com/DJm00n/git-po-ru

* 'russian-l10n' of https://github.com/DJm00n/git-po-ru:
  l10n: ru.po: update Russian translation

6 years agol10n: ru.po: update Russian translation
Dimitriy Ryazantcev [Sun, 30 Jul 2017 09:35:40 +0000 (12:35 +0300)] 
l10n: ru.po: update Russian translation

Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com>
6 years agoMerge branch 'jk/ssh-funny-url' into maint-2.7
Junio C Hamano [Fri, 28 Jul 2017 23:11:54 +0000 (16:11 -0700)] 
Merge branch 'jk/ssh-funny-url' into maint-2.7

6 years agoconnect: reject paths that look like command line options
Jeff King [Fri, 28 Jul 2017 19:28:55 +0000 (15:28 -0400)] 
connect: reject paths that look like command line options

If we get a repo path like "-repo.git", we may try to invoke
"git-upload-pack -repo.git". This is going to fail, since
upload-pack will interpret it as a set of bogus options. But
let's reject this before we even run the sub-program, since
we would not want to allow any mischief with repo names that
actually are real command-line options.

You can still ask for such a path via git-daemon, but there's no
security problem there, because git-daemon enters the repo itself
and then passes "."  on the command line.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoconnect: reject dashed arguments for proxy commands
Jeff King [Fri, 28 Jul 2017 19:26:50 +0000 (15:26 -0400)] 
connect: reject dashed arguments for proxy commands

If you have a GIT_PROXY_COMMAND configured, we will run it
with the host/port on the command-line. If a URL contains a
mischievous host like "--foo", we don't know how the proxy
command may handle it. It's likely to break, but it may also
do something dangerous and unwanted (technically it could
even do something useful, but that seems unlikely).

We should err on the side of caution and reject this before
we even run the command.

The hostname check matches the one we do in a similar
circumstance for ssh. The port check is not present for ssh,
but there it's not necessary because the syntax is "-p
<port>", and there's no ambiguity on the parsing side.

It's not clear whether you can actually get a negative port
to the proxy here or not. Doing:

  git fetch git://remote:-1234/repo.git

keeps the "-1234" as part of the hostname, with the default
port of 9418. But it's a good idea to keep this check close
to the point of running the command to make it clear that
there's no way to circumvent it (and at worst it serves as a
belt-and-suspenders check).

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoconnect: factor out "looks like command line option" check
Jeff King [Fri, 28 Jul 2017 19:25:45 +0000 (15:25 -0400)] 
connect: factor out "looks like command line option" check

We reject hostnames that start with a dash because they may
be confused for command-line options. Let's factor out that
notion into a helper function, as we'll use it in more
places. And while it's simple now, it's not clear if some
systems might need more complex logic to handle all cases.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agot5813: add test for hostname starting with dash
Jeff King [Fri, 28 Jul 2017 19:23:32 +0000 (15:23 -0400)] 
t5813: add test for hostname starting with dash

Per the explanation in the previous patch, this should be
(and is) rejected.

Signed-off-by: Jeff King <peff@peff.net>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoconnect: reject ssh hostname that begins with a dash
Junio C Hamano [Wed, 26 Jul 2017 17:24:20 +0000 (10:24 -0700)] 
connect: reject ssh hostname that begins with a dash

When commands like "git fetch" talk with ssh://$rest_of_URL/, the
code splits $rest_of_URL into components like host, port, etc., and
then spawns the underlying "ssh" program by formulating argv[] array
that has:

 - the path to ssh command taken from GIT_SSH_COMMAND, etc.

 - dashed options like '-batch' (for Tortoise), '-p <port>' as
   needed.

 - ssh_host, which is supposed to be the hostname parsed out of
   $rest_of_URL.

 - then the command to be run on the other side, e.g. git
   upload-pack.

If the ssh_host ends up getting '-<anything>', the argv[] that is
used to spawn the command becomes something like:

    { "ssh", "-p", "22", "-<anything>", "command", "to", "run", NULL }

which obviously is bogus, but depending on the actual value of
"<anything>", will make "ssh" parse and use it as an option.

Prevent this by forbidding ssh_host that begins with a "-".

Noticed-by: Joern Schneeweisz of Recurity Labs
Reported-by: Brian at GitLab
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agot/lib-proto-disable: restore protocol.allow after config tests
Jeff King [Fri, 28 Jul 2017 21:47:48 +0000 (17:47 -0400)] 
t/lib-proto-disable: restore protocol.allow after config tests

The tests for protocol.allow actually set that variable in
the on-disk config, run a series of tests, and then never
clean up after themselves. This means that whatever tests we
run after have protocol.allow=never, which may influence
their results.

In most cases we either exit after running these tests, or
do another round of test_proto(). In the latter case, this happens to
work because:

  1. Tests of the GIT_ALLOW_PROTOCOL environment variable
     override the config.

  2. Tests of the specific config "protocol.foo.allow"
     override the protocol.allow config.

  3. The next round of protocol.allow tests start off by
     setting the config to a known value.

However, it's a land-mine waiting to trap somebody adding
new tests to one of the t581x test scripts. Let's make sure
we clean up after ourselves.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agodoc: remove unsupported parameter from patch-id
Andreas Heiduk [Thu, 27 Jul 2017 22:46:16 +0000 (00:46 +0200)] 
doc: remove unsupported parameter from patch-id

The patch is read from standard input and not from a parameter.

Signed-off-by: Andreas Heiduk <asheiduk@gmail.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge branch 'master' of https://github.com/ralfth/git-po-de
Jiang Xin [Thu, 27 Jul 2017 15:12:11 +0000 (23:12 +0800)] 
Merge branch 'master' of https://github.com/ralfth/git-po-de

* 'master' of https://github.com/ralfth/git-po-de:
  l10n: de.po: update German translation

6 years agoMerge branch 'fr_l10n_v2.14.0rnd2' of git://github.com/jnavila/git
Jiang Xin [Thu, 27 Jul 2017 15:10:13 +0000 (23:10 +0800)] 
Merge branch 'fr_l10n_v2.14.0rnd2' of git://github.com/jnavila/git

* 'fr_l10n_v2.14.0rnd2' of git://github.com/jnavila/git:
  l10n: fr.po v2.14.0 rnd 2
  l10n: fr.po Fix some french typos
  l10n: fr.po Fix typo
  l10n: fr.po Fix some translations

6 years agol10n: fr.po v2.14.0 rnd 2
Jean-Noel Avila [Wed, 26 Jul 2017 13:48:29 +0000 (15:48 +0200)] 
l10n: fr.po v2.14.0 rnd 2

Signed-off-by: Jean-Noel Avila <jean-noel.avila@scantech.fr>
6 years agol10n: fr.po Fix some french typos
Sylvestre Ledru [Thu, 22 Jun 2017 09:22:47 +0000 (11:22 +0200)] 
l10n: fr.po Fix some french typos

Signed-off-by: Sylvestre Ledru <sylvestre@debian.org>
6 years agol10n: fr.po Fix typo
Louis [Thu, 6 Jul 2017 20:21:14 +0000 (22:21 +0200)] 
l10n: fr.po Fix typo

Signed-off-by: Louis <spalax@gresille.org>
6 years agol10n: fr.po Fix some translations
Hugues Peccatte [Wed, 17 May 2017 20:26:19 +0000 (22:26 +0200)] 
l10n: fr.po Fix some translations

Signed-off-by: Hugues Peccatte <hugues.peccatte@aareon.fr>
Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
6 years agol10n: de.po: update German translation
Ralf Thielow [Fri, 21 Jul 2017 16:59:08 +0000 (18:59 +0200)] 
l10n: de.po: update German translation

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
6 years agoMerge branch 'master' of https://github.com/Softcatala/git-po
Jiang Xin [Tue, 25 Jul 2017 16:13:54 +0000 (00:13 +0800)] 
Merge branch 'master' of https://github.com/Softcatala/git-po

* 'master' of https://github.com/Softcatala/git-po:
  l10n: Update Catalan translation

6 years agoMerge branch 'master' of git://github.com/alshopov/git-po
Jiang Xin [Tue, 25 Jul 2017 16:13:05 +0000 (00:13 +0800)] 
Merge branch 'master' of git://github.com/alshopov/git-po

* 'master' of git://github.com/alshopov/git-po:
  l10n: bg.po: Updated Bulgarian translation (3213t)

6 years agol10n: vi.po (3213t): Updated 9 new strings
Tran Ngoc Quan [Tue, 25 Jul 2017 00:09:13 +0000 (07:09 +0700)] 
l10n: vi.po (3213t): Updated 9 new strings

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
6 years agoGit 2.14-rc1 v2.14.0-rc1
Junio C Hamano [Mon, 24 Jul 2017 21:50:35 +0000 (14:50 -0700)] 
Git 2.14-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoblame: fix memory corruption scrambling revision name in error message
SZEDER Gábor [Mon, 24 Jul 2017 21:15:50 +0000 (23:15 +0200)] 
blame: fix memory corruption scrambling revision name in error message

When attempting to blame a non-existing path, git should show an error
message like this:

  $ git blame e83c51633 -- nonexisting-file
  fatal: no such path nonexisting-file in e83c51633

Since the recent commit 835c49f7d (blame: rework methods that
determine 'final' commit, 2017-05-24) the revision name is either
missing or some scrambled characters are shown instead.  The reason is
that the revision name must be duplicated, because it is invalidated
when the pending objects array is cleared in the meantime, but this
commit dropped the duplication.

Restore the duplication of the revision name in the affected functions
(find_single_final() and find_single_initial()).

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge https://github.com/git-l10n/git-po
Junio C Hamano [Mon, 24 Jul 2017 21:01:08 +0000 (14:01 -0700)] 
Merge https://github.com/git-l10n/git-po

* https://github.com/git-l10n/git-po:
  l10n: git.pot: v2.14.0 round 2 (9 new, 2 removed)
  l10n: sv.po: Update Swedish translation (3206t0f0u)
  l10n: ko.po: Update Korean translation
  l10n: Update Catalan translation
  l10n: bg.po: Updated Bulgarian translation (3206t)
  l10n: vi.po(3206t): Update Vietnamese translation
  l10n: git.pot: v2.14.0 round 1 (34 new, 23 removed)
  l10n: ru.po: update Russian translation
  l10n: Fixes to Catalan translation

6 years agol10n: Update Catalan translation
Jordi Mas [Mon, 24 Jul 2017 16:29:29 +0000 (18:29 +0200)] 
l10n: Update Catalan translation

Signed-off-by: Jordi Mas <jmas@softcatala.org>
6 years agol10n: bg.po: Updated Bulgarian translation (3213t)
Alexander Shopov [Mon, 24 Jul 2017 15:27:43 +0000 (17:27 +0200)] 
l10n: bg.po: Updated Bulgarian translation (3213t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
6 years agol10n: git.pot: v2.14.0 round 2 (9 new, 2 removed)
Jiang Xin [Mon, 24 Jul 2017 14:00:44 +0000 (22:00 +0800)] 
l10n: git.pot: v2.14.0 round 2 (9 new, 2 removed)

Generate po/git.pot from v2.14.0-rc0-40-g5eada8987e for git v2.14.0 l10n round 2.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
6 years agoMerge branch 'master' of git://github.com/git-l10n/git-po
Jiang Xin [Mon, 24 Jul 2017 13:53:47 +0000 (21:53 +0800)] 
Merge branch 'master' of git://github.com/git-l10n/git-po

* 'master' of git://github.com/git-l10n/git-po:
  l10n: sv.po: Update Swedish translation (3206t0f0u)
  l10n: ko.po: Update Korean translation
  l10n: Update Catalan translation
  l10n: bg.po: Updated Bulgarian translation (3206t)
  l10n: vi.po(3206t): Update Vietnamese translation
  l10n: git.pot: v2.14.0 round 1 (34 new, 23 removed)
  l10n: ru.po: update Russian translation
  l10n: Fixes to Catalan translation

6 years agoMerge branch 'master' of git://github.com/nafmo/git-l10n-sv
Jiang Xin [Fri, 21 Jul 2017 22:19:21 +0000 (06:19 +0800)] 
Merge branch 'master' of git://github.com/nafmo/git-l10n-sv

* 'master' of git://github.com/nafmo/git-l10n-sv:
  l10n: sv.po: Update Swedish translation (3206t0f0u)

6 years agoSync with maint
Junio C Hamano [Fri, 21 Jul 2017 22:13:25 +0000 (15:13 -0700)] 
Sync with maint

* maint:
  fixes from 'master' for 2.13.4

6 years agofixes from 'master' for 2.13.4
Junio C Hamano [Fri, 21 Jul 2017 22:06:09 +0000 (15:06 -0700)] 
fixes from 'master' for 2.13.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge branch 'ew/fd-cloexec-fix' into maint
Junio C Hamano [Fri, 21 Jul 2017 22:03:40 +0000 (15:03 -0700)] 
Merge branch 'ew/fd-cloexec-fix' into maint

Portability/fallback fix.

* ew/fd-cloexec-fix:
  set FD_CLOEXEC properly when O_CLOEXEC is not supported

6 years agoMerge branch 'ks/fix-rebase-doc-picture' into maint
Junio C Hamano [Fri, 21 Jul 2017 22:03:39 +0000 (15:03 -0700)] 
Merge branch 'ks/fix-rebase-doc-picture' into maint

Doc update.

* ks/fix-rebase-doc-picture:
  doc: correct a mistake in an illustration

6 years agoMerge branch 'js/alias-case-sensitivity' into maint
Junio C Hamano [Fri, 21 Jul 2017 22:03:38 +0000 (15:03 -0700)] 
Merge branch 'js/alias-case-sensitivity' into maint

A recent update broke an alias that contained an uppercase letter.

* js/alias-case-sensitivity:
  alias: compare alias name *case-insensitively*
  t1300: demonstrate that CamelCased aliases regressed

6 years agoMerge branch 'bb/unicode-10.0' into maint
Junio C Hamano [Fri, 21 Jul 2017 22:03:38 +0000 (15:03 -0700)] 
Merge branch 'bb/unicode-10.0' into maint

Update the character width tables.

* bb/unicode-10.0:
  unicode: update the width tables to Unicode 10

6 years agoHopefully the final last-minute fix before -rc1
Junio C Hamano [Fri, 21 Jul 2017 22:02:51 +0000 (15:02 -0700)] 
Hopefully the final last-minute fix before -rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge branch 'ks/doc-fixes'
Junio C Hamano [Fri, 21 Jul 2017 21:57:37 +0000 (14:57 -0700)] 
Merge branch 'ks/doc-fixes'

Doc clean-up.

* ks/doc-fixes:
  doc: reformat the paragraph containing the 'cut-line'
  doc: camelCase the i18n config variables to improve readability

6 years agoMerge branch 'rj/cygwin-fread-reads-directories'
Junio C Hamano [Fri, 21 Jul 2017 21:57:37 +0000 (14:57 -0700)] 
Merge branch 'rj/cygwin-fread-reads-directories'

It turns out that Cygwin also needs the fopen() wrapper that
returns failure when a directory is opened for reading.

* rj/cygwin-fread-reads-directories:
  config.mak.uname: set FREAD_READS_DIRECTORIES for cygwin

6 years agoMerge branch 'jc/po-pritime-fix'
Junio C Hamano [Fri, 21 Jul 2017 21:57:36 +0000 (14:57 -0700)] 
Merge branch 'jc/po-pritime-fix'

We started using "%" PRItime, imitating "%" PRIuMAX and friends, as
a way to format the internal timestamp value, but this does not
play well with gettext(1) i18n framework, and causes "make pot"
that is run by the l10n coordinator to create a broken po/git.pot
file.  This is a possible workaround for that problem.

* jc/po-pritime-fix:
  Makefile: help gettext tools to cope with our custom PRItime format

6 years agoconfig.mak.uname: set FREAD_READS_DIRECTORIES for cygwin
Ramsay Jones [Fri, 21 Jul 2017 18:43:17 +0000 (19:43 +0100)] 
config.mak.uname: set FREAD_READS_DIRECTORIES for cygwin

Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoA few more topics while waiting for the po/PRItime resolution
Junio C Hamano [Thu, 20 Jul 2017 23:31:56 +0000 (16:31 -0700)] 
A few more topics while waiting for the po/PRItime resolution

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge branch 'mt/p4-parse-G-output'
Junio C Hamano [Thu, 20 Jul 2017 23:30:00 +0000 (16:30 -0700)] 
Merge branch 'mt/p4-parse-G-output'

Use "p4 -G" to make "p4 changes" output more Python-friendly
to parse.

* mt/p4-parse-G-output:
  git-p4: filter for {'code':'info'} in p4CmdList
  git-p4: parse marshal output "p4 -G" in p4 changes
  git-p4: git-p4 tests with p4 triggers

6 years agoMerge branch 'ew/fd-cloexec-fix'
Junio C Hamano [Thu, 20 Jul 2017 23:30:00 +0000 (16:30 -0700)] 
Merge branch 'ew/fd-cloexec-fix'

Portability/fallback fix.

* ew/fd-cloexec-fix:
  set FD_CLOEXEC properly when O_CLOEXEC is not supported

6 years agoMerge branch 'jk/build-with-asan'
Junio C Hamano [Thu, 20 Jul 2017 23:29:59 +0000 (16:29 -0700)] 
Merge branch 'jk/build-with-asan'

A recent update made it easier to use "-fsanitize=" option while
compiling but supported only one sanitize option.  Allow more than
one to be combined, joined with a comma, like "make SANITIZE=foo,bar".

* jk/build-with-asan:
  Makefile: allow combining UBSan with other sanitizers

6 years agoMerge branch 'jk/test-copy-bytes-fix'
Junio C Hamano [Thu, 20 Jul 2017 23:29:59 +0000 (16:29 -0700)] 
Merge branch 'jk/test-copy-bytes-fix'

A test fix.

* jk/test-copy-bytes-fix:
  t: handle EOF in test_copy_bytes()

6 years agoMerge branch 'js/alias-case-sensitivity'
Junio C Hamano [Thu, 20 Jul 2017 23:29:59 +0000 (16:29 -0700)] 
Merge branch 'js/alias-case-sensitivity'

A recent update broke an alias that contained an uppercase letter.

* js/alias-case-sensitivity:
  alias: compare alias name *case-insensitively*
  t1300: demonstrate that CamelCased aliases regressed

6 years agol10n: sv.po: Update Swedish translation (3206t0f0u)
Peter Krefting [Thu, 20 Jul 2017 21:00:16 +0000 (23:00 +0200)] 
l10n: sv.po: Update Swedish translation (3206t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
6 years agoRelNotes: mention "sha1dc: optionally use sha1collisiondetection as a submodule"
Ævar Arnfjörð Bjarmason [Thu, 20 Jul 2017 14:19:24 +0000 (14:19 +0000)] 
RelNotes: mention "sha1dc: optionally use sha1collisiondetection as a submodule"

To note that merely cloning git.git without --recurse-submodules
doesn't get you a full copy of the code anymore. See
5f6482d642 ("RelNotes: mention "log: make --regexp-ignore-case work
with --perl-regexp"", 2017-07-20).

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoRelNotes: mention "log: make --regexp-ignore-case work with --perl-regexp"
Ævar Arnfjörð Bjarmason [Thu, 20 Jul 2017 14:19:23 +0000 (14:19 +0000)] 
RelNotes: mention "log: make --regexp-ignore-case work with --perl-regexp"

To inform users that they can use --regexp-ignore-case now, and that
existing scripts which relied on that + PCRE may be buggy. See
9e3cbc59d5 ("log: make --regexp-ignore-case work with --perl-regexp",
2017-05-20).

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoRelNotes: mention "log: add -P as a synonym for --perl-regexp"
Ævar Arnfjörð Bjarmason [Thu, 20 Jul 2017 14:19:22 +0000 (14:19 +0000)] 
RelNotes: mention "log: add -P as a synonym for --perl-regexp"

To inform users that they can use the short form now. See
7531a2dd87 ("log: add -P as a synonym for --perl-regexp", 2017-05-25).

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMakefile: help gettext tools to cope with our custom PRItime format
Junio C Hamano [Thu, 20 Jul 2017 18:57:01 +0000 (11:57 -0700)] 
Makefile: help gettext tools to cope with our custom PRItime format

We started using our own timestamp_t type and PRItime format
specifier to go along with it, so that we can later change the
underlying type and output format more easily, but this does not
play well with gettext tools.

Because gettext tools need to keep the *.po file portable across
platforms, they have to special-case the format specifiers like
PRIuMAX that are known types in inttypes.h, instead of letting CPP
handle strings like

    "%" PRIuMAX " seconds ago"

as an ordinary string concatenation.  They fundamentally cannot do
the same for our own custom type/format.

Given that po/git.pot needs to be generated only once every release
and by only one person, i.e. the l10n coordinator, let's update the
Makefile rule to generate po/git.pot so that gettext tools are run
on a munged set of sources in which all mentions of PRItime are
replaced with PRIuMAX, which is what we happen to use right now.

This way, developers do not have to care that PRItime does not play
well with gettext, and translators do not have to care that we use
our own PRItime.

The credit for the idea to munge the source files goes to Dscho.
Possible bugs are mine.

Helped-by: Jiang Xin <worldhello.net@gmail.com>
Helped-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agol10n: ko.po: Update Korean translation
Changwoo Ryu [Wed, 19 Jul 2017 08:15:28 +0000 (17:15 +0900)] 
l10n: ko.po: Update Korean translation

Signed-off-by: Changwoo Ryu <cwryu@debian.org>
6 years agodoc: reformat the paragraph containing the 'cut-line'
Kaartic Sivaraam [Tue, 18 Jul 2017 14:34:27 +0000 (20:04 +0530)] 
doc: reformat the paragraph containing the 'cut-line'

The paragraph that describes the 'scissors' cleanup mode of
'commit' had the 'cut-line' in the middle of a sentence. This
made it possible for the line to get wrapped on smaler windows.
This shouldn't be the case as it makes it hard for the user to
understand the structure of the cut-line.

Reformat the pragraph to make the 'cut-line' stand on a line of
it's own thus distinguishing it from the rest of the paragraph.
This further prevents it from getting wrapped to some extent.

Signed-off-by: Kaartic Sivaraam <kaarticsivaraam91196@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoA few more topics before 2.14-rc1
Junio C Hamano [Tue, 18 Jul 2017 19:52:49 +0000 (12:52 -0700)] 
A few more topics before 2.14-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
6 years agoMerge branch 'jk/gc-pre-detach-under-hook'
Junio C Hamano [Tue, 18 Jul 2017 19:48:10 +0000 (12:48 -0700)] 
Merge branch 'jk/gc-pre-detach-under-hook'

We run an early part of "git gc" that deals with refs before
daemonising (and not under lock) even when running a background
auto-gc, which caused multiple gc processes attempting to run the
early part at the same time.  This is now prevented by running the
early part also under the GC lock.

* jk/gc-pre-detach-under-hook:
  gc: run pre-detach operations under lock

6 years agoMerge branch 'jn/hooks-pre-rebase-sample-fix'
Junio C Hamano [Tue, 18 Jul 2017 19:48:10 +0000 (12:48 -0700)] 
Merge branch 'jn/hooks-pre-rebase-sample-fix'

Code clean-up, that makes us in sync with Debian by one patch.

* jn/hooks-pre-rebase-sample-fix:
  pre-rebase hook: capture documentation in a <<here document

6 years agoMerge branch 'rs/progress-overall-throughput-at-the-end'
Junio C Hamano [Tue, 18 Jul 2017 19:48:09 +0000 (12:48 -0700)] 
Merge branch 'rs/progress-overall-throughput-at-the-end'

The progress meter did not give a useful output when we haven't had
0.5 seconds to measure the throughput during the interval.  Instead
show the overall throughput rate at the end, which is a much more
useful number.

* rs/progress-overall-throughput-at-the-end:
  progress: show overall rate in last update

6 years agoMerge branch 'tb/push-to-cygwin-unc-path'
Junio C Hamano [Tue, 18 Jul 2017 19:48:09 +0000 (12:48 -0700)] 
Merge branch 'tb/push-to-cygwin-unc-path'

On Cygwin, similar to Windows, "git push //server/share/repository"
ought to mean a repository on a network share that can be accessed
locally, but this did not work correctly due to stripping the double
slashes at the beginning.

This may need to be heavily tested before it gets unleashed to the
wild, as the change is at a fairly low-level code and would affect
not just the code to decide if the push destination is local.  There
may be unexpected fallouts in the path normalization.

* tb/push-to-cygwin-unc-path:
  cygwin: allow pushing to UNC paths

6 years agol10n: Update Catalan translation
Jordi Mas [Tue, 18 Jul 2017 19:06:06 +0000 (21:06 +0200)] 
l10n: Update Catalan translation

Signed-off-by: Jordi Mas <jmas@softcatala.org>
6 years agodoc: camelCase the i18n config variables to improve readability
Kaartic Sivaraam [Mon, 17 Jul 2017 15:39:00 +0000 (21:09 +0530)] 
doc: camelCase the i18n config variables to improve readability

The i18n config variable used weren't readable as they were in
the crude form of how git stores/uses it's config variables.

Improve it's readability by replacing them with camelCased versions
of config variables as it doesn't have any impact on it's usage.

Signed-off-by: Kaartic Sivaraam <kaarticsivaraam91196@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>