summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-05-08p3400: add perf tests for rebasing many changesLibravatar Christian Couder1-1/+21
Rebasing onto many changes is interesting, but it's also interesting to see what happens when rebasing many changes. And while at it, let's also look at the impact of using a split index. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-05-08split-index: add and use unshare_split_index()Libravatar Nguyễn Thái Ngọc Duy3-21/+47
When split-index is being used, we have two cache_entry arrays in index_state->cache[] and index_state->split_index->base->cache[]. index_state->cache[] may share the same entries with base->cache[] so we can quickly determine what entries are shared. This makes memory management tricky, we can't free base->cache[] until we know index_state->cache[] does not point to any of those entries. unshare_split_index() is added for this purpose, to find shared entries and either duplicate them in index_state->cache[], or discard them. Either way it should be safe to free base->cache[] after unshare_split_index(). Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-05-04Git 2.13-rc2Libravatar Junio C Hamano2-1/+4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-05-04Merge branch 'rg/a-the-typo'Libravatar Junio C Hamano4-5/+5
Typofix. * rg/a-the-typo: fix minor typos
2017-05-04Merge branch 'sr/hooks-cwd-doc'Libravatar Junio C Hamano1-2/+4
* sr/hooks-cwd-doc: githooks.txt: clarify push hooks are always executed in $GIT_DIR
2017-05-04Merge branch 'rg/doc-submittingpatches-wordfix'Libravatar Junio C Hamano1-6/+6
* rg/doc-submittingpatches-wordfix: doc: update SubmittingPatches
2017-05-04Merge branch 'rg/doc-pull-typofix'Libravatar Junio C Hamano1-2/+3
* rg/doc-pull-typofix: doc: git-pull.txt use US spelling, fix minor typo
2017-05-04Merge branch 'ja/i18n-cleanup'Libravatar Junio C Hamano2-7/+7
* ja/i18n-cleanup: i18n: read-cache: typofix i18n: remove i18n from tag reflog message
2017-04-30Merging a handful of topics before -rc2Libravatar Junio C Hamano1-0/+10
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-05-01Merge branch 'sh/rebase-i-reread-todo-after-exec'Libravatar Junio C Hamano2-0/+36
"git rebase -i" failed to re-read the todo list file when the command specified with the `exec` instruction updated it. * sh/rebase-i-reread-todo-after-exec: rebase -i: reread the todo list if `exec` touched it
2017-05-01Merge branch 'ls/travis-stricter-linux32-builds'Libravatar Junio C Hamano1-0/+1
32-bit Linux build on Travis CI uses stricter compilation options. * ls/travis-stricter-linux32-builds: travis-ci: set DEVELOPER knob for Linux32 build
2017-05-01Merge branch 'ls/travis-win-fix-status'Libravatar Junio C Hamano1-1/+1
Relaying status from Windows build by Travis CI was done with an unsafe invocation of printf. * ls/travis-win-fix-status: travis-ci: printf $STATUS as string
2017-05-01Merge branch 'jk/submodule-init-segv-fix'Libravatar Junio C Hamano2-3/+11
Fix a segv in 'submodule init' when url is not given for a submodule. * jk/submodule-init-segv-fix: submodule_init: die cleanly on submodules without url defined
2017-05-01Merge branch 'jk/prio-queue-avoid-swap-with-self'Libravatar Junio C Hamano1-1/+1
Code clean-up. * jk/prio-queue-avoid-swap-with-self: prio_queue_reverse: don't swap elements with themselves
2017-05-01Merge branch 'ab/align-perf-descriptions'Libravatar Junio C Hamano2-0/+5
Output from perf tests have been updated to align their titles. * ab/align-perf-descriptions: t/perf: correctly align non-ASCII descriptions in output
2017-05-01Merge branch 'jk/complete-checkout-sans-dwim-remote'Libravatar Junio C Hamano1-1/+10
Completion for "git checkout <branch>" that auto-creates the branch out of a remote tracking branch can now be disabled, as this completion often gets in the way when completing to checkout an existing local branch that happens to share the same prefix with bunch of remote tracking branches. * jk/complete-checkout-sans-dwim-remote: completion: optionally disable checkout DWIM
2017-05-01i18n: read-cache: typofixLibravatar Peter Krefting1-1/+1
Signed-off-by: Peter Krefting <peter@softwolves.pp.se> Signed-off-by: Jean-Noel Avila <jn.avila@free.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-05-01i18n: remove i18n from tag reflog messageLibravatar Jean-Noel Avila1-6/+6
The building of the reflog message is using strbuf, which is not friendly with internationalization frameworks. No other reflog messages are translated right now and switching all the messages to i18n would require a major rework of the way the messages are built. Signed-off-by: Jean-Noel Avila <jn.avila@free.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-05-01doc: git-pull.txt use US spelling, fix minor typoLibravatar René Genz1-2/+3
Signed-off-by: René Genz <liebundartig@freenet.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-05-01fix minor typosLibravatar René Genz4-5/+5
Helped-by: Stefan Beller <sbeller@google.com> Signed-off-by: René Genz <liebundartig@freenet.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-05-01githooks.txt: clarify push hooks are always executed in $GIT_DIRLibravatar Simon Ruderich1-2/+4
Listing the specific hooks might feel verbose but without it the reader is left to wonder which hooks are triggered during the push. Something which is not immediately obvious when only trying to find out where the hook is executed. Signed-off-by: Simon Ruderich <simon@ruderich.org> Reviewed-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-05-01doc: update SubmittingPatchesLibravatar René Genz1-6/+6
-use US English spelling -minor wording change for better readability Helped-by: Stefan Beller <sbeller@google.com> Signed-off-by: René Genz <liebundartig@freenet.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-04-27rebase -i: reread the todo list if `exec` touched itLibravatar Stephen Hicks2-0/+36
In the scripted version of the interactive rebase, there was no internal representation of the todo list; it was re-read before every command. That allowed the hack that an `exec` command could append (or even completely rewrite) the todo list. This hack was broken by the partial conversion of the interactive rebase to C, and this patch reinstates it. We also add a small test to verify that this fix does not regress in the future. Signed-off-by: Stephen Hicks <sdh@google.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-04-27travis-ci: set DEVELOPER knob for Linux32 buildLibravatar Lars Schneider1-0/+1
The Linux32 build was not build with our strict compiler settings (e.g. warnings as errors). Fix this by passing the DEVELOPER environment variable to the docker container. Signed-off-by: Lars Schneider <larsxschneider@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-04-26travis-ci: printf $STATUS as stringLibravatar Lars Schneider1-1/+1
If the $STATUS variable contains a "%" character then printf will interpret that as invalid format string. Fix this by formatting $STATUS as string. Signed-off-by: Lars Schneider <larsxschneider@gmail.com> Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-04-26Git 2.13-rc1Libravatar Junio C Hamano2-1/+40
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-04-26Merge branch 'mh/separate-ref-cache'Libravatar Junio C Hamano7-1089/+1066
The internals of the refs API around the cached refs has been streamlined. * mh/separate-ref-cache: do_for_each_entry_in_dir(): delete function files_pack_refs(): use reference iteration commit_packed_refs(): use reference iteration cache_ref_iterator_begin(): make function smarter get_loose_ref_cache(): new function get_loose_ref_dir(): function renamed from get_loose_refs() do_for_each_entry_in_dir(): eliminate `offset` argument refs: handle "refs/bisect/" in `loose_fill_ref_dir()` ref-cache: use a callback function to fill the cache refs: record the ref_store in ref_cache, not ref_dir ref-cache: introduce a new type, ref_cache refs: split `ref_cache` code into separate files ref-cache: rename `remove_entry()` to `remove_entry_from_dir()` ref-cache: rename `find_ref()` to `find_ref_entry()` ref-cache: rename `add_ref()` to `add_ref_entry()` refs_verify_refname_available(): use function in more places refs_verify_refname_available(): implement once for all backends refs_ref_iterator_begin(): new function refs_read_raw_ref(): new function get_ref_dir(): don't call read_loose_refs() for "refs/bisect"
2017-04-26Merge branch 'nd/worktree-add-lock'Libravatar Junio C Hamano3-5/+23
Allow to lock a worktree immediately after it's created. This helps prevent a race between "git worktree add; git worktree lock" and "git worktree prune". * nd/worktree-add-lock: worktree add: add --lock option
2017-04-26Merge branch 'jk/update-links-in-docs'Libravatar Junio C Hamano6-14/+14
Many stale HTTP(s) links have been updated in our documentation. * jk/update-links-in-docs: docs/bisect-lk2009: update java code conventions link docs/bisect-lk2009: update nist report link docs/archimport: quote sourcecontrol.net reference gitcore-tutorial: update broken link doc: replace or.cz gitwiki link with git.wiki.kernel.org doc: use https links to avoid http redirect
2017-04-26Merge branch 'sf/putty-w-args'Libravatar Junio C Hamano1-1/+3
Plug a memleak. * sf/putty-w-args: connect.c: fix leak in handle_ssh_variant
2017-04-26Merge branch 'ab/completion-push-delete-ref'Libravatar Junio C Hamano2-0/+35
The completion script (in contrib/) learned to complete "git push --delete b<TAB>" to complete branch name to be deleted. * ab/completion-push-delete-ref: completion: expand "push --delete <remote> <ref>" for refs on that <remote>
2017-04-26Merge branch 'cc/split-index-config'Libravatar Junio C Hamano1-1/+2
The split-index code configuration code used an unsafe git_path() function without copying its result out. * cc/split-index-config: read-cache: avoid using git_path() in freshen_shared_index()
2017-04-26Merge branch 'jk/war-on-git-path'Libravatar Junio C Hamano10-30/+28
While handy, "git_path()" is a dangerous function to use as a callsite that uses it safely one day can be broken by changes to other code that calls it. Reduction of its use continues. * jk/war-on-git-path: am: drop "dir" parameter from am_state_init replace strbuf_addstr(git_path()) with git_path_buf() replace xstrdup(git_path(...)) with git_pathdup(...) use git_path_* helper functions branch: add edit_description() helper bisect: add git_path_bisect_terms helper
2017-04-26Merge branch 'jh/add-index-entry-optim'Libravatar Junio C Hamano10-2/+446
"git checkout" that handles a lot of paths has been optimized by reducing the number of unnecessary checks of paths in the has_dir_name() function. * jh/add-index-entry-optim: read-cache: speed up has_dir_name (part 2) read-cache: speed up has_dir_name (part 1) read-cache: speed up add_index_entry during checkout p0006-read-tree-checkout: perf test to time read-tree read-cache: add strcmp_offset function
2017-04-26Merge branch 'ss/submodule-shallow-doc'Libravatar Junio C Hamano1-2/+2
Doc update. * ss/submodule-shallow-doc: gitmodules: clarify what history depth a shallow clone has
2017-04-26Merge branch 'ss/gitmodules-ignore-doc'Libravatar Junio C Hamano1-11/+20
Doc update. * ss/gitmodules-ignore-doc: gitmodules: clarify the ignore option values
2017-04-26Merge branch 'nd/conditional-config-in-early-config'Libravatar Junio C Hamano5-30/+90
The recently introduced conditional inclusion of configuration did not work well when early-config mechanism was involved. * nd/conditional-config-in-early-config: config: correct file reading order in read_early_config() config: handle conditional include when $GIT_DIR is not set up config: prepare to pass more info in git_config_with_options()
2017-04-26Merge branch 'ab/push-cas-doc-n-test'Libravatar Junio C Hamano2-0/+70
Doc update. * ab/push-cas-doc-n-test: push: document & test --force-with-lease with multiple remotes
2017-04-26Merge branch 'ls/travis-coccicheck'Libravatar Junio C Hamano1-0/+12
Travis CI learns to run coccicheck. * ls/travis-coccicheck: travis-ci: add static analysis build job to run coccicheck
2017-04-26Merge branch 'ps/pathspec-empty-prefix-origin'Libravatar Junio C Hamano2-1/+23
A recent update broke "git add -p ../foo" from a subdirectory. * ps/pathspec-empty-prefix-origin: pathspec: honor `PATHSPEC_PREFIX_ORIGIN` with empty prefix
2017-04-26Merge branch 'pc/t2027-git-to-pipe-cleanup'Libravatar Junio C Hamano1-14/+21
Having a git command on the upstream side of a pipe in a test script will hide the exit status from the command, which may cause us to fail to notice a breakage; rewrite tests in a script to avoid this issue. * pc/t2027-git-to-pipe-cleanup: t2027: avoid using pipes
2017-04-26Merge branch 'gb/rebase-signoff'Libravatar Junio C Hamano4-22/+71
"git rebase" learns "--signoff" option. * gb/rebase-signoff: rebase: pass --[no-]signoff option to git am builtin/am: fold am_signoff() into am_append_signoff() builtin/am: honor --signoff also when --rebasing
2017-04-24prio_queue_reverse: don't swap elements with themselvesLibravatar Jeff King1-1/+1
Our array-reverse algorithm does the usual "walk from both ends, swapping elements". We can quit when the two indices are equal, since: 1. Swapping an element with itself is a noop. 2. If i and j are equal, then in the next iteration i is guaranteed to be bigge than j, and we will exit the loop. So exiting the loop on equality is slightly more efficient. And more importantly, the new SWAP() macro does not expect to handle noop swaps; it will call memcpy() with the same src and dst pointers in this case. It's unclear whether that causes a problem on any platforms by violating the "overlapping memory" constraint of memcpy, but it does cause valgrind to complain. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-04-24submodule_init: die cleanly on submodules without url definedLibravatar Jeff King2-3/+11
When we init a submodule, we try to die when it has no URL defined: url = xstrdup(sub->url); if (!url) die(...); But that's clearly nonsense. xstrdup() will never return NULL, and if sub->url is NULL, we'll segfault. These two bits of code need to be flipped, so we check sub->url before looking at it. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-04-23Getting ready for -rc1Libravatar Junio C Hamano1-3/+51
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-04-23Merge branch 'dt/xgethostname-nul-termination'Libravatar Junio C Hamano7-14/+33
gethostname(2) may not NUL terminate the buffer if hostname does not fit; unfortunately there is no easy way to see if our buffer was too small, but at least this will make sure we will not end up using garbage past the end of the buffer. * dt/xgethostname-nul-termination: xgethostname: handle long hostnames use HOST_NAME_MAX to size buffers for gethostname(2)
2017-04-23Merge branch 'jk/ls-files-recurse-submodules-fix'Libravatar Junio C Hamano2-1/+20
"ls-files --recurse-submodules" did not quite work well in a project with nested submodules. * jk/ls-files-recurse-submodules-fix: ls-files: fix path used when recursing into submodules ls-files: fix recurse-submodules with nested submodules
2017-04-23Merge branch 'rs/misc-cppcheck-fixes'Libravatar Junio C Hamano3-13/+23
Various small fixes. * rs/misc-cppcheck-fixes: server-info: avoid calling fclose(3) twice in update_info_file() files_for_each_reflog_ent_reverse(): close stream and free strbuf on error am: close stream on error, but not stdin
2017-04-23Merge branch 'jk/snprintf-cleanups'Libravatar Junio C Hamano1-0/+1
Hotfix for a topic that is already in 'master'. * jk/snprintf-cleanups: replace: plug a memory leak
2017-04-23Merge branch 'xy/format-patch-base'Libravatar Junio C Hamano1-1/+1
Doc cleanup. * xy/format-patch-base: doc: trivial typo in git-format-patch.txt