6ae0d97 | Junio C Hamano | 02 April 2015, 19:46:06 UTC | Git 2.4.0-rc1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 April 2015, 19:46:06 UTC |
3c6151d | Junio C Hamano | 02 April 2015, 19:34:43 UTC | Merge branch 'sb/atomic-push' * sb/atomic-push: send-pack: unify error messages for unsupported capabilities | 02 April 2015, 19:34:43 UTC |
c8b8f22 | Ralf Thielow | 02 April 2015, 17:28:48 UTC | send-pack: unify error messages for unsupported capabilities If --signed is not supported, the error message names the remote "receiving end". If --atomic is not supported, the error message names the remote "server". Unify the naming to "receiving end" as we're in the context of "push". Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 April 2015, 18:02:52 UTC |
cf8a8c6 | Junio C Hamano | 31 March 2015, 21:58:38 UTC | Sync with 2.3.5 * maint: Git 2.3.5 docs: clarify what git-rebase's "-p" / "--preserve-merges" does | 31 March 2015, 21:58:38 UTC |
52735a6 | Junio C Hamano | 31 March 2015, 21:57:10 UTC | Git 2.3.5 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 31 March 2015, 21:57:10 UTC |
ad00aeb | Junio C Hamano | 31 March 2015, 21:54:11 UTC | Merge branch 'ss/pull-rebase-preserve' into maint * ss/pull-rebase-preserve: docs: clarify what git-rebase's "-p" / "--preserve-merges" does docs: clarify "preserve" option wording for git-pull | 31 March 2015, 21:54:12 UTC |
ab0fb57 | Junio C Hamano | 31 March 2015, 21:53:08 UTC | Merge branch 'jc/report-path-error-to-dir' into maint Code clean-up. * jc/report-path-error-to-dir: report_path_error(): move to dir.c | 31 March 2015, 21:53:08 UTC |
a78fc4a | Junio C Hamano | 31 March 2015, 21:52:23 UTC | Merge branch 'ph/push-doc-cas' into maint * ph/push-doc-cas: git-push.txt: clean up force-with-lease wording | 31 March 2015, 21:52:24 UTC |
d50d31e | Sebastian Schuberth | 30 March 2015, 09:29:46 UTC | docs: clarify what git-rebase's "-p" / "--preserve-merges" does Ignoring a merge can be read as ignoring the changes a merge commit introduces altogether, as if the entire side branch the merge commit merged was removed from the history. But that is not what happens if "-p" is not specified. What happens is that the individual commits a merge commit introduces are replayed in order, and only any possible merge conflict resolutions or manual amendments to the merge commit are ignored. Get this straight in the docs. Also, do not say that merge commits are *tried* to be recreated. As that is true almost everywhere it is better left unsaid. Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 March 2015, 20:44:29 UTC |
a3b75b3 | Junio C Hamano | 28 March 2015, 16:42:49 UTC | Sync with maint * maint: Prepare for 2.3.5 2.3.2 release notes: typofix | 28 March 2015, 16:42:49 UTC |
9e4ab3a | Junio C Hamano | 28 March 2015, 16:41:51 UTC | RelNotes: minor doc updates Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 March 2015, 16:41:51 UTC |
31137f5 | Junio C Hamano | 28 March 2015, 16:37:53 UTC | Merge branch 'ph/push-doc-cas' * ph/push-doc-cas: git-push.txt: clean up force-with-lease wording | 28 March 2015, 16:37:53 UTC |
3a18352 | Junio C Hamano | 28 March 2015, 16:37:51 UTC | Merge branch 'ss/pull-rebase-preserve' * ss/pull-rebase-preserve: docs: clarify "preserve" option wording for git-pull | 28 March 2015, 16:37:52 UTC |
2c97724 | Junio C Hamano | 28 March 2015, 16:36:30 UTC | Prepare for 2.3.5 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 March 2015, 16:36:30 UTC |
4eea8e3 | Junio C Hamano | 28 March 2015, 16:33:15 UTC | Merge branch 'sg/completion-gitcomp-nl-for-refs' into maint Code clean-up. * sg/completion-gitcomp-nl-for-refs: completion: use __gitcomp_nl() for completing refs | 28 March 2015, 16:33:15 UTC |
a070d62 | Junio C Hamano | 28 March 2015, 16:33:15 UTC | Merge branch 'jk/simplify-csum-file-sha1fd-check' into maint Code simplification. * jk/simplify-csum-file-sha1fd-check: sha1fd_check: die when we cannot open the file | 28 March 2015, 16:33:15 UTC |
b265061 | Junio C Hamano | 28 March 2015, 16:33:14 UTC | Merge branch 'tg/test-index-v4' into maint A test fix. * tg/test-index-v4: t1700: make test pass with index-v4 | 28 March 2015, 16:33:14 UTC |
2217579 | Junio C Hamano | 28 March 2015, 16:33:13 UTC | Merge branch 'nd/doc-git-index-version' into maint Doc clean-up. * nd/doc-git-index-version: git.txt: list index versions in plain English | 28 March 2015, 16:33:13 UTC |
245dd15 | Junio C Hamano | 28 March 2015, 16:33:12 UTC | Merge branch 'ct/prompt-untracked-fix' into maint The prompt script (in contrib/) did not show the untracked sign when working in a subdirectory without any untracked files. * ct/prompt-untracked-fix: git prompt: use toplevel to find untracked files | 28 March 2015, 16:33:12 UTC |
b70cec0 | Junio C Hamano | 28 March 2015, 16:33:11 UTC | Merge branch 'ws/grep-quiet-no-pager' into maint Even though "git grep --quiet" is run merely to ask for the exit status, we spawned the pager regardless. Stop doing that. * ws/grep-quiet-no-pager: grep: fix "--quiet" overwriting current output | 28 March 2015, 16:33:11 UTC |
a5d3154 | Junio C Hamano | 28 March 2015, 16:33:10 UTC | Merge branch 'jc/submitting-patches-mention-send-email' into maint Recommend format-patch and send-email for those who want to submit patches to this project. * jc/submitting-patches-mention-send-email: SubmittingPatches: encourage users to use format-patch and send-email | 28 March 2015, 16:33:10 UTC |
73d8bfd | Junio C Hamano | 28 March 2015, 16:33:09 UTC | Merge branch 'jk/cleanup-failed-clone' into maint An failure early in the "git clone" that started creating the working tree and repository could have resulted in some directories and files left without getting cleaned up. * jk/cleanup-failed-clone: clone: drop period from end of die_errno message clone: initialize atexit cleanup handler earlier | 28 March 2015, 16:33:09 UTC |
591a1da | Junio C Hamano | 28 March 2015, 16:33:08 UTC | Merge branch 'jk/fetch-pack' into maint "git fetch" that fetches a commit using the allow-tip-sha1-in-want extension could have failed to fetch all the requested refs. * jk/fetch-pack: fetch-pack: remove dead assignment to ref->new_sha1 fetch_refs_via_pack: free extra copy of refs filter_ref: make a copy of extra "sought" entries filter_ref: avoid overwriting ref->old_sha1 with garbage | 28 March 2015, 16:33:08 UTC |
07e3f27 | Junio C Hamano | 28 March 2015, 16:33:07 UTC | Merge branch 'tg/fix-check-order-with-split-index' into maint The split-index mode introduced at v2.3.0-rc0~41 was broken in the codepath to protect us against a broken reimplementation of Git that writes an invalid index with duplicated index entries, etc. * tg/fix-check-order-with-split-index: read-cache: fix reading of split index | 28 March 2015, 16:33:07 UTC |
9f389aa | Junio C Hamano | 28 March 2015, 16:33:06 UTC | Merge branch 'jk/prune-with-corrupt-refs' into maint "git prune" used to largely ignore broken refs when deciding which objects are still being used, which could spread an existing small damage and make it a larger one. * jk/prune-with-corrupt-refs: refs.c: drop curate_packed_refs repack: turn on "ref paranoia" when doing a destructive repack prune: turn on ref_paranoia flag refs: introduce a "ref paranoia" flag t5312: test object deletion code paths in a corrupted repository | 28 March 2015, 16:33:06 UTC |
b37996e | Thomas Ackermann | 26 March 2015, 20:29:47 UTC | 2.3.2 release notes: typofix Signed-off-by: Thomas Ackermann <th.acker@arcor.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 March 2015, 16:29:29 UTC |
cf98c42 | Junio C Hamano | 28 March 2015, 16:26:18 UTC | Merge branch 'jn/doc-api-errors' * jn/doc-api-errors: api-error-handling doc: typofix | 28 March 2015, 16:26:18 UTC |
39d5bef | Thomas Ackermann | 26 March 2015, 20:29:47 UTC | api-error-handling doc: typofix Signed-off-by: Thomas Ackermann <th.acker@arcor.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 March 2015, 16:24:55 UTC |
283cd32 | Junio C Hamano | 27 March 2015, 20:02:55 UTC | Sync with maint * maint: Update mailmap to spell out "Alexander Kuleshov" | 27 March 2015, 20:02:55 UTC |
553c622 | Junio C Hamano | 27 March 2015, 20:02:32 UTC | Merge branch 'sb/leaks' * sb/leaks: http: release the memory of a http pack request as well read-cache: fix memleak add_to_index(): free unused cache-entry commit.c: fix a memory leak http-push: remove unneeded cleanup merge-recursive: fix memleaks merge-blobs.c: fix a memleak builtin/apply.c: fix a memleak update-index: fix a memleak read-cache: free cache entry in add_to_index in case of early return | 27 March 2015, 20:02:32 UTC |
d8279c7 | Junio C Hamano | 27 March 2015, 20:00:23 UTC | Merge branch 'jk/tag-h-column-is-a-listing-option' into maint "git tag -h" used to show the "--column" and "--sort" options that are about listing in a wrong section. * jk/tag-h-column-is-a-listing-option: tag: fix some mis-organized options in "-h" listing | 27 March 2015, 20:00:23 UTC |
a730ea3 | Junio C Hamano | 27 March 2015, 20:00:20 UTC | Merge branch 'jk/smart-http-hide-refs' into maint The transfer.hiderefs support did not quite work for smart-http transport. * jk/smart-http-hide-refs: upload-pack: do not check NULL return of lookup_unknown_object upload-pack: fix transfer.hiderefs over smart-http | 27 March 2015, 20:00:21 UTC |
792c572 | Junio C Hamano | 27 March 2015, 20:00:17 UTC | Merge branch 'js/completion-ctags-pattern-substitution-fix' into maint The code that reads from the ctags file in the completion script (in contrib/) did not spell ${param/pattern/string} substitution correctly, which happened to work with bash but not with zsh. * js/completion-ctags-pattern-substitution-fix: contrib/completion: escape the forward slash in __git_match_ctag | 27 March 2015, 20:00:18 UTC |
9032959 | Junio C Hamano | 27 March 2015, 19:58:04 UTC | Update mailmap to spell out "Alexander Kuleshov" Signed-off-by: Junio C Hamano <gitster@pobox.com> | 27 March 2015, 19:58:18 UTC |
129260c | Sebastian Schuberth | 26 March 2015, 20:11:21 UTC | docs: clarify "preserve" option wording for git-pull The "also" sounds as if "preserve" does a rebase as an additional step that "true" would not do, but that is not the case. Clarify this by omitting "also", and rewording the sentence a bit. Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 March 2015, 20:19:26 UTC |
2dfb2e0 | Junio C Hamano | 26 March 2015, 18:59:05 UTC | Git 2.4.0-rc0 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 March 2015, 18:59:05 UTC |
30db51a | Junio C Hamano | 26 March 2015, 18:57:13 UTC | Merge branch 'jk/test-chain-lint' People often forget to chain the commands in their test together with &&, leaving a failure from an earlier command in the test go unnoticed. The new GIT_TEST_CHAIN_LINT mechanism allows you to catch such a mistake more easily. * jk/test-chain-lint: (36 commits) t9001: drop save_confirm helper t0020: use test_* helpers instead of hand-rolled messages t: simplify loop exit-code status variables t: fix some trivial cases of ignored exit codes in loops t7701: fix ignored exit code inside loop t3305: fix ignored exit code inside loop t0020: fix ignored exit code inside loops perf-lib: fix ignored exit code inside loop t6039: fix broken && chain t9158, t9161: fix broken &&-chain in git-svn tests t9104: fix test for following larger parents t4104: drop hand-rolled error reporting t0005: fix broken &&-chains t7004: fix embedded single-quotes t0050: appease --chain-lint t9001: use test_when_finished t4117: use modern test_* helpers t6034: use modern test_* helpers t1301: use modern test_* helpers t0020: use modern test_* helpers ... | 26 March 2015, 18:57:14 UTC |
55a3b3c | Junio C Hamano | 26 March 2015, 18:57:13 UTC | Merge branch 'sg/completion-gitcomp-nl-for-refs' Code clean-up. * sg/completion-gitcomp-nl-for-refs: completion: use __gitcomp_nl() for completing refs | 26 March 2015, 18:57:13 UTC |
574ee8a | Junio C Hamano | 26 March 2015, 18:57:12 UTC | Merge branch 'jc/report-path-error-to-dir' Code clean-up. * jc/report-path-error-to-dir: report_path_error(): move to dir.c | 26 March 2015, 18:57:13 UTC |
fddfaf8 | Phil Hord | 26 March 2015, 15:15:09 UTC | git-push.txt: clean up force-with-lease wording The help text for the --force-with-lease option to git-push does not parse cleanly. Clean up the wording and syntax to be more sensible. Also remove redundant information in the "--force-with-lease alone" description. Signed-off-by: Phil Hord <hordp@cisco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 March 2015, 18:41:24 UTC |
bca1811 | Junio C Hamano | 25 March 2015, 20:01:07 UTC | Getting ready for -rc0 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 March 2015, 20:01:07 UTC |
6ce3cc5 | Junio C Hamano | 25 March 2015, 19:54:28 UTC | Merge branch 'nd/doc-git-index-version' Doc clean-up. * nd/doc-git-index-version: git.txt: list index versions in plain English | 25 March 2015, 19:54:28 UTC |
ea1fd48 | Junio C Hamano | 25 March 2015, 19:54:27 UTC | Merge branch 'jk/run-command-capture' The run-command interface was easy to abuse and make a pipe for us to read from the process, wait for the process to finish and then attempt to read its output, which is a pattern that lead to a deadlock. Fix such uses by introducing a helper to do this correctly (i.e. we need to read first and then wait the process to finish) and also add code to prevent such abuse in the run-command helper. * jk/run-command-capture: run-command: forbid using run_command with piped output trailer: use capture_command submodule: use capture_command wt-status: use capture_command run-command: introduce capture_command helper wt_status: fix signedness mismatch in strbuf_read call wt-status: don't flush before running "submodule status" | 25 March 2015, 19:54:27 UTC |
d78374e | Junio C Hamano | 25 March 2015, 19:54:27 UTC | Merge branch 'tg/test-index-v4' A test fix. * tg/test-index-v4: t1700: make test pass with index-v4 | 25 March 2015, 19:54:27 UTC |
05e816e | Junio C Hamano | 25 March 2015, 19:54:26 UTC | Merge branch 'jk/prune-with-corrupt-refs' "git prune" used to largely ignore broken refs when deciding which objects are still being used, which could spread an existing small damage and make it a larger one. * jk/prune-with-corrupt-refs: refs.c: drop curate_packed_refs repack: turn on "ref paranoia" when doing a destructive repack prune: turn on ref_paranoia flag refs: introduce a "ref paranoia" flag t5312: test object deletion code paths in a corrupted repository | 25 March 2015, 19:54:26 UTC |
a801bb8 | Junio C Hamano | 25 March 2015, 19:54:26 UTC | Merge branch 'tg/fix-check-order-with-split-index' The split-index mode introduced at v2.3.0-rc0~41 was broken in the codepath to protect us against a broken reimplementation of Git that writes an invalid index with duplicated index entries, etc. * tg/fix-check-order-with-split-index: read-cache: fix reading of split index | 25 March 2015, 19:54:26 UTC |
2f6ef71 | Junio C Hamano | 25 March 2015, 19:54:25 UTC | Merge branch 'jk/fetch-pack' "git fetch" that fetches a commit using the allow-tip-sha1-in-want extension could have failed to fetch all the requested refs. * jk/fetch-pack: fetch-pack: remove dead assignment to ref->new_sha1 fetch_refs_via_pack: free extra copy of refs filter_ref: make a copy of extra "sought" entries filter_ref: avoid overwriting ref->old_sha1 with garbage | 25 March 2015, 19:54:25 UTC |
927936d | Junio C Hamano | 25 March 2015, 19:54:24 UTC | Merge branch 'jk/cleanup-failed-clone' An failure early in the "git clone" that started creating the working tree and repository could have resulted in some directories and files left without getting cleaned up. * jk/cleanup-failed-clone: clone: drop period from end of die_errno message clone: initialize atexit cleanup handler earlier | 25 March 2015, 19:54:24 UTC |
cf07d3f | Junio C Hamano | 25 March 2015, 19:54:23 UTC | Merge branch 'jc/submitting-patches-mention-send-email' Recommend format-patch and send-email for those who want to submit patches to this project. * jc/submitting-patches-mention-send-email: SubmittingPatches: encourage users to use format-patch and send-email | 25 March 2015, 19:54:23 UTC |
dbd04eb | Junio C Hamano | 25 March 2015, 19:54:22 UTC | Merge branch 'dj/log-graph-with-no-walk' "git log --graph --no-walk A B..." is a otcnflicting request that asks nonsense; no-walk tells us show discrete points in the history, while graph asks to draw connections between these discrete points. Forbid the combination. * dj/log-graph-with-no-walk: revision: forbid combining --graph and --no-walk | 25 March 2015, 19:54:22 UTC |
257b204 | Junio C Hamano | 25 March 2015, 19:54:21 UTC | Merge branch 'kd/rev-list-bisect-first-parent' "git rev-list --bisect --first-parent" does not work (yet) and can even cause SEGV; forbid it. "git log --bisect --first-parent" would not be useful until "git bisect --first-parent" materializes, so it is also forbidden for now. * kd/rev-list-bisect-first-parent: rev-list: refuse --first-parent combined with --bisect | 25 March 2015, 19:54:21 UTC |
01c057d | Junio C Hamano | 25 March 2015, 19:54:20 UTC | Merge branch 'ws/grep-quiet-no-pager' Even though "git grep --quiet" is run merely to ask for the exit status, we spawned the pager regardless. Stop doing that. * ws/grep-quiet-no-pager: grep: fix "--quiet" overwriting current output | 25 March 2015, 19:54:20 UTC |
09e32fa | Junio C Hamano | 25 March 2015, 19:54:19 UTC | Merge branch 'jk/simplify-csum-file-sha1fd-check' Code simplification. * jk/simplify-csum-file-sha1fd-check: sha1fd_check: die when we cannot open the file | 25 March 2015, 19:54:19 UTC |
5f15cba | Junio C Hamano | 25 March 2015, 19:54:18 UTC | Merge branch 'ct/prompt-untracked-fix' The prompt script (in contrib/) did not show the untracked sign when working in a subdirectory without any untracked files. * ct/prompt-untracked-fix: git prompt: use toplevel to find untracked files | 25 March 2015, 19:54:18 UTC |
fc99da1 | Jeff King | 25 March 2015, 05:32:20 UTC | t9001: drop save_confirm helper The idea of this helper is that we want to save the current value of a config variable and then restore it again after the test completes. However, there's no point in actually saving the value; it should always be restored to the string "never" (which you can confirm by instrumenting save_confirm to print the value it finds). Let's just replace it with a single test_when_finished call. Suggested-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 March 2015, 19:49:33 UTC |
be86fb3 | Jeff King | 25 March 2015, 05:31:41 UTC | t0020: use test_* helpers instead of hand-rolled messages These tests are not wrong, but it is much shorter and more idiomatic to say "verbose" or "test_must_fail" rather than printing our own messages on failure. Likewise, there is no need to say "happy" at the end of a test; the test suite takes care of that. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 March 2015, 19:49:33 UTC |
c6587bd | Jeff King | 25 March 2015, 05:30:17 UTC | t: simplify loop exit-code status variables Since shell loops may drop the exit code of failed commands inside the loop, some tests try to keep track of the status by setting a variable. This can end up cumbersome and hard to read; it is much simpler to just exit directly from the loop using "return 1" (since each case is either in a helper function or inside a test snippet). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 March 2015, 19:49:33 UTC |
e6821d0 | Jeff King | 25 March 2015, 05:29:52 UTC | t: fix some trivial cases of ignored exit codes in loops These are all cases where we do a setup step of the form: for i in $foo; do set_up $i || break done && more_setup would not notice a failure in set_up (because break always returns a 0 exit code). These are just setup steps that we do not expect to fail, but it does not hurt to be defensive. Most can be fixed by converting the "break" to a "return 1" (since we eval our tests inside a function for just this purpose). A few of the loops are inside subshells, so we can use just "exit 1" to break out of the subshell. And a few can actually be made shorter by just unrolling the loop. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 March 2015, 17:25:27 UTC |
76e057d | Jeff King | 25 March 2015, 05:29:10 UTC | t7701: fix ignored exit code inside loop When checking a list of file mtimes, we use a loop and break out early from the loop if any entry does not match. However, the exit code of a loop exited via break is always 0, meaning that the test will fail to notice we had a mismatch. Since the loop is inside a function, we can fix this by doing an early "return 1". Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 March 2015, 17:24:13 UTC |
6636cf7 | Jeff King | 25 March 2015, 05:28:57 UTC | t3305: fix ignored exit code inside loop When we test deleting notes, we run "git notes remove" in a loop. However, the exit value of the loop will only reflect the final note we process. We should break out of the loop with a failing exit code as soon as we see a problem. Note that we can call "exit 1" here without explicitly creating a subshell, because the while loop on the right-hand side of a pipe executes in its own implicit subshell. Note also that the "break" above does not suffer the same problem; it is meant to exit the loop early at a certain number of iterations. We can bump it into the conditional of the loop to make this more obvious. Signed-off-by: Jeff King <peff@peff.net> Acked-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 March 2015, 17:23:58 UTC |
fd77714 | Jeff King | 25 March 2015, 05:28:44 UTC | t0020: fix ignored exit code inside loops A loop like: for f in one two; do something $f || break done will correctly break out of the loop when we see a failure of one item, but the resulting exit code will always be zero. We can fix that by putting the loop into a function or subshell, but in this case it is simpler still to just unroll the loop. We do add a helper function, which hopefully makes the end result even more readable (in addition to being shorter). Reported-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 March 2015, 17:22:35 UTC |
ecb590a | Jeff King | 25 March 2015, 05:25:55 UTC | perf-lib: fix ignored exit code inside loop When copying the test repository, we try to detect whether the copy succeeded. However, most of the heavy lifting is done inside a for loop, where our "break" will lose the exit code of the failing "cp". We can take advantage of the fact that we are in a subshell, and just "exit 1" to break out with a code. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 March 2015, 17:21:23 UTC |
92e625d | Junio C Hamano | 24 March 2015, 23:10:37 UTC | Merge branch 'master' of git://ozlabs.org/~paulus/gitk * 'master' of git://ozlabs.org/~paulus/gitk: gitk: Update .po files gitk: l10n: Add Catalan translation gitk: Fix typo in Russian translation gitk: Remove tcl-format flag from a message that shouldn't have it gitk: Pass --invert-grep option down to "git log" gitk: Synchronize config file writes gitk: Report errors in saving config file gitk: Only write changed configuration variables gitk: Enable mouse horizontal scrolling in diff pane gitk: Default wrcomcmd to use --pretty=email | 24 March 2015, 23:10:37 UTC |
777c55a | Junio C Hamano | 24 March 2015, 21:12:10 UTC | report_path_error(): move to dir.c The expected call sequence is for the caller to use match_pathspec() repeatedly on a set of pathspecs, accumulating the "hits" in a separate array, and then call this function to diagnose a pathspec that never matched anything, as that can indicate a typo from the command line, e.g. "git commit Maekfile". Many builtin commands use this function from builtin/ls-files.c, which is not a very healthy arrangement. ls-files might have been the first command to feel the need for such a helper, but the need is shared by everybody who uses the "match and then report" pattern. Move it to dir.c where match_pathspec() is defined. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 March 2015, 21:12:10 UTC |
826aed5 | Stefan Beller | 21 March 2015, 00:28:06 UTC | http: release the memory of a http pack request as well The cleanup function is used in 4 places now and it's always safe to free up the memory as well. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 March 2015, 19:36:10 UTC |
7032054 | Nguyễn Thái Ngọc Duy | 24 March 2015, 00:28:33 UTC | git.txt: list index versions in plain English At the first look, a user may think the default version is "23". Even with UNIX background, there's no reference anywhere close that may indicate this is glob or regex. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 24 March 2015, 15:06:00 UTC |
f53fc38 | Junio C Hamano | 23 March 2015, 18:37:49 UTC | Sync with v2.3.4 | 23 March 2015, 18:37:49 UTC |
9b22801 | Junio C Hamano | 23 March 2015, 18:36:01 UTC | Post 2.3 cycle (batch #12) Hopefully with another batch or two, we would be ready for -rc0 to close this cycle. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 March 2015, 18:36:01 UTC |
c267a4d | Junio C Hamano | 23 March 2015, 18:28:16 UTC | Merge branch 'js/completion-ctags-pattern-substitution-fix' The code that reads from the ctags file in the completion script (in contrib/) did not spell ${param/pattern/string} substitution correctly, which happened to work with bash but not with zsh. * js/completion-ctags-pattern-substitution-fix: contrib/completion: escape the forward slash in __git_match_ctag | 23 March 2015, 18:28:16 UTC |
61ca378 | Junio C Hamano | 23 March 2015, 18:28:13 UTC | Merge branch 'jk/push-config' Restructure "git push" codepath to make it easier to add new configuration bits and then add push.followTags configuration that turns --follow-tags option on by default. * jk/push-config: push: allow --follow-tags to be set by config push.followTags cmd_push: pass "flags" pointer to config callback cmd_push: set "atomic" bit directly git_push_config: drop cargo-culted wt_status pointer | 23 March 2015, 18:28:14 UTC |
aa65b86 | Junio C Hamano | 23 March 2015, 18:28:12 UTC | Merge branch 'nd/config-doc-camelCase' Documentation updates. * nd/config-doc-camelCase: *config.txt: stick to camelCase naming convention | 23 March 2015, 18:28:12 UTC |
07da4e0 | Junio C Hamano | 23 March 2015, 18:28:10 UTC | Merge branch 'jk/test-annoyances' Test fixes. * jk/test-annoyances: t5551: make EXPENSIVE test cheaper t5541: move run_with_cmdline_limit to test-lib.sh t: pass GIT_TRACE through Apache t: redirect stderr GIT_TRACE to descriptor 4 t: translate SIGINT to an exit | 23 March 2015, 18:28:10 UTC |
c12eca7 | Junio C Hamano | 23 March 2015, 18:28:08 UTC | Merge branch 'jk/smart-http-hide-refs' The transfer.hiderefs support did not quite work for smart-http transport. * jk/smart-http-hide-refs: upload-pack: do not check NULL return of lookup_unknown_object upload-pack: fix transfer.hiderefs over smart-http | 23 March 2015, 18:28:08 UTC |
a633651 | Junio C Hamano | 23 March 2015, 18:28:02 UTC | Merge branch 'jk/tag-h-column-is-a-listing-option' "git tag -h" used to show the "--column" and "--sort" options that are about listing in a wrong section. * jk/tag-h-column-is-a-listing-option: tag: fix some mis-organized options in "-h" listing | 23 March 2015, 18:28:02 UTC |
3a52578 | Junio C Hamano | 23 March 2015, 18:27:27 UTC | Git 2.3.4 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 March 2015, 18:27:27 UTC |
437ed4c | Junio C Hamano | 23 March 2015, 18:23:41 UTC | Merge branch 'rs/use-isxdigit' into maint Code cleanup. * rs/use-isxdigit: use isxdigit() for checking if a character is a hexadecimal digit | 23 March 2015, 18:23:41 UTC |
a393c6b | Junio C Hamano | 23 March 2015, 18:23:37 UTC | Merge branch 'rs/deflate-init-cleanup' into maint Code simplification. * rs/deflate-init-cleanup: zlib: initialize git_zstream in git_deflate_init{,_gzip,_raw} | 23 March 2015, 18:23:38 UTC |
a4f287e | Junio C Hamano | 23 March 2015, 18:23:35 UTC | Merge branch 'ak/git-done-help-cleanup' into maint Code simplification. * ak/git-done-help-cleanup: git: make was_alias and done_help non-static | 23 March 2015, 18:23:35 UTC |
7d6f6e3 | Junio C Hamano | 23 March 2015, 18:23:33 UTC | Merge branch 'sg/completion-remote' into maint Code simplification. * sg/completion-remote: completion: simplify __git_remotes() completion: add a test for __git_remotes() helper function | 23 March 2015, 18:23:33 UTC |
ffac625 | Junio C Hamano | 23 March 2015, 18:23:30 UTC | Merge branch 'mg/doc-status-color-slot' into maint Documentation fixes. * mg/doc-status-color-slot: config,completion: add color.status.unmerged | 23 March 2015, 18:23:31 UTC |
3f6f5c9 | Junio C Hamano | 23 March 2015, 18:23:28 UTC | Merge branch 'jc/decorate-leaky-separator-color' into maint "git log --decorate" did not reset colors correctly around the branch names. * jc/decorate-leaky-separator-color: log --decorate: do not leak "commit" color into the next item Documentation/config.txt: simplify boolean description in the syntax section Documentation/config.txt: describe 'color' value type in the "Values" section Documentation/config.txt: have a separate "Values" section Documentation/config.txt: describe the structure first and then meaning Documentation/config.txt: explain multi-valued variables once Documentation/config.txt: avoid unnecessary negation | 23 March 2015, 18:23:28 UTC |
c974184 | Junio C Hamano | 23 March 2015, 18:23:25 UTC | Merge branch 'kn/git-cd-to-empty' into maint "git -C '' subcmd" refused to work in the current directory, unlike "cd ''" which silently behaves as a no-op. * kn/git-cd-to-empty: git: treat "git -C '<path>'" as a no-op when <path> is empty | 23 March 2015, 18:23:25 UTC |
84a37fa | Junio C Hamano | 23 March 2015, 18:23:22 UTC | Merge branch 'km/imap-send-libcurl-options' into maint "git imap-send" learned to optionally talk with an IMAP server via libcURL; because there is no other option when Git is built with NO_OPENSSL option, use that codepath by default under such configuration. * km/imap-send-libcurl-options: imap-send: use cURL automatically when NO_OPENSSL defined | 23 March 2015, 18:23:23 UTC |
82b6e33 | Junio C Hamano | 23 March 2015, 18:23:19 UTC | Merge branch 'mg/verify-commit' into maint Workarounds for certain build of GPG that triggered false breakage in a test. * mg/verify-commit: t7510: do not fail when gpg warns about insecure memory | 23 March 2015, 18:23:20 UTC |
f63ed08 | Junio C Hamano | 23 March 2015, 18:23:17 UTC | Merge branch 'es/rebase-i-count-todo' into maint "git rebase -i" recently started to include the number of commits in the insn sheet to be processed, but on a platform that prepends leading whitespaces to "wc -l" output, the numbers are shown with extra whitespaces that aren't necessary. * es/rebase-i-count-todo: rebase-interactive: re-word "item count" comment rebase-interactive: suppress whitespace preceding item count | 23 March 2015, 18:23:17 UTC |
8c2ea51 | Junio C Hamano | 23 March 2015, 18:23:12 UTC | Merge branch 'tb/connect-ipv6-parse-fix' into maint We did not parse username followed by literal IPv6 address in SSH transport URLs, e.g. ssh://user@[2001:db8::1]:22/repo.git correctly. * tb/connect-ipv6-parse-fix: t5500: show user name and host in diag-url t5601: add more test cases for IPV6 connect.c: allow ssh://user@[2001:db8::1]/repo.git | 23 March 2015, 18:23:13 UTC |
915e44c | Stefan Beller | 23 March 2015, 17:57:11 UTC | read-cache: fix memleak `ce` is allocated in make_cache_entry and should be freed if it is not used any more. refresh_cache_entry as a wrapper around refresh_cache_ent will either return - the `ce` given as the parameter, when it was up-to-date; - a new updated cache entry which is allocated to new memory; or - a NULL when refreshing failed. In the latter two cases, the original cache-entry `ce` is not used and needs to be freed. The rule can be expressed as "if the return value from refresh is different from the original ce, ce is no longer used." Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 March 2015, 18:12:59 UTC |
067178e | Junio C Hamano | 23 March 2015, 17:58:00 UTC | add_to_index(): free unused cache-entry We allocate a cache-entry pretty early in the function and then decide either not to do anything when we are pretending to add, or add it and then get an error (another possibility is obviously to succeed). When pretending or failing to add, we forgot to free the cache-entry. Noticed during a discussion on Stefan's patch to change the coding style without fixing the issue ;-) Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 March 2015, 18:12:59 UTC |
5d0b9bf | Stefan Beller | 21 March 2015, 00:28:07 UTC | commit.c: fix a memory leak Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 March 2015, 18:12:58 UTC |
e280888 | Stefan Beller | 21 March 2015, 00:28:05 UTC | http-push: remove unneeded cleanup preq is NULL as the condition the line before dictates. And the cleanup function release_http_pack_request is not null pointer safe. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 March 2015, 18:12:58 UTC |
473091e | Stefan Beller | 21 March 2015, 00:28:04 UTC | merge-recursive: fix memleaks These string_list instances were allocated by get_renames() and get_unmerged for the sole use of this caller, and the function is responsible for freeing them, not just their contents. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 March 2015, 18:12:58 UTC |
d687839 | Stefan Beller | 21 March 2015, 00:28:03 UTC | merge-blobs.c: fix a memleak Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 March 2015, 18:12:58 UTC |
f0b1f1e | Stefan Beller | 21 March 2015, 00:28:02 UTC | builtin/apply.c: fix a memleak oldlines is allocated earlier in the function and also freed on the successful code path. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 March 2015, 18:12:58 UTC |
c29b396 | Jeff King | 23 March 2015, 03:54:05 UTC | run-command: forbid using run_command with piped output Because run_command both spawns and wait()s for the command before returning control to the caller, any reads from the pipes we open must necessarily happen after wait() returns. This can lead to deadlock, as the child process may block on writing to us while we are blocked waiting for it to exit. Worse, it only happens when the child fills the pipe buffer, which means that the problem may come and go depending on the platform and the size of the output produced by the child. Let's detect and flag this dangerous construct so that we can catch potential bugs early in the test suite rather than having them happen in the field. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 March 2015, 04:39:22 UTC |
c5eadca | Jeff King | 23 March 2015, 03:54:00 UTC | trailer: use capture_command When we read from a trailer.*.command sub-program, the current code uses run_command followed by a pipe read, which can result in deadlock (though in practice you would have to have a large trailer for this to be a problem). The current code also leaks the file descriptor for the pipe to the sub-command. Instead, let's use capture_command, which makes this simpler (and we can get rid of our custom helper). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 March 2015, 04:39:18 UTC |
1d4974c | Jeff King | 23 March 2015, 03:53:56 UTC | submodule: use capture_command In is_submodule_commit_present, we call run_command followed by a pipe read, which is prone to deadlock. It is unlikely to happen in this case, as rev-list should never produce more than a single line of output, but it does not hurt to avoid an anti-pattern (and using the helper simplifies the setup and cleanup). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 March 2015, 04:39:16 UTC |
5c950e9 | Jeff King | 23 March 2015, 03:53:52 UTC | wt-status: use capture_command When we spawn "git submodule status" to read its output, we use run_command() followed by strbuf_read() read from the pipe. This can deadlock if the subprocess output is larger than the system pipe buffer. Furthermore, if start_command() fails, we'll try to read from a bogus descriptor (probably "-1" or a descriptor we just closed, but it is a bad idea for us to make assumptions about how start_command implements its error handling). And if start_command succeeds, we leak the file descriptor for the pipe to the child. All of these can be solved by using the capture_command helper. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 March 2015, 04:39:14 UTC |
911ec99 | Jeff King | 23 March 2015, 03:53:43 UTC | run-command: introduce capture_command helper Something as simple as reading the stdout from a command turns out to be rather hard to do right. Doing: cmd.out = -1; run_command(&cmd); strbuf_read(&buf, cmd.out, 0); can result in deadlock if the child process produces a large amount of output. What happens is: 1. The parent spawns the child with its stdout connected to a pipe, of which the parent is the sole reader. 2. The parent calls wait(), blocking until the child exits. 3. The child writes to stdout. If it writes more data than the OS pipe buffer can hold, the write() call will block. This is a deadlock; the parent is waiting for the child to exit, and the child is waiting for the parent to call read(). So we might try instead: start_command(&cmd); strbuf_read(&buf, cmd.out, 0); finish_command(&cmd); But that is not quite right either. We are examining cmd.out and running finish_command whether start_command succeeded or not, which is wrong. Moreover, these snippets do not do any error handling. If our read() fails, we must make sure to still call finish_command (to reap the child process). And both snippets failed to close the cmd.out descriptor, which they must do (provided start_command succeeded). Let's introduce a run-command helper that can make this a bit simpler for callers to get right. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 23 March 2015, 04:38:31 UTC |
260d585 | SZEDER Gábor | 22 March 2015, 12:03:11 UTC | completion: use __gitcomp_nl() for completing refs We do that almost everywhere, because it's faster for large number of refs, see a31e62629 (completion: optimize refs completion, 2011-10-15). These were the last two places where we still used __gitcomp() for completing refs. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 March 2015, 23:41:12 UTC |
d56d966 | Jeff King | 22 March 2015, 10:00:32 UTC | wt_status: fix signedness mismatch in strbuf_read call We call strbuf_read(), and want to know whether we got any output. To do so, we assign the result to a size_t, and check whether it is non-zero. But strbuf_read returns a signed ssize_t. If it encounters an error, it will return -1, and we'll end up treating this the same as if we had gotten output. Instead, we can just check whether our buffer has anything in it (which is what we care about anyway, and is the same thing since we know the buffer was empty to begin with). Note that the "len" variable actually has two roles in this function. Now that we've eliminated the first, we can push the declaration closer to the point of use for the second one. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 March 2015, 22:55:31 UTC |