9752ad0 | Junio C Hamano | 22 September 2017, 05:47:41 UTC | Git 2.12.5 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 September 2017, 05:47:41 UTC |
65c9d4b | Junio C Hamano | 22 September 2017, 05:45:30 UTC | Sync with 2.11.4 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 September 2017, 05:45:30 UTC |
39aaab1 | Junio C Hamano | 22 September 2017, 05:44:45 UTC | Git 2.11.4 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 September 2017, 05:44:45 UTC |
0a4986d | Junio C Hamano | 22 September 2017, 05:43:13 UTC | Sync with 2.10.5 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 September 2017, 05:43:17 UTC |
27dea46 | Junio C Hamano | 22 September 2017, 05:42:22 UTC | Git 2.10.5 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 September 2017, 05:42:22 UTC |
dca89d4 | Junio C Hamano | 22 September 2017, 05:34:34 UTC | Merge branch 'jk/safe-pipe-capture' into maint-2.10 | 22 September 2017, 05:34:34 UTC |
6d6e2f8 | Junio C Hamano | 22 September 2017, 05:34:34 UTC | Merge branch 'jk/cvsimport-quoting' into maint-2.10 | 22 September 2017, 05:34:34 UTC |
31add46 | Junio C Hamano | 22 September 2017, 05:34:34 UTC | Merge branch 'jc/cvsserver' into maint-2.10 | 22 September 2017, 05:34:34 UTC |
985f59c | Junio C Hamano | 22 September 2017, 05:34:34 UTC | Merge branch 'jk/git-shell-drop-cvsserver' into maint-2.10 | 22 September 2017, 05:34:34 UTC |
5b4efea | Jeff King | 11 September 2017, 14:24:26 UTC | cvsimport: shell-quote variable used in backticks We run `git rev-parse` though the shell, and quote its argument only with single-quotes. This prevents most metacharacters from being a problem, but misses the obvious case when $name itself has single-quotes in it. We can fix this by applying the usual shell-quoting formula. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 September 2017, 02:10:22 UTC |
8d0fad0 | Jeff King | 11 September 2017, 14:24:11 UTC | archimport: use safe_pipe_capture for user input Refnames can contain shell metacharacters which need to be passed verbatim to sub-processes. Using safe_pipe_capture skips the shell entirely. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 September 2017, 02:08:15 UTC |
9a42c03 | Jeff King | 11 September 2017, 15:27:51 UTC | shell: drop git-cvsserver support by default The git-cvsserver script is old and largely unmaintained these days. But git-shell allows untrusted users to run it out of the box, significantly increasing its attack surface. Let's drop it from git-shell's list of internal handlers so that it cannot be run by default. This is not backwards compatible. But given the age and development activity on CVS-related parts of Git, this is likely to impact very few users, while helping many more (i.e., anybody who runs git-shell and had no intention of supporting CVS). There's no configuration mechanism in git-shell for us to add a boolean and flip it to "off". But there is a mechanism for adding custom commands, and adding CVS support here is fairly trivial. Let's document it to give guidance to anybody who really is still running cvsserver. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 September 2017, 02:05:58 UTC |
46203ac | Junio C Hamano | 11 September 2017, 05:45:54 UTC | cvsserver: use safe_pipe_capture for `constant commands` as well This is not strictly necessary, but it is a good code hygiene. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 September 2017, 05:52:29 UTC |
27dd738 | joernchen | 11 September 2017, 05:45:09 UTC | cvsserver: use safe_pipe_capture instead of backticks This makes the script pass arguments that are derived from end-user input in safer way when invoking subcommands. Reported-by: joernchen <joernchen@phenoelit.de> Signed-off-by: joernchen <joernchen@phenoelit.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 September 2017, 05:52:29 UTC |
fce13af | Junio C Hamano | 11 September 2017, 05:44:24 UTC | cvsserver: move safe_pipe_capture() to the main package As a preparation for replacing `command` with a call to this function from outside GITCVS::updater package, move it to the main package. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 September 2017, 05:52:29 UTC |
3d9c5b5 | Junio C Hamano | 30 July 2017, 22:06:06 UTC | Git 2.12.4 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 July 2017, 22:06:06 UTC |
3def5e9 | Junio C Hamano | 30 July 2017, 22:04:22 UTC | Merge tag 'v2.11.3' into maint-2.12 Git 2.11.3 | 30 July 2017, 22:04:22 UTC |
9315f27 | Junio C Hamano | 30 July 2017, 22:03:21 UTC | Merge branch 'jk/lib-proto-disable-cleanup' into maint-2.12 | 30 July 2017, 22:03:21 UTC |
3b82744 | Junio C Hamano | 30 July 2017, 22:02:37 UTC | Git 2.11.3 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 July 2017, 22:02:37 UTC |
05bb78a | Junio C Hamano | 30 July 2017, 22:01:31 UTC | Merge tag 'v2.10.4' into maint-2.11 Git 2.10.4 | 30 July 2017, 22:01:31 UTC |
0bfff81 | Junio C Hamano | 30 July 2017, 22:00:04 UTC | Git 2.10.4 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 July 2017, 22:00:04 UTC |
d78f06a | Junio C Hamano | 30 July 2017, 21:57:33 UTC | Merge tag 'v2.9.5' into maint-2.10 Git 2.9.5 | 30 July 2017, 21:57:33 UTC |
4d4165b | Junio C Hamano | 30 July 2017, 21:53:25 UTC | Git 2.9.5 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 July 2017, 21:53:25 UTC |
af0178a | Junio C Hamano | 30 July 2017, 21:52:14 UTC | Merge tag 'v2.8.6' into maint-2.9 Git 2.8.6 | 30 July 2017, 21:52:14 UTC |
8d7f72f | Junio C Hamano | 30 July 2017, 21:49:08 UTC | Git 2.8.6 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 July 2017, 21:49:08 UTC |
7720c33 | Junio C Hamano | 30 July 2017, 21:46:43 UTC | Merge tag 'v2.7.6' into maint-2.8 Git 2.7.6 | 30 July 2017, 21:46:43 UTC |
5e0649d | Junio C Hamano | 30 July 2017, 21:45:13 UTC | Git 2.7.6 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 July 2017, 21:45:13 UTC |
a4f234b | Junio C Hamano | 28 July 2017, 23:11:54 UTC | Merge branch 'jk/ssh-funny-url' into maint-2.7 | 28 July 2017, 23:11:54 UTC |
aeeb2d4 | Jeff King | 28 July 2017, 19:28:55 UTC | 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> | 28 July 2017, 22:54:55 UTC |
3be4cf0 | Jeff King | 28 July 2017, 19:26:50 UTC | 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> | 28 July 2017, 22:52:18 UTC |
2491f77 | Jeff King | 28 July 2017, 19:25:45 UTC | 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> | 28 July 2017, 22:51:56 UTC |
2d90add | Jeff King | 28 July 2017, 19:23:32 UTC | 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> | 28 July 2017, 22:51:29 UTC |
820d765 | Junio C Hamano | 26 July 2017, 17:24:20 UTC | 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> | 28 July 2017, 22:51:14 UTC |
30c586f | Jeff King | 28 July 2017, 21:47:48 UTC | 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> | 28 July 2017, 22:48:39 UTC |
95d6787 | Junio C Hamano | 05 May 2017, 04:33:22 UTC | Git 2.12.3 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 May 2017, 04:33:22 UTC |
ebb1f6f | Junio C Hamano | 05 May 2017, 04:31:40 UTC | Merge branch 'maint-2.11' into maint | 05 May 2017, 04:31:40 UTC |
773e3a2 | Junio C Hamano | 05 May 2017, 04:29:43 UTC | Git 2.11.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 May 2017, 04:29:43 UTC |
a849d36 | Junio C Hamano | 05 May 2017, 04:26:31 UTC | Merge branch 'maint-2.10' into maint-2.11 | 05 May 2017, 04:26:31 UTC |
840ed14 | Junio C Hamano | 05 May 2017, 04:24:10 UTC | Git 2.10.3 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 May 2017, 04:24:10 UTC |
fc92b08 | Junio C Hamano | 05 May 2017, 04:21:52 UTC | Merge branch 'maint-2.9' into maint-2.10 | 05 May 2017, 04:21:52 UTC |
d61226c | Junio C Hamano | 05 May 2017, 04:18:23 UTC | Git 2.9.4 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 May 2017, 04:19:10 UTC |
c93ab42 | Junio C Hamano | 05 May 2017, 04:13:48 UTC | Merge branch 'maint-2.8' into maint-2.9 | 05 May 2017, 04:13:48 UTC |
cd08873 | Junio C Hamano | 05 May 2017, 04:08:54 UTC | Git 2.8.5 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 May 2017, 04:08:54 UTC |
a8d93d1 | Junio C Hamano | 05 May 2017, 04:05:03 UTC | Merge branch 'maint-2.7' into maint-2.8 | 05 May 2017, 04:05:03 UTC |
c8dd1e3 | Junio C Hamano | 05 May 2017, 04:03:40 UTC | Git 2.7.5 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 May 2017, 04:03:40 UTC |
dc58c85 | Junio C Hamano | 05 May 2017, 03:59:16 UTC | Merge branch 'maint-2.6' into maint-2.7 | 05 May 2017, 03:59:16 UTC |
70fcaef | Junio C Hamano | 05 May 2017, 03:56:19 UTC | Git 2.6.7 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 May 2017, 03:56:19 UTC |
ab37a18 | Junio C Hamano | 05 May 2017, 03:52:26 UTC | Merge branch 'maint-2.5' into maint-2.6 | 05 May 2017, 03:52:26 UTC |
ac33201 | Junio C Hamano | 05 May 2017, 03:49:00 UTC | Git 2.5.6 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 May 2017, 03:50:38 UTC |
531788a | Junio C Hamano | 05 May 2017, 03:46:53 UTC | Merge branch 'maint-2.4' into maint-2.5 | 05 May 2017, 03:46:53 UTC |
4000b40 | Junio C Hamano | 05 May 2017, 03:25:09 UTC | Git 2.4.12 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 May 2017, 03:43:16 UTC |
5a4ffdf | Junio C Hamano | 05 May 2017, 03:17:55 UTC | Merge branch 'jk/shell-no-repository-that-begins-with-dash' into maint-2.4 * jk/shell-no-repository-that-begins-with-dash: shell: disallow repo names beginning with dash | 05 May 2017, 03:17:55 UTC |
3ec8044 | Jeff King | 29 April 2017, 12:36:44 UTC | shell: disallow repo names beginning with dash When a remote server uses git-shell, the client side will connect to it like: ssh server "git-upload-pack 'foo.git'" and we literally exec ("git-upload-pack", "foo.git"). In early versions of upload-pack and receive-pack, we took a repository argument and nothing else. But over time they learned to accept dashed options. If the user passes a repository name that starts with a dash, the results are confusing at best (we complain of a bogus option instead of a non-existent repository) and malicious at worst (the user can start an interactive pager via "--help"). We could pass "--" to the sub-process to make sure the user's argument is interpreted as a branch name. I.e.: git-upload-pack -- -foo.git But adding "--" automatically would make us inconsistent with a normal shell (i.e., when git-shell is not in use), where "-foo.git" would still be an error. For that case, the client would have to specify the "--", but they can't do so reliably, as existing versions of git-shell do not allow more than a single argument. The simplest thing is to simply disallow "-" at the start of the repo name argument. This hasn't worked either with or without git-shell since version 1.0.0, and nobody has complained. Note that this patch just applies to do_generic_cmd(), which runs upload-pack, receive-pack, and upload-archive. There are two other types of commands that git-shell runs: - do_cvs_cmd(), but this already restricts the argument to be the literal string "server" - admin-provided commands in the git-shell-commands directory. We'll pass along arbitrary arguments there, so these commands could have similar problems. But these commands might actually understand dashed arguments, so we cannot just block them here. It's up to the writer of the commands to make sure they are safe. With great power comes great responsibility. Reported-by: Timo Schmid <tschmid@ernw.de> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 05 May 2017, 03:07:27 UTC |
49800c9 | Junio C Hamano | 28 March 2017, 20:54:14 UTC | Prepare for 2.12.3 | 28 March 2017, 20:54:14 UTC |
67476f5 | Junio C Hamano | 28 March 2017, 20:52:29 UTC | Merge branch 'km/config-grammofix' into maint Doc update. * km/config-grammofix: doc/config: grammar fixes for core.{editor,commentChar} | 28 March 2017, 20:52:29 UTC |
88fb4aa | Junio C Hamano | 28 March 2017, 20:52:29 UTC | Merge branch 'sb/t3600-rephrase' into maint A test retitling. * sb/t3600-rephrase: t3600: rename test to describe its functionality | 28 March 2017, 20:52:29 UTC |
04b4f7d | Junio C Hamano | 28 March 2017, 20:52:29 UTC | Merge branch 'sb/submodule-update-initial-runs-custom-script' into maint A test fix. * sb/submodule-update-initial-runs-custom-script: t7406: correct test case for submodule-update initial population | 28 March 2017, 20:52:29 UTC |
27ee56f | Junio C Hamano | 28 March 2017, 20:52:28 UTC | Merge branch 'jk/quote-env-path-list-component' into maint A test fix. * jk/quote-env-path-list-component: t5615: fix a here-doc syntax error | 28 March 2017, 20:52:28 UTC |
fd7c41e | Junio C Hamano | 28 March 2017, 20:52:28 UTC | Merge branch 'rs/update-hook-optim' into maint Code clean-up. * rs/update-hook-optim: receive-pack: simplify run_update_post_hook() | 28 March 2017, 20:52:28 UTC |
fb0ab97 | Junio C Hamano | 28 March 2017, 20:52:27 UTC | Merge branch 'rs/shortlog-cleanup' into maint Code clean-up. * rs/shortlog-cleanup: shortlog: don't set after_subject to an empty string | 28 March 2017, 20:52:28 UTC |
1c91ec0 | Junio C Hamano | 28 March 2017, 20:52:27 UTC | Merge branch 'rs/path-name-safety-cleanup' into maint Code clean-up. * rs/path-name-safety-cleanup: revision: remove declaration of path_name() | 28 March 2017, 20:52:27 UTC |
310b945 | Junio C Hamano | 28 March 2017, 20:52:26 UTC | Merge branch 'rs/http-push-cleanup' into maint Code clean-up. * rs/http-push-cleanup: http-push: don't check return value of lookup_unknown_object() | 28 March 2017, 20:52:26 UTC |
e3c551d | Junio C Hamano | 28 March 2017, 20:52:26 UTC | Merge branch 'sb/wt-status-cleanup' into maint Code clean-up. * sb/wt-status-cleanup: wt-status: simplify by using for_each_string_list_item | 28 March 2017, 20:52:26 UTC |
ba5e05f | Junio C Hamano | 28 March 2017, 20:52:25 UTC | Merge branch 'jk/pack-name-cleanups' into maint Code clean-up. * jk/pack-name-cleanups: index-pack: make pointer-alias fallbacks safer replace snprintf with odb_pack_name() odb_pack_keep(): stop generating keepfile name sha1_file.c: make pack-name helper globally accessible move odb_* declarations out of git-compat-util.h | 28 March 2017, 20:52:25 UTC |
8f71209 | Junio C Hamano | 28 March 2017, 20:52:25 UTC | Merge branch 'jk/rev-parse-cleanup' into maint Code clean-up. * jk/rev-parse-cleanup: rev-parse: simplify parsing of ref options rev-parse: add helper for parsing "--foo/--foo=" rev-parse: use skip_prefix when parsing options | 28 March 2017, 20:52:25 UTC |
a9508a1 | Junio C Hamano | 28 March 2017, 20:52:25 UTC | Merge branch 'rs/blame-code-cleanup' into maint Code clean-up. * rs/blame-code-cleanup: blame: move blame_entry duplication to add_blame_entry() | 28 March 2017, 20:52:25 UTC |
110bdbd | Junio C Hamano | 28 March 2017, 20:52:24 UTC | Merge branch 'st/verify-tag' into maint A few unterminated here documents in tests were fixed, which in turn revealed incorrect expectations the tests make. These tests have been updated. * st/verify-tag: t7004, t7030: fix here-doc syntax errors | 28 March 2017, 20:52:24 UTC |
57009b1 | Junio C Hamano | 28 March 2017, 20:52:24 UTC | Merge branch 'js/regexec-buf' into maint Fix for potential segv introduced in v2.11.0 and later (also v2.10.2). * js/regexec-buf: pickaxe: fix segfault with '-S<...> --pickaxe-regex' | 28 March 2017, 20:52:24 UTC |
fd3ab91 | Junio C Hamano | 28 March 2017, 20:52:23 UTC | Merge branch 'jk/execv-dashed-external' into maint Fix for NO_PTHREADS build. * jk/execv-dashed-external: run-command: fix segfault when cleaning forked async process | 28 March 2017, 20:52:23 UTC |
c953cf9 | Junio C Hamano | 28 March 2017, 20:52:23 UTC | Merge branch 'ew/http-alternates-as-redirects-warning' into maint Recent versions of Git treats http alternates (used in dumb http transport) just like HTTP redirects and requires the client to enable following it, due to security concerns. But we forgot to give a warning when we decide not to honor the alternates. * ew/http-alternates-as-redirects-warning: http: release strbuf on disabled alternates http: inform about alternates-as-redirects behavior | 28 March 2017, 20:52:23 UTC |
bfee58c | Junio C Hamano | 28 March 2017, 20:52:22 UTC | Merge branch 'dp/filter-branch-prune-empty' into maint "git filter-branch --prune-empty" drops a single-parent commit that becomes a no-op, but did not drop a root commit whose tree is empty. * dp/filter-branch-prune-empty: p7000: add test for filter-branch with --prune-empty filter-branch: fix --prune-empty on parentless commits t7003: ensure --prune-empty removes entire branch when applicable t7003: ensure --prune-empty can prune root commit | 28 March 2017, 20:52:22 UTC |
2b69d31 | Junio C Hamano | 28 March 2017, 20:52:22 UTC | Merge branch 'mm/fetch-show-error-message-on-unadvertised-object' into maint "git fetch" that requests a commit by object name, when the other side does not allow such an request, failed without much explanation. * mm/fetch-show-error-message-on-unadvertised-object: fetch-pack: add specific error for fetching an unadvertised object fetch_refs_via_pack: call report_unmatched_refs fetch-pack: move code to report unmatched refs to a function | 28 March 2017, 20:52:22 UTC |
41534b6 | Junio C Hamano | 28 March 2017, 20:52:22 UTC | Merge branch 'jk/interpret-branch-name' into maint "git branch @" created refs/heads/@ as a branch, and in general the code that handled @{-1} and @{upstream} was a bit too loose in disambiguating. * jk/interpret-branch-name: checkout: restrict @-expansions when finding branch strbuf_check_ref_format(): expand only local branches branch: restrict @-expansions when deleting t3204: test git-branch @-expansion corner cases interpret_branch_name: allow callers to restrict expansions strbuf_branchname: add docstring strbuf_branchname: drop return value interpret_branch_name: move docstring to header file interpret_branch_name(): handle auto-namelen for @{-1} | 28 March 2017, 20:52:22 UTC |
e25c122 | Junio C Hamano | 28 March 2017, 20:52:21 UTC | Merge branch 'ab/cond-skip-tests' into maint A few tests were run conditionally under (rare) conditions where they cannot be run (like running cvs tests under 'root' account). * ab/cond-skip-tests: gitweb tests: skip tests when we don't have Time::HiRes gitweb tests: change confusing "skip_all" phrasing cvs tests: skip tests that call "cvs commit" when running as root | 28 March 2017, 20:52:21 UTC |
bb622de | Junio C Hamano | 28 March 2017, 20:52:21 UTC | Merge branch 'jk/ident-empty' into maint user.email that consists of only cruft chars should consistently error out, but didn't. * jk/ident-empty: ident: do not ignore empty config name/email ident: reject all-crud ident name ident: handle NULL email when complaining of empty name ident: mark error messages for translation | 28 March 2017, 20:52:21 UTC |
252ef8f | Junio C Hamano | 28 March 2017, 20:52:20 UTC | Merge branch 'jk/delta-chain-limit' into maint "git repack --depth=<n>" for a long time busted the specified depth when reusing delta from existing packs. This has been corrected. * jk/delta-chain-limit: pack-objects: convert recursion to iteration in break_delta_chain() pack-objects: enforce --depth limit in reused deltas | 28 March 2017, 20:52:21 UTC |
9304052 | Junio C Hamano | 28 March 2017, 20:52:20 UTC | Merge branch 'sg/test-with-stdin' into maint Teach the "debug" helper used in the test framework that allows a command to run under "gdb" to make the session interactive. * sg/test-with-stdin: tests: make the 'test_pause' helper work in non-verbose mode tests: create an interactive gdb session with the 'debug' helper | 28 March 2017, 20:52:20 UTC |
c34aa34 | Junio C Hamano | 28 March 2017, 20:52:20 UTC | Merge branch 'jk/interop-test' into maint Picking two versions of Git and running tests to make sure the older one and the newer one interoperate happily has now become possible. * jk/interop-test: t/interop: add test of old clients against modern git-daemon t: add an interoperability test harness | 28 March 2017, 20:52:20 UTC |
e0c74e6 | Junio C Hamano | 28 March 2017, 20:52:19 UTC | Merge branch 'jt/perf-updates' into maint The t/perf performance test suite was not prepared to test not so old versions of Git, but now it covers versions of Git that are not so ancient. * jt/perf-updates: t/perf: add fallback for pre-bin-wrappers versions of git t/perf: use $MODERN_GIT for all repo-copying steps t/perf: export variable used in other blocks | 28 March 2017, 20:52:19 UTC |
cd27bc7 | Junio C Hamano | 28 March 2017, 20:52:19 UTC | Merge branch 'rs/strbuf-add-real-path' into maint An helper function to make it easier to append the result from real_path() to a strbuf has been added. * rs/strbuf-add-real-path: strbuf: add strbuf_add_real_path() cocci: use ALLOC_ARRAY | 28 March 2017, 20:52:19 UTC |
c772d1b | Junio C Hamano | 28 March 2017, 20:52:18 UTC | Merge branch 'jk/parse-config-key-cleanup' into maint The "parse_config_key()" API function has been cleaned up. * jk/parse-config-key-cleanup: parse_hide_refs_config: tell parse_config_key we don't want a subsection parse_config_key: allow matching single-level config parse_config_key: use skip_prefix instead of starts_with refs: parse_hide_refs_config to use parse_config_key | 28 March 2017, 20:52:19 UTC |
8f9aeb0 | Junio C Hamano | 24 March 2017, 19:59:15 UTC | Git 2.12.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 March 2017, 19:59:15 UTC |
75d4476 | Junio C Hamano | 24 March 2017, 19:57:55 UTC | Merge branch 'ab/doc-no-option-notation-fix' into maint Doc fix. * ab/doc-no-option-notation-fix: doc: change erroneous --[no]-whatever into --[no-]whatever | 24 March 2017, 19:57:55 UTC |
ce9e617 | Junio C Hamano | 24 March 2017, 19:57:54 UTC | Merge branch 'ab/push-default-doc-fix' into maint Doc fix. * ab/push-default-doc-fix: push: mention "push.default=tracking" in the documentation | 24 March 2017, 19:57:54 UTC |
7bd881f | Junio C Hamano | 24 March 2017, 19:57:54 UTC | Merge branch 'nd/commit-hook-doc-fix' into maint Doc fix. * nd/commit-hook-doc-fix: git-commit.txt: list post-rewrite in HOOKS section | 24 March 2017, 19:57:54 UTC |
eb4e87c | Junio C Hamano | 24 March 2017, 19:57:54 UTC | Merge branch 'jc/config-case-cmdline-take-2' into maint The code to parse "git -c VAR=VAL cmd" and set configuration variable for the duration of cmd had two small bugs, which have been fixed. This supersedes jc/config-case-cmdline topic that has been discarded. * jc/config-case-cmdline-take-2: config: use git_config_parse_key() in git_config_parse_parameter() config: move a few helper functions up | 24 March 2017, 19:57:54 UTC |
ea7aa5a | Junio C Hamano | 24 March 2017, 19:57:53 UTC | Merge branch 'jk/grep-no-index-fix' into maint The code to parse the command line "git grep <patterns>... <rev> [[--] <pathspec>...]" has been cleaned up, and a handful of bugs have been fixed (e.g. we used to check "--" if it is a rev). * jk/grep-no-index-fix: grep: treat revs the same for --untracked as for --no-index grep: do not diagnose misspelt revs with --no-index grep: avoid resolving revision names in --no-index case grep: fix "--" rev/pathspec disambiguation grep: re-order rev-parsing loop grep: do not unnecessarily query repo for "--" grep: move thread initialization a little lower | 24 March 2017, 19:57:53 UTC |
411a179 | Junio C Hamano | 24 March 2017, 19:57:53 UTC | Merge branch 'jn/remote-helpers-with-git-dir' into maint "git ls-remote" and "git archive --remote" are designed to work without being in a directory under Git's control. However, recent updates revealed that we randomly look into a directory called .git/ without actually doing necessary set-up when working in a repository. Stop doing so. * jn/remote-helpers-with-git-dir: remote helpers: avoid blind fall-back to ".git" when setting GIT_DIR remote: avoid reading $GIT_DIR config in non-repo | 24 March 2017, 19:57:53 UTC |
f3d5bbb | Junio C Hamano | 24 March 2017, 19:57:52 UTC | Merge branch 'sb/submodule-config-parse-ignore-fix' into maint Code to read submodule.<name>.ignore config did not state the variable name correctly when giving an error message diagnosing misconfiguration. * sb/submodule-config-parse-ignore-fix: submodule-config: correct error reporting for invalid ignore value | 24 March 2017, 19:57:52 UTC |
f4d3af1 | Junio C Hamano | 24 March 2017, 19:57:52 UTC | Merge branch 'jk/push-deadlock-regression-fix' into maint "git push" had a handful of codepaths that could lead to a deadlock when unexpected error happened, which has been fixed. * jk/push-deadlock-regression-fix: send-pack: report signal death of pack-objects send-pack: read "unpack" status even on pack-objects failure send-pack: improve unpack-status error messages send-pack: use skip_prefix for parsing unpack status send-pack: extract parsing of "unpack" response receive-pack: fix deadlock when we cannot create tmpdir | 24 March 2017, 19:57:52 UTC |
296ab78 | Michael J Gruber | 24 March 2017, 14:01:36 UTC | mailmap: use Michael J Gruber's new address Map both old addresses to the new, hopefully more permanent one. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Michael J Gruber <git@grubix.eu> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 March 2017, 19:30:27 UTC |
b42ca35 | Santiago Torres | 23 March 2017, 22:28:47 UTC | t7004, t7030: fix here-doc syntax errors Jan Palus noticed that some here-doc are spelled incorrectly, resulting the entire remainder of the test snippet being slurped into the "expect" file as if it were data, e.g. in this sequence cat >expect <<EOF && ... expectation ... EOF git $cmd_being_tested >actual && test_cmp expect actual the last command of the test is "cat" that sends everything to 'expect' and succeeds. Fixing these issues in t7004 and t7030 reveals that "git tag -v" and "git verify-tag" with their --format option do not work as the test was expecting originally. Instead of showing both valid tags and tags with incorrect signatures on their output, tags that do not pass verification are omitted from the output. Another breakage that is uncovered is that these tests must be restricted to environment where gpg is available. Arguably, that is a safer behaviour, and because the format specifiers like %(tag) do not have a way to show if the signature verifies correctly, the command with the --format option cannot be used to get a list of tags annotated with their signature validity anyway. For now, let's fix the here-doc syntax, update the expectation to match the reality, and update the test prerequisite. Maybe later when we extend the --format language available to "git tag -v" and "git verify-tag" to include things like "%(gpg:status)", we may want to change the behaviour so that piping a list of tag names into xargs git verify-tag --format='%(gpg:status) %(tag)' becomes a good way to produce such a list, but that is a separate topic. Noticed-by: Jan Palus <jan.palus@gmail.com> Helped-by: Jeff King <peff@peff.net> Signed-off-by: Santiago Torres <santiago@nyu.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 March 2017, 17:19:18 UTC |
e7e183d | Kyle Meyer | 23 March 2017, 17:32:16 UTC | doc/config: grammar fixes for core.{editor,commentChar} Signed-off-by: Kyle Meyer <kyle@kyleam.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 March 2017, 19:04:08 UTC |
a4dded0 | Junio C Hamano | 22 March 2017, 22:12:07 UTC | t7406: correct test case for submodule-update initial population There are three issues with the test: * The syntax of the here-doc was wrong, such that the entire test was sucked into the here-doc, which is why the test succeeded. * The variable $submodulesha1 was not expanded as it was inside a quoted here text. We do not want to quote EOF marker for this. * The redirection from the git command to the output file for comparison was wrong as the -C operator from git doesn't apply to the redirect path. Also we're interested in stderr of that command. Noticed-by: Jan Palus <jan.palus@gmail.com> Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 March 2017, 22:39:51 UTC |
37e6115 | Junio C Hamano | 22 March 2017, 19:56:43 UTC | t5615: fix a here-doc syntax error This came as part of jk/quote-env-path-list-component and was merged to 2.11.1 and later. Noticed-by: Jan Palus <jan.palus@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 March 2017, 20:31:52 UTC |
70471ed | Stefan Beller | 21 March 2017, 21:08:02 UTC | t3600: rename test to describe its functionality This was an oversight in 55856a35b2 (rm: absorb a submodules git dir before deletion, 2016-12-27), as the body of the test changed without adapting the test subject. Signed-off-by: Stefan Beller <sbeller@google.com> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 March 2017, 17:13:17 UTC |
8624735 | Junio C Hamano | 21 March 2017, 22:04:12 UTC | Prepare for 2.12.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 21 March 2017, 22:04:12 UTC |
71da2fb | Junio C Hamano | 21 March 2017, 22:03:30 UTC | Merge branch 'jh/send-email-one-cc' into maint "Cc:" on the trailer part does not have to conform to RFC strictly, unlike in the e-mail header. "git send-email" has been updated to ignore anything after '>' when picking addresses, to allow non-address cruft like " # stable 4.4" after the address. * jh/send-email-one-cc: send-email: only allow one address per body tag | 21 March 2017, 22:03:30 UTC |
7e02ec2 | Junio C Hamano | 21 March 2017, 22:03:30 UTC | Merge branch 'jk/t6300-cleanup' into maint A test that creates a confusing branch whose name is HEAD has been corrected not to do so. * jk/t6300-cleanup: t6300: avoid creating refs/heads/HEAD | 21 March 2017, 22:03:30 UTC |
d6bc22e | Junio C Hamano | 21 March 2017, 22:03:29 UTC | Merge branch 'rs/commit-parsing-optim' into maint The code that parses header fields in the commit object has been updated for (micro)performance and code hygiene. * rs/commit-parsing-optim: commit: don't check for space twice when looking for header commit: be more precise when searching for headers | 21 March 2017, 22:03:29 UTC |