summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-11-03Merge branch 'rs/daemon-plug-child-leak'Libravatar Junio C Hamano4-6/+18
"git daemon" uses "run_command()" without "finish_command()", so it needs to release resources itself, which it forgot to do. * rs/daemon-plug-child-leak: daemon: plug memory leak run-command: factor out child_process_clear()
2015-11-03Merge branch 'mk/blame-first-parent'Libravatar Junio C Hamano2-14/+83
"git blame" learnt to take "--first-parent" and "--reverse" at the same time when it makes sense. * mk/blame-first-parent: blame: allow blame --reverse --first-parent when it makes sense blame: extract find_single_final blame: test to describe use of blame --reverse --first-parent
2015-11-03Merge branch 'rs/wt-status-detached-branch-fix'Libravatar Junio C Hamano2-35/+43
"git status --branch --short" accessed beyond the constant string "HEAD", which has been corrected. * rs/wt-status-detached-branch-fix: wt-status: use skip_prefix() to get rid of magic string length constants wt-status: don't skip a magical number of characters blindly wt-status: avoid building bogus branch name with detached HEAD wt-status: exit early using goto in wt_shortstatus_print_tracking() t7060: add test for status --branch on a detached HEAD
2015-11-03Merge branch 'rs/show-branch-argv-array'Libravatar Junio C Hamano1-16/+8
Code simplification. * rs/show-branch-argv-array: show-branch: use argv_array for default arguments
2015-11-03Merge branch 'js/git-gdb'Libravatar Junio C Hamano3-1/+20
Allow easier debugging of a single "git" invocation in our test scripts. * js/git-gdb: test: facilitate debugging Git executables in tests with gdb
2015-11-03Merge branch 'jk/initialization-fix-to-add-submodule-odb'Libravatar Junio C Hamano1-1/+1
We peek objects from submodule's object store by linking it to the list of alternate object databases, but the code to do so forgot to correctly initialize the list. * jk/initialization-fix-to-add-submodule-odb: add_submodule_odb: initialize alt_odb list earlier
2015-11-03Merge branch 'da/difftool'Libravatar Junio C Hamano2-3/+20
The code to prepare the working tree side of temporary directory for the "dir-diff" feature forgot that symbolic links need not be copied (or symlinked) to the temporary area, as the code already special cases and overwrites them. Besides, it was wrong to try computing the object name of the target of symbolic link, which may not even exist or may be a directory. * da/difftool: difftool: ignore symbolic links in use_wt_file
2015-11-03Merge branch 'jc/mailinfo-lib'Libravatar Junio C Hamano1-1/+1
Hotfix for a topic already in 'master'. * jc/mailinfo-lib: mailinfo: fix passing wrong address to git_mailinfo_config
2015-11-03Merge branch 'kn/for-each-branch'Libravatar Junio C Hamano2-2/+2
Using the timestamp based criteria in "git branch --sort" did not tiebreak branches that point at commits with the same timestamp (or the same commit), making the resulting output unstable. * kn/for-each-branch: ref-filter: fallback on alphabetical comparison
2015-11-02daemon: plug memory leakLibravatar René Scharfe1-0/+1
Call child_process_clear() when a child ends to release the memory allocated for its environment. This is necessary because unlike all other users of start_command() we don't call finish_command(), which would have taken care of that for us. This leak was introduced by f063d38b (daemon: use cld->env_array when re-spawning). Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-11-02run-command: factor out child_process_clear()Libravatar René Scharfe3-6/+17
Avoid duplication by moving the code to release allocated memory for arguments and environment to its own function, child_process_clear(). Export it to provide a counterpart to child_process_init(). Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-11-01mailinfo: fix passing wrong address to git_mailinfo_configLibravatar Nguyễn Thái Ngọc Duy1-1/+1
git_mailinfo_config() expects "struct mailinfo *". But in setup_mailinfo(), "mi" is already "struct mailinfo *". &mi would make it "struct mailinfo **" and git_mailinfo_config() would damage some other memory when it assigns some value to mi->use_scissors. This is caught by t4150.20. git_mailinfo_config() breaks mi->name.alloc and makes strbuf_release() in clear_mailinfo() attempt to free strbuf_slopbuf. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-11-01show-branch: use argv_array for default argumentsLibravatar René Scharfe1-16/+8
Use argv_array instead of open-coding it. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-11-01wt-status: use skip_prefix() to get rid of magic string length constantsLibravatar René Scharfe1-21/+15
Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-11-01wt-status: don't skip a magical number of characters blindlyLibravatar René Scharfe1-1/+1
Use the variable branch_name, which already has "refs/heads/" removed, instead of blindly advancing in the ->branch string by 11 bytes. This is safer and less magical. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-11-01wt-status: avoid building bogus branch name with detached HEADLibravatar René Scharfe2-7/+10
If we're on a detached HEAD then wt_shortstatus_print_tracking() takes the string "HEAD (no branch)", translates it, skips the first eleven characters and passes the result to branch_get(), which returns a bogus result and accesses memory out of bounds in order to produce it. Somehow stat_tracking_info(), which is passed that result, does the right thing anyway, i.e. it finds that there is no base. Avoid the bogus results and memory accesses by checking for HEAD first and exiting early in that case. This fixes t7060 with --valgrind. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-11-01wt-status: exit early using goto in wt_shortstatus_print_tracking()Libravatar René Scharfe1-8/+5
Deduplicate printing the line terminator by jumping to the end of the function. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-11-01t7060: add test for status --branch on a detached HEADLibravatar René Scharfe1-0/+14
This test fails when run under Valgrind because branch_get() gets passed a bogus branch name pointer: ==62831== Invalid read of size 1 ==62831== at 0x4F76AE: branch_get (remote.c:1650) ==62831== by 0x53499E: wt_shortstatus_print_tracking (wt-status.c:1654) ==62831== by 0x53499E: wt_shortstatus_print (wt-status.c:1706) ==62831== by 0x428D29: cmd_status (commit.c:1384) ==62831== by 0x405D6D: run_builtin (git.c:350) ==62831== by 0x405D6D: handle_builtin (git.c:536) ==62831== by 0x404F10: run_argv (git.c:582) ==62831== by 0x404F10: main (git.c:690) ==62831== Address 0x5e89b0b is 6 bytes after a block of size 5 alloc'd ==62831== at 0x4C28C4F: malloc (vg_replace_malloc.c:299) ==62831== by 0x59579E9: strdup (strdup.c:42) ==62831== by 0x52E108: xstrdup (wrapper.c:43) ==62831== by 0x5322A6: wt_status_prepare (wt-status.c:130) ==62831== by 0x4276E0: status_init_config (commit.c:184) ==62831== by 0x428BB8: cmd_status (commit.c:1350) ==62831== by 0x405D6D: run_builtin (git.c:350) ==62831== by 0x405D6D: handle_builtin (git.c:536) ==62831== by 0x404F10: run_argv (git.c:582) ==62831== by 0x404F10: main (git.c:690) Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-30blame: allow blame --reverse --first-parent when it makes senseLibravatar Max Kirillov2-3/+31
Allow combining --reverse and --first-parent if initial commit of specified range is at the first-parent chain starting from the final commit. Disable the prepare_revision_walk()'s builtin children collection, instead picking only the ones which are along the first parent chain. Signed-off-by: Max Kirillov <max@max630.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-30blame: extract find_single_finalLibravatar Max Kirillov1-12/+17
Signed-off-by: Max Kirillov <max@max630.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-30blame: test to describe use of blame --reverse --first-parentLibravatar Max Kirillov1-0/+36
Reverse blame can be used to locate removal of lines which does not change adjacent lines. Such edits do not appear in non-reverse blame, because the adjacent lines last changed commit is older history, before the edit. For a big and active project which uses topic branches, or analogous feature, for example pull-requests, the history can contain many concurrent branches, and even after an edit merged into the target branch, there are still many (sometimes several tens or even hundreds) topic branch which do not contain it: a0--a1-----*a2-*a3-a4...-*a100 |\ / / / | b0-B1..bN / / |\ / / | c0.. ..cN / \ / z0.. ..zN Here, the '*'s mark the first parent in merge, and uppercase B1 - the commit where the line being blamed for was removed. Since commits cN-zN do not contain B1, they still have the line removed in B1, and reverse blame can report that the last commit for the line was zN (meaning that it was removed in a100). In fact it really does return some very late commit, and this makes it unusable for finding the B1 commit. The search could be done by blame --reverse --first-parent. For range a0..a100 it would return a1, and then only one additional blame along the a0..bN will return the desired commit b0. But combining --reverse and --first-parent was forbidden in 95a4fb0eac, because incorrectly specified range could produce unexpected and meaningless result. Add test which describes the expected behavior of `blame --reverse --first-parent` in the case described above. Signed-off-by: Max Kirillov <max@max630.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-30test: facilitate debugging Git executables in tests with gdbLibravatar Johannes Schindelin3-1/+20
When prefixing a Git call in the test suite with 'debug ', it will now be run with GDB, allowing the developer to debug test failures more conveniently. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-30ref-filter: fallback on alphabetical comparisonLibravatar Karthik Nayak2-2/+2
In ref-filter.c the comparison of refs while sorting is handled by cmp_ref_sorting() function. When sorting as per numerical values (e.g. --sort=objectsize) there is no fallback comparison when both refs hold the same value. This can cause unexpected results (i.e. the order of listing refs with equal values cannot be pre-determined) as pointed out by Johannes Sixt ($gmane/280117). Hence, fallback to alphabetical comparison based on the refname whenever the other criterion is equal. A test in t3203 was expecting that branch-two sorts before HEAD, which happened to be how qsort(3) on Linux sorted the array, but (1) that outcome was not even guaranteed, and (2) once we start breaking ties with the refname, "HEAD" should sort before "branch-two" so the original expectation was inconsistent with the criterion we now use. Update it to match the new world order, which we can now depend on being stable. Helped-by: Junio C Hamano <gitster@pobox.com> Reported-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Karthik Nayak <Karthik.188@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-30Ninth batch for 2.7Libravatar Junio C Hamano1-2/+31
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-30Merge branch 'jk/merge-file-exit-code'Libravatar Junio C Hamano3-1/+38
"git merge-file" tried to signal how many conflicts it found, which obviously would not work well when there are too many of them. * jk/merge-file-exit-code: merge-file: clamp exit code to maximum 127
2015-10-30Merge branch 'gr/rebase-i-drop-warn'Libravatar Junio C Hamano2-0/+24
Recent update to "rebase -i" that tries to sanity check the edited insn sheet before it uses it has become too picky on Windows where CRLF left by the editor is turned into a trailing CR on the line read via the "read" built-in command. * gr/rebase-i-drop-warn: rebase-i: work around Windows CRLF line endings t3404: "rebase -i" gets broken when insn sheet uses CR/LF line endings
2015-10-30Merge branch 'xf/user-manual-ff'Libravatar Junio C Hamano1-5/+5
* xf/user-manual-ff: user-manual: fix the description of fast-forward
2015-10-30Merge branch 'rs/pop-commit'Libravatar Junio C Hamano10-92/+31
Code simplification. * rs/pop-commit: use pop_commit() for consuming the first entry of a struct commit_list
2015-10-30Merge branch 'mk/blame-error-message'Libravatar Junio C Hamano1-1/+1
The error message from "git blame --contents --reverse" incorrectly talked about "--contents --children". * mk/blame-error-message: blame: fix option name in error message
2015-10-30Merge branch 'js/misc-fixes'Libravatar Junio C Hamano5-6/+12
Various compilation fixes and squelching of warnings. * js/misc-fixes: Correct fscanf formatting string for I64u values Silence GCC's "cast of pointer to integer of a different size" warning Squelch warning about an integer overflow
2015-10-30Merge branch 'js/imap-send-curl-compilation-fix'Libravatar Junio C Hamano1-0/+4
"git imap-send" did not compile well with older version of cURL library. * js/imap-send-curl-compilation-fix: imap-send: only use CURLOPT_LOGIN_OPTIONS if it is actually available
2015-10-30Merge branch 'jk/delete-modechange-conflict'Libravatar Junio C Hamano5-89/+144
Merging a branch that removes a path and another that changes the mode bits on the same path should have conflicted at the path, but it didn't and silently favoured the removal. * jk/delete-modechange-conflict: merge: detect delete/modechange conflict t6031: generalize for recursive and resolve strategies t6031: move triple-rename test to t3030
2015-10-30Merge branch 'jc/add-u-A-default-to-top'Libravatar Junio C Hamano3-7/+4
"git --literal-pathspecs add -u/-A" without any command line argument misbehaved ever since Git 2.0. * jc/add-u-A-default-to-top: add: simplify -u/-A without pathspec
2015-10-30Merge branch 'ar/clone-dissociate'Libravatar Junio C Hamano3-10/+26
"git clone --dissociate" used to require that "--reference" was used at the same time, but you can create a new repository that borrows objects from another without using "--reference", namely with "clone --local" from a repository that borrows objects from other repositories. * ar/clone-dissociate: clone: allow "--dissociate" without reference
2015-10-30Merge git://ozlabs.org/~paulus/gitkLibravatar Junio C Hamano13-531/+450
* git://ozlabs.org/~paulus/gitk: gitk: Update Russian translation gitk: Add accelerator to German locale gitk: Add accelerators to Japanese locale gitk: Update msgid's for menu items with accelerator gitk: l10n: Update Catalan translation gitk: Add missing accelerators Updated Vietnamese translation
2015-10-30Merge https://github.com/vnwildman/gitkLibravatar Paul Mackerras1-22/+23
This brings in an update to the Vietnamese translation. Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-10-30gitk: Update Russian translationLibravatar Dimitriy Ryazantcev1-239/+160
Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-10-30gitk: Add accelerator to German localeLibravatar Takashi Iwai1-18/+18
Assigned either to the first letter or some unique letter. At least there are no conflicts, as far as I see... Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-10-30gitk: Add accelerators to Japanese localeLibravatar Takashi Iwai1-17/+17
Just follow the English accelerator keys. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-10-30gitk: Update msgid's for menu items with acceleratorLibravatar Takashi Iwai12-205/+205
The commit d99b4b0de27a ("gitk: Accelerators for the main menu") modified the menu item strings with the accelerator, but the translations didn't follow, thus the menus are shown without translations. This patch systematically update the msgid keys just to follow this change. The contents aren't changed, so the accelerator won't work in these locales for now. Each locale translator needs to add proper acceleration keys appropriately. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-10-30gitk: l10n: Update Catalan translationLibravatar Alex Henrie1-28/+25
The gitk included in git 2.6.0 crashes if run from a Catalan locale. I'm hoping that a translation update will fix this. Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-10-30gitk: Add missing acceleratorsLibravatar Beat Bolli1-2/+2
In d99b4b0de27a ("gitk: Accelerators for the main menu", 2015-09-09), accelerators were added to allow efficient keyboard navigation. One instance of the strings "Edit view..." and "Delete view" were left without the ampersand. Add the missing ampersand characters to unbreak our international users. Signed-off-by: Beat Bolli <dev+git@drbeat.li> Signed-off-by: Paul Mackerras <paulus@samba.org>
2015-10-29Eighth batch for 2.7Libravatar Junio C Hamano1-1/+24
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-29Merge branch 'jc/am-mailinfo-direct'Libravatar Junio C Hamano1-19/+23
"git am" used to spawn "git mailinfo" via run_command() API once per each patch, but learned to make a direct call to mailinfo() instead. * jc/am-mailinfo-direct: am: make direct call to mailinfo
2015-10-29Merge branch 'jc/mailinfo-lib'Libravatar Junio C Hamano4-1035/+1099
The implementation of "git mailinfo" was refactored so that a mailinfo() function can be directly called from inside a process. * jc/mailinfo-lib: (34 commits) mailinfo: remove calls to exit() and die() deep in the callchain mailinfo: handle charset conversion errors in the caller mailinfo: libify mailinfo: keep the parsed log message in a strbuf mailinfo: handle_commit_msg() shouldn't be called after finding patchbreak mailinfo: move content/content_top to struct mailinfo mailinfo: move [ps]_hdr_data to struct mailinfo mailinfo: move cmitmsg and patchfile to struct mailinfo mailinfo: move charset to struct mailinfo mailinfo: move transfer_encoding to struct mailinfo mailinfo: move check for metainfo_charset to convert_to_utf8() mailinfo: move metainfo_charset to struct mailinfo mailinfo: move use_scissors and use_inbody_headers to struct mailinfo mailinfo: move add_message_id and message_id to struct mailinfo mailinfo: move patch_lines to struct mailinfo mailinfo: move filter/header stage to struct mailinfo mailinfo: move global "FILE *fin, *fout" to struct mailinfo mailinfo: move keep_subject & keep_non_patch_bracket to struct mailinfo mailinfo: introduce "struct mailinfo" to hold globals mailinfo: move global "line" into mailinfo() function ...
2015-10-29Merge branch 'rp/link-curl-before-ssl'Libravatar Junio C Hamano2-6/+34
The linkage order of libraries was wrong in places around libcurl. * rp/link-curl-before-ssl: configure.ac: detect ssl need with libcurl Makefile: make curl-config path configurable Makefile: link libcurl before zlib
2015-10-29Merge branch 'dt/name-hash-dir-entry-fix'Libravatar Junio C Hamano4-60/+35
The name-hash subsystem that is used to cope with case insensitive filesystems keeps track of directories and their on-filesystem cases for all the paths in the index by holding a pointer to a randomly chosen cache entry that is inside the directory (for its ce->ce_name component). This pointer was not updated even when the cache entry was removed from the index, leading to use after free. This was fixed by recording the path for each directory instead of borrowing cache entries and restructuring the API somewhat. * dt/name-hash-dir-entry-fix: name-hash: don't reuse cache_entry in dir_entry
2015-10-29Merge branch 'tk/sigchain-unnecessary-post-tempfile'Libravatar Junio C Hamano4-4/+0
Remove no-longer used #include. * tk/sigchain-unnecessary-post-tempfile: shallow: remove unused #include "sigchain.h" read-cache: remove unused #include "sigchain.h" diff: remove unused #include "sigchain.h" credential-cache--daemon: remove unused #include "sigchain.h"
2015-10-29Merge branch 'jk/war-on-sprintf'Libravatar Junio C Hamano2-1/+2
* jk/war-on-sprintf: compat/mingw.c: remove printf format warning read_branches_file: plug a FILE* leak
2015-10-29Merge branch 'jc/em-dash-in-doc'Libravatar Junio C Hamano6-6/+6
AsciiDoc markup fixes. * jc/em-dash-in-doc: Documentation: AsciiDoc spells em-dash as double-dashes, not triple