sort by:
Revision Author Date Message Commit Date
3d0449d 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 16 March 2017, 20:56:42 UTC
c5bd9e5 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 16 March 2017, 20:56:42 UTC
abe62a4 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" 16 March 2017, 20:56:42 UTC
68e12d7 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 16 March 2017, 20:56:42 UTC
8e87cbc 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 16 March 2017, 20:56:42 UTC
890d765 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 16 March 2017, 20:56:41 UTC
d880bfd 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 16 March 2017, 20:56:41 UTC
07f546c 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> 06 March 2017, 20:01:02 UTC
88dedd5 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> 06 March 2017, 19:19:09 UTC
aaae0bf 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> 03 March 2017, 19:16:20 UTC
c852bd5 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> 02 March 2017, 18:10:38 UTC
8e27391 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> 28 February 2017, 19:35:53 UTC
40a18fc 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> 27 February 2017, 18:35:24 UTC
e7e07d5 Git 2.12 Signed-off-by: Junio C Hamano <gitster@pobox.com> 24 February 2017, 18:49:58 UTC
cca4f20 Merge branch 'ps/doc-gc-aggressive-depth-update' Doc update. * ps/doc-gc-aggressive-depth-update: docs/git-gc: fix default value for `--aggressiveDepth` 24 February 2017, 18:48:10 UTC
dc9ded4 Merge branch 'bc/worktree-doc-fix-detached' Doc update. * bc/worktree-doc-fix-detached: Documentation: correctly spell git worktree --detach 24 February 2017, 18:48:10 UTC
c6788b1 Merge branch 'dr/doc-check-ref-format-normalize' Doc update. * dr/doc-check-ref-format-normalize: git-check-ref-format: clarify documentation for --normalize 24 February 2017, 18:48:09 UTC
eccf97c 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 24 February 2017, 18:48:09 UTC
c0588fd 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 24 February 2017, 18:48:08 UTC
af4027f Merge branch 'bc/blame-doc-fix' Doc update. * bc/blame-doc-fix: Documentation: use brackets for optional arguments 24 February 2017, 18:48:08 UTC
7e82388 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> 24 February 2017, 17:59:12 UTC
cc24d7d 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 ... 24 February 2017, 17:55:41 UTC
1a79b2f 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> 24 February 2017, 16:19:14 UTC
a14eee8 l10n: Update Catalan translation Signed-off-by: Jordi Mas <jmas@softcatala.org> 24 February 2017, 16:14:55 UTC
840398f 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> 23 February 2017, 19:11:56 UTC
e06cdf1 l10n: pt_PT: update Portuguese tranlation Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt> 23 February 2017, 17:14:55 UTC
e519ecc 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> 22 February 2017, 20:51:00 UTC
2b35a9f 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> 22 February 2017, 18:22:15 UTC
9993a7c 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> 22 February 2017, 18:08:38 UTC
115a40a 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> 21 February 2017, 21:02:42 UTC
28159ae 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) 21 February 2017, 16:06:44 UTC
80ba04e 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 21 February 2017, 06:01:59 UTC
806f276 l10n: sv.po: Update Swedish translation (3139t0f0u) Signed-off-by: Peter Krefting <peter@softwolves.pp.se> 20 February 2017, 18:40:11 UTC
af4cf7e 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> 20 February 2017, 17:40:36 UTC
c245125 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 19 February 2017, 14:08:05 UTC
7cbeff0 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 19 February 2017, 14:04:41 UTC
7d6d957 l10n: ko.po: Update Korean translation Signed-off-by: Changwoo Ryu <cwryu@debian.org> 19 February 2017, 10:35:37 UTC
5271df1 l10n: vi.po (3139t): Updated 2 new messages for rc1 Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com> 18 February 2017, 00:18:54 UTC
133f0a2 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> 17 February 2017, 23:57:21 UTC
3d5f390 l10n: fr.po: v2.12.0 round 2 3139t Signed-off-by: Jean-Noel Avila <jn.avila@free.fr> 17 February 2017, 23:12:26 UTC
2076907 Git 2.12-rc2 Signed-off-by: Junio C Hamano <gitster@pobox.com> 17 February 2017, 22:00:19 UTC
a4d9483 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> 17 February 2017, 17:00:54 UTC
53f7473 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 17 February 2017, 16:59:51 UTC
84b3ceb Merge branch 'master' of https://github.com/vnwildman/git * 'master' of https://github.com/vnwildman/git: l10n: vi.po: Updated Vietnamese translation (3137t) 17 February 2017, 16:54:49 UTC
8b22a8e Merge branch 'master' of https://github.com/Softcatala/git-po * 'master' of https://github.com/Softcatala/git-po: l10n: update Catalan translation 17 February 2017, 16:49:06 UTC
a1da87b l10n: vi.po: Updated Vietnamese translation (3137t) Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com> 17 February 2017, 06:52:11 UTC
076c053 Hopefully the final batch of mini-topics before the final Signed-off-by: Junio C Hamano <gitster@pobox.com> 16 February 2017, 22:46:35 UTC
c5b22b8 Merge branch 'jk/tempfile-ferror-fclose-confusion' Code clean-up. * jk/tempfile-ferror-fclose-confusion: tempfile: avoid "ferror | fclose" trick 16 February 2017, 22:45:15 UTC
62fef5c Merge branch 'dp/submodule-doc-markup-fix' Doc fix. * dp/submodule-doc-markup-fix: config.txt: fix formatting of submodule.alternateErrorStrategy section 16 February 2017, 22:45:15 UTC
1f73ff0 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 16 February 2017, 22:45:14 UTC
bf5f119 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" 16 February 2017, 22:45:14 UTC
e048a25 Merge branch 'js/mingw-isatty' A hotfix for a topic already in 'master'. * js/mingw-isatty: mingw: make stderr unbuffered again 16 February 2017, 22:45:13 UTC
1e00c41 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 16 February 2017, 22:45:13 UTC
a3b3c9c 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() 16 February 2017, 22:45:13 UTC
0078a75 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 16 February 2017, 22:45:13 UTC
5a98255 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 16 February 2017, 22:45:12 UTC
0838cbc 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> 16 February 2017, 22:15:55 UTC
8ab9740 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> 16 February 2017, 21:46:20 UTC
f94baa4 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> 16 February 2017, 21:38:02 UTC
ae86372 Revert "reset: add an example of how to split a commit into two" This reverts commit 7326451bedaa67d29afe02184b166e28d9393c91; a better rewrite will be queued separately. 16 February 2017, 21:35:50 UTC
2f61b3a l10n: update Catalan translation Signed-off-by: Jordi Mas <jmas@softcatala.org> 16 February 2017, 04:10:04 UTC
d09b692 A bit more for -rc2 15 February 2017, 22:58:25 UTC
57f7345 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 15 February 2017, 22:56:41 UTC
3e23116 Merge branch 'jk/doc-submodule-markup-fix' Doc markup fix. * jk/doc-submodule-markup-fix: docs/git-submodule: fix unbalanced quote 15 February 2017, 22:56:40 UTC
8c00b7e Merge branch 'jk/doc-remote-helpers-markup-fix' Doc markup fix. * jk/doc-remote-helpers-markup-fix: docs/gitremote-helpers: fix unbalanced quotes 15 February 2017, 22:56:40 UTC
153a33f Merge branch 'sb/doc-unify-bottom' Doc clean-up. * sb/doc-unify-bottom: Documentation: unify bottom "part of git suite" lines 15 February 2017, 20:54:20 UTC
ca3c2b8 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 15 February 2017, 20:54:19 UTC
3f4ccb5 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 15 February 2017, 20:54:19 UTC
cbf1860 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 15 February 2017, 20:54:19 UTC
2f4e87d Merge branch 'sb/submodule-doc' Doc updates. * sb/submodule-doc: submodule update documentation: don't repeat ourselves submodule documentation: add options to the subcommand 15 February 2017, 20:54:18 UTC
a4d92d5 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> 14 February 2017, 18:54:21 UTC
590fc05 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> 13 February 2017, 22:33:32 UTC
20a7e06 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> 13 February 2017, 22:20:38 UTC
e91461b 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> 13 February 2017, 22:05:40 UTC
2aaf37b 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> 13 February 2017, 20:55:36 UTC
96f6d3f 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> 13 February 2017, 20:06:10 UTC
7b4158a 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> 13 February 2017, 20:06:08 UTC
b02312b 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) 13 February 2017, 16:19:11 UTC
0b0891c 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 13 February 2017, 16:17:21 UTC
ec6cd14 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> 11 February 2017, 19:29:12 UTC
5676f96 l10n: sv.po: Update Swedish translation (3137t0f0u) Signed-off-by: Peter Krefting <peter@softwolves.pp.se> 11 February 2017, 19:21:33 UTC
71ca3ba l10n: fr.po: v2.11-rc0 first round Signed-off-by: Jean-Noel Avila <jn.avila@free.fr> 11 February 2017, 14:09:59 UTC
dcf07e2 l10n: ko.po: Update Korean translation Signed-off-by: Changwoo Ryu <cwryu@debian.org> 11 February 2017, 02:32:27 UTC
a8b0516 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> 10 February 2017, 22:33:13 UTC
5588dbf Git 2.12-rc1 Signed-off-by: Junio C Hamano <gitster@pobox.com> 10 February 2017, 20:54:23 UTC
653078b Merge branch 'nd/rev-list-all-includes-HEAD-doc' Doc update. * nd/rev-list-all-includes-HEAD-doc: rev-list-options.txt: update --all about HEAD 10 February 2017, 20:52:27 UTC
c1462b8 Merge branch 'rs/fill-directory-optim' Code clean-up. * rs/fill-directory-optim: dir: avoid allocation in fill_directory() 10 February 2017, 20:52:27 UTC
e53c7f8 Merge branch 'jk/log-graph-name-only' "git log --graph" did not work well with "--name-only", even though other forms of "diff" output were handled correctly. * jk/log-graph-name-only: diff: print line prefix for --name-only output 10 February 2017, 20:52:27 UTC
dd19bca Merge branch 'da/t7800-cleanup' Test updates. * da/t7800-cleanup: t7800: replace "wc -l" with test_line_count 10 February 2017, 20:52:26 UTC
0ffe1c9 Merge branch 'dl/difftool-doc-no-gui-option' Doc update. * dl/difftool-doc-no-gui-option: Document the --no-gui option in difftool 10 February 2017, 20:52:26 UTC
163d24d Merge branch 'js/difftool-builtin' A few hot-fixes to C-rewrite of "git difftool". * js/difftool-builtin: t7800: simplify basic usage test difftool: fix bug when printing usage 10 February 2017, 20:52:25 UTC
cf36a4d Merge branch 'rs/p5302-create-repositories-before-tests' Adjust a perf test to new world order where commands that do require a repository are really strict about having a repository. * rs/p5302-create-repositories-before-tests: p5302: create repositories for index-pack results explicitly 10 February 2017, 20:52:25 UTC
65fecf0 Merge branch 'ps/worktree-prune-help-fix' Incorrect usage help message for "git worktree prune" has been fixed. * ps/worktree-prune-help-fix: worktree: fix option descriptions for `prune` 10 February 2017, 20:52:25 UTC
f7490fd Merge branch 'ew/complete-svn-authorship-options' Correct command line completion (in contrib/) on "git svn" * ew/complete-svn-authorship-options: completion: fix git svn authorship switches 10 February 2017, 20:52:24 UTC
5c40e9c Merge branch 'jk/reset-to-break-a-commit-doc' A minor doc update. * jk/reset-to-break-a-commit-doc: reset: add an example of how to split a commit into two 10 February 2017, 20:52:24 UTC
8e7c1f3 Merge branch 'bw/push-submodule-only' Add missing documentation update to a recent topic. * bw/push-submodule-only: completion: add completion for --recurse-submodules=only doc: add doc for git-push --recurse-submodules=only 10 February 2017, 20:52:23 UTC
2cfc70f mingw: use OpenSSL's SHA-1 routines Use OpenSSL's SHA-1 routines rather than builtin block-sha1 routines. This improves performance on SHA1 operations on Intel processors. OpenSSL 1.0.2 has made considerable performance improvements and support the Intel hardware acceleration features. See: https://software.intel.com/en-us/articles/improving-openssl-performance https://software.intel.com/en-us/articles/intel-sha-extensions To test this I added/staged a single file in a gigantic repository having a 450MB index file. The code in read-cache.c verifies the header SHA as it reads the index and computes a new header SHA as it writes out the new index. Therefore, in this test the SHA code must process 900MB of data. Testing was done on an Intel I7-4770 CPU @ 3.40GHz (Intel64, Family 6, Model 60) CPU. The block-sha1 version averaged 5.27 seconds. The OpenSSL version averaged 4.50 seconds. ================================================================ $ echo xxx >> project.mk $ time /e/blk_sha/bin/git.exe add project.mk real 0m5.207s user 0m0.000s sys 0m0.250s $ echo xxx >> project.mk $ time /e/blk_sha/bin/git.exe add project.mk real 0m5.362s user 0m0.015s sys 0m0.234s $ echo xxx >> project.mk $ time /e/blk_sha/bin/git.exe add project.mk real 0m5.300s user 0m0.016s sys 0m0.250s $ echo xxx >> project.mk $ time /e/blk_sha/bin/git.exe add project.mk real 0m5.216s user 0m0.000s sys 0m0.250s ================================================================ $ echo xxx >> project.mk $ time /e/openssl/bin/git.exe add project.mk real 0m4.431s user 0m0.000s sys 0m0.250s $ echo xxx >> project.mk $ time /e/openssl/bin/git.exe add project.mk real 0m4.478s user 0m0.000s sys 0m0.265s $ echo xxx >> project.mk $ time /e/openssl/bin/git.exe add project.mk real 0m4.690s user 0m0.000s sys 0m0.250s $ echo xxx >> project.mk $ time /e/openssl/bin/git.exe add project.mk real 0m4.420s user 0m0.000s sys 0m0.234s ================================================================ Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 09 February 2017, 23:40:06 UTC
941b9c5 Documentation: unify bottom "part of git suite" lines We currently have 168 man pages that mention they are part of Git, you can check yourself easily via: $ git grep "Part of the linkgit:git\[1\] suite" |wc -l 168 However some have a trailing period, i.e. $ git grep "Part of the linkgit:git\[1\] suite." |wc -l 8 Unify the bottom line in all man pages to not end with a period. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 09 February 2017, 23:14:01 UTC
438fc68 push options: pass push options to the transport helper When using non-builtin protocols relying on a transport helper (such as http), push options are not propagated to the helper. The user could ask for push options and a push would seemingly succeed, but the push options would never be transported to the server, misleading the users expectation. Fix this by propagating the push options to the transport helper. This is only addressing the first issue of (1) the helper protocol does not propagate push-option (2) the http helper is not prepared to handle push-option Once we fix (2), the http transport helper can make use of push options as well, but that happens as a follow up. (1) is a bug fix, whereas (2) is a feature, which is why we only do (1) here. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 February 2017, 23:45:01 UTC
f5022b5 diff: print line prefix for --name-only output If you run "git log --graph --name-only", the pathnames are not indented to go along with their matching commits (unlike all of the other diff formats). We need to output the line prefix for each item before writing it. The tests cover both --name-status and --name-only. The former actually gets this right already, because it builds on the --raw format functions. It's only --name-only which uses its own code (and this fix mirrors the code in diff_flush_raw()). Note that the tests don't follow our usual style of setting up the "expect" output inside the test block. This matches the surrounding style, but more importantly it is easier to read: we don't have to worry about embedded single-quotes, and the leading indentation is more obvious. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 February 2017, 21:39:57 UTC
back to top