Junio C Hamano [Tue, 21 Mar 2017 22:03:24 +0000 (15:03 -0700)]
Merge branch 'ew/markdown-url-in-readme' into maint
Doc update.
* ew/markdown-url-in-readme:
README: create HTTP/HTTPS links from URLs in Markdown
Junio C Hamano [Tue, 21 Mar 2017 22:03:24 +0000 (15:03 -0700)]
Merge branch 'rj/remove-unused-mktemp' into maint
Code cleanup.
* rj/remove-unused-mktemp:
wrapper.c: remove unused gitmkstemps() function
wrapper.c: remove unused git_mkstemp() function
Junio C Hamano [Tue, 21 Mar 2017 22:03:23 +0000 (15:03 -0700)]
Merge branch 'jk/ewah-use-right-type-in-sizeof' into maint
Code clean-up.
* jk/ewah-use-right-type-in-sizeof:
ewah: fix eword_t/uint64_t confusion
Junio C Hamano [Mon, 20 Mar 2017 20:17:08 +0000 (13:17 -0700)]
Git 2.12.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 16 Mar 2017 21:01:00 +0000 (14:01 -0700)]
Preparing for 2.12.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 16 Mar 2017 20:56:43 +0000 (13:56 -0700)]
Merge branch 'js/realpath-pathdup-fix' into maint
Git v2.12 was shipped with an embarrassing breakage where various
operations that verify paths given from the user stopped dying when
seeing an issue, and instead later triggering segfault.
... and then to down to 'maint'.
* js/realpath-pathdup-fix:
real_pathdup(): fix callsites that wanted it to die on error
t1501: demonstrate NULL pointer access with invalid GIT_WORK_TREE
Junio C Hamano [Thu, 16 Mar 2017 20:56:43 +0000 (13:56 -0700)]
Merge branch 'mm/two-more-xstrfmt' into maint
Code clean-up and a string truncation fix.
* mm/two-more-xstrfmt:
bisect_next_all: convert xsnprintf to xstrfmt
stop_progress_msg: convert xsnprintf to xstrfmt
Junio C Hamano [Thu, 16 Mar 2017 20:56:42 +0000 (13:56 -0700)]
Merge branch 'vn/line-log-memcpy-size-fix' into maint
The command-line parsing of "git log -L" copied internal data
structures using incorrect size on ILP32 systems.
* vn/line-log-memcpy-size-fix:
line-log: use COPY_ARRAY to fix mis-sized memcpy
Junio C Hamano [Thu, 16 Mar 2017 20:56:42 +0000 (13:56 -0700)]
Merge branch 'ax/line-log-range-merge-fix' into maint
The code to parse "git log -L..." command line was buggy when there
are many ranges specified with -L; overrun of the allocated buffer
has been fixed.
* ax/line-log-range-merge-fix:
line-log.c: prevent crash during union of too many ranges
Junio C Hamano [Thu, 16 Mar 2017 20:56:42 +0000 (13:56 -0700)]
Merge branch 'jk/add-i-patch-do-prompt' into maint
The patch subcommand of "git add -i" was meant to have paths
selection prompt just like other subcommand, unlike "git add -p"
directly jumps to hunk selection. Recently, this was broken and
"add -i" lost the paths selection dialog, but it now has been
fixed.
* jk/add-i-patch-do-prompt:
add--interactive: fix missing file prompt for patch mode with "-i"
Junio C Hamano [Thu, 16 Mar 2017 20:56:42 +0000 (13:56 -0700)]
Merge branch 'jt/http-base-url-update-upon-redirect' into maint
When a redirected http transport gets an error during the
redirected request, we ignored the error we got from the server,
and ended up giving a not-so-useful error message.
* jt/http-base-url-update-upon-redirect:
http: attempt updating base URL only if no error
Junio C Hamano [Thu, 16 Mar 2017 20:56:41 +0000 (13:56 -0700)]
Merge branch 'js/travis-32bit-linux' into maint
Add 32-bit Linux variant to the set of platforms to be tested with
Travis CI.
* js/travis-32bit-linux:
Travis: also test on 32-bit Linux
Junio C Hamano [Thu, 16 Mar 2017 20:56:41 +0000 (13:56 -0700)]
Merge branch 'jh/mingw-openssl-sha1' into maint
Windows port wants to use OpenSSL's implementation of SHA-1
routines, so let them.
* jh/mingw-openssl-sha1:
mingw: use OpenSSL's SHA-1 routines
Junio C Hamano [Thu, 16 Mar 2017 20:56:41 +0000 (13:56 -0700)]
Merge branch 'jk/http-auth' into maint
Reduce authentication round-trip over HTTP when the server supports
just a single authentication method.
* jk/http-auth:
http: add an "auto" mode for http.emptyauth
http: restrict auth methods to what the server advertises
Johannes Schindelin [Wed, 8 Mar 2017 15:43:40 +0000 (16:43 +0100)]
real_pathdup(): fix callsites that wanted it to die on error
In
4ac9006f832 (real_path: have callers use real_pathdup and
strbuf_realpath, 2016-12-12), we changed the xstrdup(real_path())
pattern to use real_pathdup() directly.
The problem with this change is that real_path() calls
strbuf_realpath() with die_on_error = 1 while real_pathdup() calls
it with die_on_error = 0. Meaning that in cases where real_path()
causes Git to die() with an error message, real_pathdup() is silent
and returns NULL instead.
The callers, however, are ill-prepared for that change, as they expect
the return value to be non-NULL (and otherwise the function died
with an appropriate error message).
Fix this by extending real_pathdup()'s signature to accept the
die_on_error flag and simply pass it through to strbuf_realpath(),
and then adjust all callers after a careful audit whether they would
handle NULLs well.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Wed, 8 Mar 2017 15:43:34 +0000 (16:43 +0100)]
t1501: demonstrate NULL pointer access with invalid GIT_WORK_TREE
When GIT_WORK_TREE does not specify a valid path, we should error
out, instead of crashing.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Sun, 5 Mar 2017 11:46:38 +0000 (06:46 -0500)]
ewah: fix eword_t/uint64_t confusion
The ewah subsystem typedefs eword_t to be uint64_t, but some
code uses a bare uint64_t. This isn't a bug now, but it's a
potential maintenance problem if the definition of eword_t
ever changes. Let's use the correct type.
Note that we can't use COPY_ARRAY() here because the source
and destination point to objects of different sizes. For
that reason we'll also skip the usual "sizeof(*dst)" and use
the real type, which should make it more clear that there's
something tricky going on.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Vegard Nossum [Sun, 5 Mar 2017 11:44:46 +0000 (06:44 -0500)]
line-log: use COPY_ARRAY to fix mis-sized memcpy
This memcpy meant to get the sizeof a "struct range", not a
"range_set", as the former is what our array holds. Rather
than swap out the types, let's convert this site to
COPY_ARRAY, which avoids the problem entirely (and confirms
that the src and dst types match).
Note for curiosity's sake that this bug doesn't trigger on
I32LP64 systems, but does on ILP32 systems. The mistaken
"struct range_set" has two ints and a pointer. That's 16
bytes on LP64, or 12 on ILP32. The correct "struct range"
type has two longs, which is also 16 on LP64, but only 8 on
ILP32.
Likewise an IL32P64 system would experience the bug.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Sun, 5 Mar 2017 18:25:19 +0000 (19:25 +0100)]
Travis: also test on 32-bit Linux
When Git v2.9.1 was released, it had a bug that showed only on Windows
and on 32-bit systems: our assumption that `unsigned long` can hold
64-bit values turned out to be wrong.
This could have been caught earlier if we had a Continuous Testing
set up that includes a build and test run on 32-bit Linux.
Let's do this (and take care of the Windows build later). This patch
asks Travis CI to install a Docker image with 32-bit libraries and then
goes on to build and test Git using this 32-bit setup.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Allan Xavier [Thu, 2 Mar 2017 17:29:02 +0000 (17:29 +0000)]
line-log.c: prevent crash during union of too many ranges
The existing implementation of range_set_union does not correctly
reallocate memory, leading to a heap overflow when it attempts to union
more than 24 separate line ranges.
For struct range_set *out to grow correctly it must have out->nr set to
the current size of the buffer when it is passed to range_set_grow.
However, the existing implementation of range_set_union only updates
out->nr at the end of the function, meaning that it is always zero
before this. This results in range_set_grow never growing the buffer, as
well as some of the union logic itself being incorrect as !out->nr is
always true.
The reason why 24 is the limit is that the first allocation of size 1
ends up allocating a buffer of size 24 (due to the call to alloc_nr in
ALLOC_GROW). This goes some way to explain why this hasn't been
caught before.
Fix the problem by correctly updating out->nr after reallocating the
range_set. As this results in out->nr containing the same value as the
variable o, replace o with out->nr as well.
Finally, add a new test to help prevent the problem reoccurring in the
future. Thanks to Vegard Nossum for writing the test.
Signed-off-by: Allan Xavier <allan.x.xavier@oracle.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Thu, 2 Mar 2017 09:48:22 +0000 (04:48 -0500)]
add--interactive: fix missing file prompt for patch mode with "-i"
When invoked as "git add -i", each menu interactive menu
option prompts the user to select a list of files. This
includes the "patch" option, which gets the list before
starting the hunk-selection loop.
As "git add -p", it behaves differently, and jumps straight
to the hunk selection loop.
Since
0539d5e6d (i18n: add--interactive: mark patch prompt
for translation, 2016-12-14), the "add -i" case mistakenly
jumps to straight to the hunk-selection loop. Prior to that
commit the distinction between the two cases was managed by
the $patch_mode variable. That commit used $patch_mode for
something else, and moved the old meaning to the "$cmd"
variable. But it forgot to update the $patch_mode check
inside patch_update_cmd() which controls the file-list
behavior.
The simplest fix would be to change that line to check $cmd.
But while we're here, let's use a less obscure name for this
flag: $patch_mode_only, a boolean which tells whether we are
in full-interactive mode or only in patch-mode.
Reported-by: Henrik Grubbström <grubba@grubba.org>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Eric Wong [Wed, 1 Mar 2017 22:22:04 +0000 (22:22 +0000)]
README: create HTTP/HTTPS links from URLs in Markdown
Markdown supports automatic links by surrounding URLs with
angle brackets, as documented in
<https://daringfireball.net/projects/markdown/syntax#autolink>
While we're at it, update URLs to avoid redirecting clients for
git-scm.com (by using HTTPS) and public-inbox.org (by adding a
trailing slash).
Signed-off-by: Eric Wong <e@80x24.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ramsay Jones [Tue, 28 Feb 2017 01:26:06 +0000 (01:26 +0000)]
wrapper.c: remove unused gitmkstemps() function
The last call to the mkstemps() function was removed in commit
659488326
("wrapper.c: delete dead function git_mkstemps()", 22-04-2016). In order
to support platforms without mkstemps(), this functionality was provided,
along with a Makefile build variable (NO_MKSTEMPS), by the gitmkstemps()
function. Remove the dead code, along with the defunct build machinery.
Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ramsay Jones [Tue, 28 Feb 2017 01:24:10 +0000 (01:24 +0000)]
wrapper.c: remove unused git_mkstemp() function
The last caller of git_mkstemp() was removed in commit
6fec0a89
("verify_signed_buffer: use tempfile object", 16-06-2016). Since
the introduction of the 'tempfile' APIs, along with git_mkstemp_mode,
it is unlikely that new callers will materialize. Remove the dead
code.
Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jonathan Tan [Tue, 28 Feb 2017 02:53:11 +0000 (18:53 -0800)]
http: attempt updating base URL only if no error
http.c supports HTTP redirects of the form
http://foo/info/refs?service=git-upload-pack
-> http://anything
-> http://bar/info/refs?service=git-upload-pack
(that is to say, as long as the Git part of the path and the query
string is preserved in the final redirect destination, the intermediate
steps can have any URL). However, if one of the intermediate steps
results in an HTTP exception, a confusing "unable to update url base
from redirection" message is printed instead of a Curl error message
with the HTTP exception code.
This was introduced by 2 commits. Commit
c93c92f ("http: update base
URLs when we see redirects", 2013-09-28) introduced a best-effort
optimization that required checking if only the "base" part of the URL
differed between the initial request and the final redirect destination,
but it performed the check before any HTTP status checking was done. If
something went wrong, the normal code path was still followed, so this
did not cause any confusing error messages until commit
6628eb4 ("http:
always update the base URL for redirects", 2016-12-06), which taught
http to die if the non-"base" part of the URL differed.
Therefore, teach http to check the HTTP status before attempting to
check if only the "base" part of the URL differed. This commit teaches
http_request_reauth to return early without updating options->base_url
upon an error; the only invoker of this function that passes a non-NULL
"options" is remote-curl.c (through "http_get_strbuf"), which only uses
options->base_url for an informational message in the situations that
this commit cares about (that is, when the return value is not HTTP_OK).
The included test checks that the redirect scheme at the beginning of
this commit message works, and that returning a 502 in the middle of the
redirect scheme produces the correct result. Note that this is different
from the test in commit
6628eb4 ("http: always update the base URL for
redirects", 2016-12-06) in that this commit tests that a Git-shaped URL
(http://.../info/refs?service=git-upload-pack) works, whereas commit
6628eb4 tests that a non-Git-shaped URL
(http://.../info/refs/foo?service=git-upload-pack) does not work (even
though Git is processing that URL) and is an error that is fatal, not
silently swallowed.
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Sat, 25 Feb 2017 19:18:31 +0000 (14:18 -0500)]
http: add an "auto" mode for http.emptyauth
This variable needs to be specified to make some types of
non-basic authentication work, but ideally this would just
work out of the box for everyone.
However, simply setting it to "1" by default introduces an
extra round-trip for cases where it _isn't_ useful. We end
up sending a bogus empty credential that the server rejects.
Instead, let's introduce an automatic mode, that works like
this:
1. We won't try to send the bogus credential on the first
request. We'll wait to get an HTTP 401, as usual.
2. After seeing an HTTP 401, the empty-auth hack will kick
in only when we know there is an auth method available
that might make use of it (i.e., something besides
"Basic" or "Digest").
That should make it work out of the box, without incurring
any extra round-trips for people hitting Basic-only servers.
This _does_ incur an extra round-trip if you really want to
use "Basic" but your server advertises other methods (the
emptyauth hack will kick in but fail, and then Git will
actually ask for a password).
The auto mode may incur an extra round-trip over setting
http.emptyauth=true, because part of the emptyauth hack is
to feed this blank password to curl even before we've made a
single request.
Helped-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 24 Feb 2017 18:49:58 +0000 (10:49 -0800)]
Git 2.12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 24 Feb 2017 18:48:10 +0000 (10:48 -0800)]
Merge branch 'ps/doc-gc-aggressive-depth-update'
Doc update.
* ps/doc-gc-aggressive-depth-update:
docs/git-gc: fix default value for `--aggressiveDepth`
Junio C Hamano [Fri, 24 Feb 2017 18:48:10 +0000 (10:48 -0800)]
Merge branch 'bc/worktree-doc-fix-detached'
Doc update.
* bc/worktree-doc-fix-detached:
Documentation: correctly spell git worktree --detach
Junio C Hamano [Fri, 24 Feb 2017 18:48:09 +0000 (10:48 -0800)]
Merge branch 'dr/doc-check-ref-format-normalize'
Doc update.
* dr/doc-check-ref-format-normalize:
git-check-ref-format: clarify documentation for --normalize
Junio C Hamano [Fri, 24 Feb 2017 18:48:09 +0000 (10:48 -0800)]
Merge branch 'gp/document-dotfiles-in-templates-are-not-copied'
Doc update.
* gp/document-dotfiles-in-templates-are-not-copied:
init: document dotfiles exclusion on template copy
Junio C Hamano [Fri, 24 Feb 2017 18:48:08 +0000 (10:48 -0800)]
Merge branch 'rt/align-add-i-help-text'
Doc update.
* rt/align-add-i-help-text:
git add -i: replace \t with blanks in the help message
Junio C Hamano [Fri, 24 Feb 2017 18:48:07 +0000 (10:48 -0800)]
Merge branch 'bc/blame-doc-fix'
Doc update.
* bc/blame-doc-fix:
Documentation: use brackets for optional arguments
Patrick Steinhardt [Fri, 24 Feb 2017 08:46:45 +0000 (09:46 +0100)]
docs/git-gc: fix default value for `--aggressiveDepth`
In commit
07e7dbf0d (gc: default aggressive depth to 50, 2016-08-11),
the default aggressive depth of git-gc has been changed to 50. While
git-config(1) has been updated to represent the new default value,
git-gc(1) still mentions the old value. This patch fixes it.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 24 Feb 2017 17:55:41 +0000 (09:55 -0800)]
Merge tag 'l10n-2.12.0-rnd2' of git://github.com/git-l10n/git-po
l10n-2.12.0-rnd2
* tag 'l10n-2.12.0-rnd2' of git://github.com/git-l10n/git-po: (22 commits)
l10n: zh_CN: for git v2.12.0 l10n round 2
l10n: Update Catalan translation
l10n: pt_PT: update Portuguese tranlation
l10n: sv.po: Update Swedish translation (3139t0f0u)
l10n: de.po: translate 241 messages
l10n: ko.po: Update Korean translation
l10n: vi.po (3139t): Updated 2 new messages for rc1
l10n: fr.po: v2.12.0 round 2 3139t
l10n: git.pot: v2.12.0 round 2 (2 new)
l10n: vi.po: Updated Vietnamese translation (3137t)
l10n: update Catalan translation
l10n: sv.po: Update Swedish translation (3137t0f0u)
l10n: fr.po: v2.11-rc0 first round
l10n: ko.po: Update Korean translation
l10n: fr.po: Fix a typo in the French translation
l10n: fr.po: Remove gender specific adjectives
l10n: fr.po: Fix typos
l10n: git.pot: v2.12.0 round 1 (239 new, 15 removed)
l10n: bg: Updated Bulgarian translation (2913t+0f+0u)
l10n: fixes to Catalan translation
...
Jiang Xin [Fri, 27 Jan 2017 14:50:57 +0000 (22:50 +0800)]
l10n: zh_CN: for git v2.12.0 l10n round 2
Translate 241 messages (3139t0f0u) for git v2.12.0-rc1.
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Jordi Mas [Tue, 21 Feb 2017 17:32:29 +0000 (18:32 +0100)]
l10n: Update Catalan translation
Signed-off-by: Jordi Mas <jmas@softcatala.org>
Jeff King [Wed, 22 Feb 2017 23:34:37 +0000 (18:34 -0500)]
http: restrict auth methods to what the server advertises
By default, we tell curl to use CURLAUTH_ANY, which does not
limit its set of auth methods. However, this results in an
extra round-trip to the server when authentication is
required. After we've fed the credential to curl, it wants
to probe the server to find its list of available methods
before sending an Authorization header.
We can shortcut this by limiting our http_auth_methods by
what the server told us it supports. In some cases (such as
when the server only supports Basic), that lets curl skip
the extra probe request.
The end result should look the same to the user, but you can
use GIT_TRACE_CURL to verify the sequence of requests:
GIT_TRACE_CURL=1 \
git ls-remote https://example.com/repo.git \
2>&1 >/dev/null |
egrep '(Send|Recv) header: (GET|HTTP|Auth)'
Before this patch, hitting a Basic-only server like
github.com results in:
Send header: GET /repo.git/info/refs?service=git-upload-pack HTTP/1.1
Recv header: HTTP/1.1 401 Authorization Required
Send header: GET /repo.git/info/refs?service=git-upload-pack HTTP/1.1
Recv header: HTTP/1.1 401 Authorization Required
Send header: GET /repo.git/info/refs?service=git-upload-pack HTTP/1.1
Send header: Authorization: Basic <redacted>
Recv header: HTTP/1.1 200 OK
And after:
Send header: GET /repo.git/info/refs?service=git-upload-pack HTTP/1.1
Recv header: HTTP/1.1 401 Authorization Required
Send header: GET /repo.git/info/refs?service=git-upload-pack HTTP/1.1
Send header: Authorization: Basic <redacted>
Recv header: HTTP/1.1 200 OK
The possible downsides are:
- This only helps for a Basic-only server; for a server
with multiple auth options, curl may still send a probe
request to see which ones are available (IOW, there's no
way to say "don't probe, I already know what the server
will say").
- The http_auth_methods variable is global, so this will
apply to all further requests. That's acceptable for
Git's usage of curl, though, which also treats the
credentials as global. I.e., in any given program
invocation we hit only one conceptual server (we may be
redirected at the outset, but in that case that's whose
auth_avail field we'd see).
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Vasco Almeida [Sun, 5 Feb 2017 18:43:34 +0000 (17:43 -0100)]
l10n: pt_PT: update Portuguese tranlation
Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Ralf Thielow [Wed, 22 Feb 2017 18:46:27 +0000 (19:46 +0100)]
git add -i: replace \t with blanks in the help message
Within the help message of 'git add -i', the 'diff' command uses one
tab character and blanks to create the space between the name and the
description while the others use blanks only. So if the tab size is
not at 4 characters, this description will not be in range.
Replace the tab character with blanks.
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
brian m. carlson [Wed, 22 Feb 2017 12:25:46 +0000 (12:25 +0000)]
Documentation: use brackets for optional arguments
The documentation for git blame used vertical bars for optional
arguments to -M and -C, which is unusual and potentially confusing.
Since most man pages use brackets for optional items, and that's
consistent with how we document the same options for git diff and
friends, use brackets here, too.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
brian m. carlson [Wed, 22 Feb 2017 12:34:42 +0000 (12:34 +0000)]
Documentation: correctly spell git worktree --detach
The option is “--detach”, but we accidentally spelled it “--detached” at
one point in the man page.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Reported-by: Casey Rodarmor <casey@rodarmor.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Damien Regad [Sun, 19 Feb 2017 22:32:32 +0000 (23:32 +0100)]
git-check-ref-format: clarify documentation for --normalize
Use of 'iff' may be confusing to people not familiar with this term.
Improving the --normalize option's documentation to remove the use of
'iff', and clearly describe what happens when the condition is not met.
Signed-off-by: Damien Regad <dregad@mantisbt.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jiang Xin [Tue, 21 Feb 2017 16:06:44 +0000 (00:06 +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 (3139t0f0u)
Junio C Hamano [Tue, 21 Feb 2017 06:01:59 +0000 (22:01 -0800)]
Merge branch 'svn-escape-backslash' of git://bogomips.org/git-svn
* 'svn-escape-backslash' of git://bogomips.org/git-svn:
git-svn: escape backslashes in refnames
Peter Krefting [Mon, 20 Feb 2017 18:40:11 +0000 (19:40 +0100)]
l10n: sv.po: Update Swedish translation (3139t0f0u)
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Ralf Thielow [Mon, 20 Feb 2017 17:40:36 +0000 (18:40 +0100)]
l10n: de.po: translate 241 messages
Translate 241 messages came from git.pot update in
673bfad09
(l10n: git.pot: v2.12.0 round 1 (239 new, 15 removed)) and
a4d94835a
(l10n: git.pot: v2.12.0 round 2 (2 new)).
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Phillip Sz <phillip.szelat@gmail.com>
Jiang Xin [Sun, 19 Feb 2017 14:08:05 +0000 (22:08 +0800)]
Merge branch 'ko/merge-l10n' of https://github.com/changwoo/git-l10n-ko
* 'ko/merge-l10n' of https://github.com/changwoo/git-l10n-ko:
l10n: ko.po: Update Korean translation
Jiang Xin [Sun, 19 Feb 2017 14:04:41 +0000 (22:04 +0800)]
Merge branch 'master' of https://github.com/vnwildman/git
* 'master' of https://github.com/vnwildman/git:
l10n: vi.po (3139t): Updated 2 new messages for rc1
Changwoo Ryu [Sun, 19 Feb 2017 10:34:24 +0000 (19:34 +0900)]
l10n: ko.po: Update Korean translation
Signed-off-by: Changwoo Ryu <cwryu@debian.org>
Tran Ngoc Quan [Sat, 18 Feb 2017 00:18:54 +0000 (07:18 +0700)]
l10n: vi.po (3139t): Updated 2 new messages for rc1
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
Grégoire Paris [Fri, 17 Feb 2017 23:37:00 +0000 (00:37 +0100)]
init: document dotfiles exclusion on template copy
Not just . and .., but any path that begins with dot is not copied
when copying the template directory to a new repository. You can
customize the template directory, copying some dotfiles might make
sense, but it's actually a good thing not to, because you would not
want to have your git directory copied in every git directory that
is created should you decide to put your template directory under
version control, for example. Plus, it might be used as a feature
by people who would want to exclude some files.
Signed-off-by: Grégoire Paris <postmaster@greg0ire.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jean-Noel Avila [Fri, 17 Feb 2017 23:10:04 +0000 (00:10 +0100)]
l10n: fr.po: v2.12.0 round 2 3139t
Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
Junio C Hamano [Fri, 17 Feb 2017 22:00:19 +0000 (14:00 -0800)]
Git 2.12-rc2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jiang Xin [Fri, 17 Feb 2017 17:00:54 +0000 (01:00 +0800)]
l10n: git.pot: v2.12.0 round 2 (2 new)
Generate po/git.pot from v2.12.0-rc1 for git v2.12.0 l10n round 2.
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Jiang Xin [Fri, 17 Feb 2017 16:59:51 +0000 (00:59 +0800)]
Merge branch 'master' of git://github.com/git-l10n/git-po
* 'master' of git://github.com/git-l10n/git-po:
l10n: vi.po: Updated Vietnamese translation (3137t)
l10n: update Catalan translation
l10n: sv.po: Update Swedish translation (3137t0f0u)
l10n: fr.po: v2.11-rc0 first round
l10n: ko.po: Update Korean translation
l10n: fr.po: Fix a typo in the French translation
l10n: fr.po: Remove gender specific adjectives
l10n: fr.po: Fix typos
l10n: git.pot: v2.12.0 round 1 (239 new, 15 removed)
l10n: bg: Updated Bulgarian translation (2913t+0f+0u)
l10n: fixes to Catalan translation
l10n: zh_CN: review for git v2.11.0 l10n
l10n: New Catalan translation maintainer
Jiang Xin [Fri, 17 Feb 2017 16:54:49 +0000 (00:54 +0800)]
Merge branch 'master' of https://github.com/vnwildman/git
* 'master' of https://github.com/vnwildman/git:
l10n: vi.po: Updated Vietnamese translation (3137t)
Jiang Xin [Fri, 17 Feb 2017 16:49:06 +0000 (00:49 +0800)]
Merge branch 'master' of https://github.com/Softcatala/git-po
* 'master' of https://github.com/Softcatala/git-po:
l10n: update Catalan translation
Tran Ngoc Quan [Fri, 17 Feb 2017 06:51:34 +0000 (13:51 +0700)]
l10n: vi.po: Updated Vietnamese translation (3137t)
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
Junio C Hamano [Thu, 16 Feb 2017 22:46:35 +0000 (14:46 -0800)]
Hopefully the final batch of mini-topics before the final
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 16 Feb 2017 22:45:15 +0000 (14:45 -0800)]
Merge branch 'jk/tempfile-ferror-fclose-confusion'
Code clean-up.
* jk/tempfile-ferror-fclose-confusion:
tempfile: avoid "ferror | fclose" trick
Junio C Hamano [Thu, 16 Feb 2017 22:45:15 +0000 (14:45 -0800)]
Merge branch 'dp/submodule-doc-markup-fix'
Doc fix.
* dp/submodule-doc-markup-fix:
config.txt: fix formatting of submodule.alternateErrorStrategy section
Junio C Hamano [Thu, 16 Feb 2017 22:45:14 +0000 (14:45 -0800)]
Merge branch 'jk/reset-to-break-a-commit-doc-updated'
Doc update.
* jk/reset-to-break-a-commit-doc-updated:
reset: add an example of how to split a commit into two
Junio C Hamano [Thu, 16 Feb 2017 22:45:14 +0000 (14:45 -0800)]
Merge branch 'jk/reset-to-break-a-commit-doc'
Doc update.
* jk/reset-to-break-a-commit-doc:
Revert "reset: add an example of how to split a commit into two"
Junio C Hamano [Thu, 16 Feb 2017 22:45:13 +0000 (14:45 -0800)]
Merge branch 'js/mingw-isatty'
A hotfix for a topic already in 'master'.
* js/mingw-isatty:
mingw: make stderr unbuffered again
Junio C Hamano [Thu, 16 Feb 2017 22:45:13 +0000 (14:45 -0800)]
Merge branch 'rs/strbuf-cleanup-in-rmdir-recursively'
Code clean-up.
* rs/strbuf-cleanup-in-rmdir-recursively:
rm: reuse strbuf for all remove_dir_recursively() calls, again
Junio C Hamano [Thu, 16 Feb 2017 22:45:13 +0000 (14:45 -0800)]
Merge branch 'rs/ls-files-partial-optim'
"ls-files" run with pathspec has been micro-optimized to avoid
having to memmove(3) unnecessary bytes.
* rs/ls-files-partial-optim:
ls-files: move only kept cache entries in prune_cache()
ls-files: pass prefix length explicitly to prune_cache()
Junio C Hamano [Thu, 16 Feb 2017 22:45:13 +0000 (14:45 -0800)]
Merge branch 'rs/cocci-check-free-only-null'
A new coccinelle rule that catches a check of !pointer before the
pointer is free(3)d, which most likely is a bug.
* rs/cocci-check-free-only-null:
cocci: detect useless free(3) calls
Junio C Hamano [Thu, 16 Feb 2017 22:45:12 +0000 (14:45 -0800)]
Merge branch 'ls/p4-path-encoding'
When "git p4" imports changelist that removes paths, it failed to
convert pathnames when the p4 used encoding different from the one
used on the Git side. This has been corrected.
* ls/p4-path-encoding:
git-p4: fix git-p4.pathEncoding for removed files
Jeff King [Thu, 16 Feb 2017 21:31:40 +0000 (16:31 -0500)]
tempfile: avoid "ferror | fclose" trick
The current code wants to record an error condition from
either ferror() or fclose(), but makes sure that we always
call both functions. So it can't use logical-OR "||", which
would short-circuit when ferror() is true. Instead, it uses
bitwise-OR "|" to evaluate both functions and set one or
more bits in the "err" flag if they reported a failure.
Unlike logical-OR, though, bitwise-OR does not introduce a
sequence point, and the order of evaluation for its operands
is unspecified. So a compiler would be free to generate code
which calls fclose() first, and then ferror() on the
now-freed filehandle.
There's no indication that this has happened in practice,
but let's write it out in a way that follows the standard.
Noticed-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
David Pursehouse [Thu, 16 Feb 2017 05:05:35 +0000 (14:05 +0900)]
config.txt: fix formatting of submodule.alternateErrorStrategy section
Add missing `::` after the title.
Signed-off-by: David Pursehouse <dpursehouse@collab.net>
Acked-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jacob Keller [Thu, 16 Feb 2017 00:22:12 +0000 (16:22 -0800)]
reset: add an example of how to split a commit into two
It is often useful to break a commit into multiple parts that are more
logical separations. This can be tricky to learn how to do without the
brute-force method if re-writing code or commit messages from scratch.
Add a section to the git-reset documentation which shows an example
process for how to use git add -p and git commit -c HEAD@{1} to
interactively break a commit apart and re-use the original commit
message as a starting point when making the new commit message.
Signed-off-by: Jacob Keller <jacob.keller@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Thu, 16 Feb 2017 21:35:50 +0000 (13:35 -0800)]
Revert "reset: add an example of how to split a commit into two"
This reverts commit
7326451bedaa67d29afe02184b166e28d9393c91; a
better rewrite will be queued separately.
Maxim Moseychuk [Thu, 16 Feb 2017 17:07:12 +0000 (20:07 +0300)]
bisect_next_all: convert xsnprintf to xstrfmt
Git can't run bisect between 2048+ commits if use russian
translation, because the translated string is too long for the fixed
buffer it uses (this can be reproduced "LANG=ru_RU.UTF8 git bisect
start v4.9 v4.8" on linux sources).
Use xstrfmt() to format the message string to sufficiently sized
buffer instead to fix this.
Signed-off-by: Maxim Moseychuk <franchesko.salias.hudro.pedros@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Maxim Moseychuk [Thu, 16 Feb 2017 17:07:13 +0000 (20:07 +0300)]
stop_progress_msg: convert xsnprintf to xstrfmt
Simplify code by replacing buffer allocation with a call to xstrfmt().
Signed-off-by: Maxim Moseychuk <franchesko.salias.hudro.pedros@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jordi Mas [Thu, 16 Feb 2017 04:10:04 +0000 (05:10 +0100)]
l10n: update Catalan translation
Signed-off-by: Jordi Mas <jmas@softcatala.org>
Junio C Hamano [Wed, 15 Feb 2017 22:58:25 +0000 (14:58 -0800)]
A bit more for -rc2
Junio C Hamano [Wed, 15 Feb 2017 22:56:41 +0000 (14:56 -0800)]
Merge branch 'tg/stash-doc-cleanup'
The documentation explained what "git stash" does to the working
tree (after stashing away the local changes) in terms of "reset
--hard", which was exposing an unnecessary implementation detail.
* tg/stash-doc-cleanup:
Documentation/stash: remove mention of git reset --hard
Junio C Hamano [Wed, 15 Feb 2017 22:56:40 +0000 (14:56 -0800)]
Merge branch 'jk/doc-submodule-markup-fix'
Doc markup fix.
* jk/doc-submodule-markup-fix:
docs/git-submodule: fix unbalanced quote
Junio C Hamano [Wed, 15 Feb 2017 22:56:40 +0000 (14:56 -0800)]
Merge branch 'jk/doc-remote-helpers-markup-fix'
Doc markup fix.
* jk/doc-remote-helpers-markup-fix:
docs/gitremote-helpers: fix unbalanced quotes
Junio C Hamano [Wed, 15 Feb 2017 20:54:20 +0000 (12:54 -0800)]
Merge branch 'sb/doc-unify-bottom'
Doc clean-up.
* sb/doc-unify-bottom:
Documentation: unify bottom "part of git suite" lines
Junio C Hamano [Wed, 15 Feb 2017 20:54:19 +0000 (12:54 -0800)]
Merge branch 'sb/push-options-via-transport'
The push-options given via the "--push-options" option were not
passed through to external remote helpers such as "smart HTTP" that
are invoked via the transport helper.
* sb/push-options-via-transport:
push options: pass push options to the transport helper
Junio C Hamano [Wed, 15 Feb 2017 20:54:19 +0000 (12:54 -0800)]
Merge branch 'cw/completion'
More command line completion (in contrib/) for recent additions.
* cw/completion:
completion: recognize more long-options
completion: teach remote subcommands to complete options
completion: teach replace to complete options
completion: teach ls-remote to complete options
completion: improve bash completion for git-add
completion: add subcommand completion for rerere
completion: teach submodule subcommands to complete options
Junio C Hamano [Wed, 15 Feb 2017 20:54:19 +0000 (12:54 -0800)]
Merge branch 'rs/swap'
Code clean-up.
* rs/swap:
graph: use SWAP macro
diff: use SWAP macro
use SWAP macro
apply: use SWAP macro
add SWAP macro
Junio C Hamano [Wed, 15 Feb 2017 20:54:18 +0000 (12:54 -0800)]
Merge branch 'sb/submodule-doc'
Doc updates.
* sb/submodule-doc:
submodule update documentation: don't repeat ourselves
submodule documentation: add options to the subcommand
Johannes Schindelin [Mon, 13 Feb 2017 22:34:06 +0000 (23:34 +0100)]
mingw: make stderr unbuffered again
When removing the hack for isatty(), we actually removed more than just
an isatty() hack: we removed the hack where internal data structures of
the MSVC runtime are modified in order to redirect stdout/stderr.
Instead of using that hack (that does not work with newer versions of
the runtime, anyway), we replaced it by reopening the respective file
descriptors.
What we forgot was to mark stderr as unbuffered again.
Reported by Hannes Sixt. Fixed with Jeff Hostetler's assistance.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Tested-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Sat, 11 Feb 2017 19:51:08 +0000 (20:51 +0100)]
rm: reuse strbuf for all remove_dir_recursively() calls, again
Don't throw the memory allocated for remove_dir_recursively() away after
a single call, use it for the other entries as well instead.
This change was done before in
deb8e15a (rm: reuse strbuf for all
remove_dir_recursively() calls), but was reverted as a side-effect of
55856a35 (rm: absorb a submodules git dir before deletion). Reinstate
the optimization.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thomas Gummerer [Sun, 12 Feb 2017 21:54:14 +0000 (21:54 +0000)]
Documentation/stash: remove mention of git reset --hard
Don't mention git reset --hard in the documentation for git stash save.
It's an implementation detail that doesn't matter to the end user and
thus shouldn't be exposed to them. In addition it's not quite true for
git stash -p, and will not be true when a filename argument to limit the
stash to a few files is introduced.
Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Mon, 13 Feb 2017 21:05:49 +0000 (16:05 -0500)]
docs/git-submodule: fix unbalanced quote
The documentation gives an example of the submodule foreach
command that uses both backticks and single-quotes. We stick
the whole thing inside "+" markers to make it monospace, but
the inside punctuation still needs escaping. We handle the
backticks with "{backtick}", and use backslash-escaping for
the single-quotes.
But we missed the escaping on the second quote. Fortunately,
asciidoc renders this unbalanced quote as we want (showing
the quote), but asciidoctor does not. We could fix it by
adding the missing backslash.
However, let's take a step back. Even when rendered
correctly, it's hard to read a long command stuck into the
middle of a paragraph, and the important punctuation is hard
to notice. Let's instead bump it into its own single-line
code block. That makes both the source and the rendered
result more readable, and as a bonus we don't have to worry
about quoting at all.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King [Mon, 13 Feb 2017 20:38:35 +0000 (15:38 -0500)]
docs/gitremote-helpers: fix unbalanced quotes
Each of these options is missing the closing single-quote on
the option name. This understandably confuses asciidoc,
which ends up rendering a stray quote, like:
option cloning {'true|false}
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Fri, 10 Feb 2017 20:03:30 +0000 (21:03 +0100)]
ls-files: move only kept cache entries in prune_cache()
prune_cache() first identifies those entries at the start of the sorted
array that can be discarded. Then it moves the rest of the entries up.
Last it identifies the unwanted trailing entries among the moved ones
and cuts them off.
Change the order: Identify both start *and* end of the range to keep
first and then move only those entries to the top. The resulting code
is slightly shorter and a bit more efficient.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Reviewed-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Fri, 10 Feb 2017 19:42:28 +0000 (20:42 +0100)]
ls-files: pass prefix length explicitly to prune_cache()
The function prune_cache() relies on the fact that it is only called on
max_prefix and sneakily uses the matching global variable max_prefix_len
directly. Tighten its interface by passing both the string and its
length as parameters. While at it move the NULL check into the function
to collect all cache-pruning related logic in one place.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Reviewed-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jiang Xin [Mon, 13 Feb 2017 16:19:11 +0000 (00: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 (3137t0f0u)
Jiang Xin [Mon, 13 Feb 2017 16:17:21 +0000 (00:17 +0800)]
Merge branch 'fr_v2.11.0_rnd1' of git://github.com/jnavila/git
* 'fr_v2.11.0_rnd1' of git://github.com/jnavila/git:
l10n: fr.po: v2.11-rc0 first round
l10n: fr.po: Fix a typo in the French translation
l10n: fr.po: Remove gender specific adjectives
l10n: fr.po: Fix typos
René Scharfe [Sat, 11 Feb 2017 13:58:44 +0000 (14:58 +0100)]
cocci: detect useless free(3) calls
Add a semantic patch for removing checks that cause free(3) to only be
called with a NULL pointer, as that must be a programming mistake.
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Peter Krefting [Sat, 11 Feb 2017 19:19:48 +0000 (20:19 +0100)]
l10n: sv.po: Update Swedish translation (3137t0f0u)
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Jean-Noel Avila [Wed, 8 Feb 2017 20:36:33 +0000 (21:36 +0100)]
l10n: fr.po: v2.11-rc0 first round
Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
Changwoo Ryu [Sat, 11 Feb 2017 02:29:32 +0000 (11:29 +0900)]
l10n: ko.po: Update Korean translation
Signed-off-by: Changwoo Ryu <cwryu@debian.org>
Lars Schneider [Thu, 9 Feb 2017 15:06:56 +0000 (16:06 +0100)]
git-p4: fix git-p4.pathEncoding for removed files
In
a9e38359e3 we taught git-p4 a way to re-encode path names from what
was used in Perforce to UTF-8. This path re-encoding worked properly for
"added" paths. "Removed" paths were not re-encoded and therefore
different from the "added" paths. Consequently, these files were not
removed in a git-p4 cloned Git repository because the path names did not
match.
Fix this by moving the re-encoding to a place that affects "added" and
"removed" paths. Add a test to demonstrate the issue.
Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Reviewed-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 10 Feb 2017 20:54:23 +0000 (12:54 -0800)]
Git 2.12-rc1
Signed-off-by: Junio C Hamano <gitster@pobox.com>