summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-07-01check_everything_connected: assume alternate ref tips are validLibravatar Jeff King5-0/+125
When we receive a remote ref update to sha1 "X", we want to check that we have all of the objects needed by "X". We can assume that our repository is not currently corrupted, and therefore if we have a ref pointing at "Y", we have all of its objects. So we can stop our traversal from "X" as soon as we hit "Y". If we make the same non-corruption assumption about any repositories we use to store alternates, then we can also use their ref tips to shorten the traversal. This is especially useful when cloning with "--reference", as we otherwise do not have any local refs to check against, and have to traverse the whole history, even though the other side may have sent us few or no objects. Here are results for the included perf test (which shows off more or less the maximal savings, getting one new commit and sharing the whole history): Test HEAD^ HEAD -------------------------------------------------------------------- [on git.git] 5600.3: clone --reference 2.94(2.86+0.08) 0.09(0.08+0.01) -96.9% [on linux.git] 5600.3: clone --reference 45.74(45.34+0.41) 0.36(0.30+0.08) -99.2% Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-07-01object-store.h: move for_each_alternate_ref() from transport.hLibravatar Jeff King5-100/+99
There's nothing inherently transport-related about enumerating the alternate ref tips. The code has lived in transport.[ch] because the only use so far had been advertising available tips during transport. But it could be used for more, and a future patch will teach rev-list to access these refs. Let's move it alongside the other alt-odb code, declaring it in object-store.h with the implementation in sha1-file.c. This lets us drop the inclusion of transport.h from receive-pack, which perhaps shows how it was misplaced (though receive-pack is about transporting objects, transport.h is mostly about the client side). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-06-07Git 2.22Libravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-06-07Merge tag 'l10n-2.22.0-rnd3' of git://github.com/git-l10n/git-poLibravatar Junio C Hamano11-33731/+43398
l10n-2.22.0-rnd3 * tag 'l10n-2.22.0-rnd3' of git://github.com/git-l10n/git-po: (25 commits) l10n: fr.po: Review French translation l10n: de.po: Update German translation l10n: de.po: improve description of 'git reset --quiet' l10n: TEAMS: Change German translation team leader l10n: bg.po: Updated Bulgarian translation (4581t) l10n: zh_CN: Revision for git v2.22.0 l10n l10n: zh_CN: for git v2.22.0 l10n round 1~3 l10n: es: 2.22.0 round 3 l10n: it.po: Updated Italian translation l10n: fr v2.22.0 rnd 3 l10n: vi.po(4581t): Updated Vietnamese translation for v2.22.0 round 3 l10n: git.pot: v2.22.0 round 3 (3 new, 2 removed) l10n: es: 2.22.0 round 2 l10n: bg.po: Updated Bulgarian translation (4580t) l10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2 l10n: fr.po v2.22.0 round 2 l10n: git.pot: v2.22.0 round 2 (6 new, 3 removed) l10n: bg.po: Updated Bulgarian translation (4577t) l10n: es: 2.22.0 round 1 l10n: vi.po(4577t): Updated Vietnamese translation for v2.22.0 round 1 ...
2019-06-07Merge branch 'fr_review' of git://github.com/jnavila/gitLibravatar Jiang Xin1-15/+15
* 'fr_review' of git://github.com/jnavila/git: l10n: fr.po: Review French translation
2019-06-07Merge branch 'master' of git://github.com/alshopov/git-poLibravatar Jiang Xin1-7/+11
* 'master' of git://github.com/alshopov/git-po: l10n: bg.po: Updated Bulgarian translation (4581t)
2019-06-07l10n: fr.po: Review French translationLibravatar Cédric Malard1-15/+15
Signed-off-by: Cédric Malard <c.malard-git@valdun.net> Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
2019-06-06Merge branch 'en/merge-directory-renames-fix'Libravatar Junio C Hamano2-0/+117
Recent code restructuring of merge-recursive engine introduced a regression dealing with rename/add conflict. * en/merge-directory-renames-fix: merge-recursive: restore accidentally dropped setting of path
2019-06-06l10n: de.po: Update German translationLibravatar Matthias Rüster1-3074/+4139
Reviewed-by: Ralf Thielow <ralf.thielow@gmail.com> Signed-off-by: Matthias Rüster <matthias.ruester@gmail.com>
2019-06-06l10n: de.po: improve description of 'git reset --quiet'Libravatar Ralf Thielow1-1/+1
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
2019-06-05l10n: TEAMS: Change German translation team leaderLibravatar Matthias Rüster1-3/+3
Acked-by: Ralf Thielow <ralf.thielow@gmail.com> Signed-off-by: Matthias Rüster <matthias.ruester@gmail.com>
2019-06-05merge-recursive: restore accidentally dropped setting of pathLibravatar Elijah Newren2-0/+117
In commit 8daec1df03de ("merge-recursive: switch from (oid,mode) pairs to a diff_filespec", 2019-04-05), we actually switched from (oid,mode,path) triplets to a diff_filespec -- but most callsites in the patch only needed to worry about oid and mode so the commit message focused on that. The oversight in the commit message apparently spilled over to the code as well; one of the dozen or so callsites accidentally dropped the setting of the path in the conversion. Restore the path setting in that location. Also, this pointed out that our testsuite was lacking a good rename/add test, at least one that involved the need for merge content with the rename. Add such a test, and since rename/add vs. add/rename could possibly be important, redo the merge the opposite direction to make sure we don't have issues with the direction of the merge. These testcases failed before restoring the setting of path, but with the paths appropriately set the testcases both pass. Reported-by: Ben Humphreys <behumphreys@atlassian.com> Based-on-patch-by: SZEDER Gábor <szeder.dev@gmail.com> Tested-by: Ben Humphreys <behumphreys@atlassian.com> Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-06-05l10n: bg.po: Updated Bulgarian translation (4581t)Libravatar Alexander Shopov1-7/+11
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
2019-06-05l10n: zh_CN: Revision for git v2.22.0 l10nLibravatar Fangyi Zhou2-54/+54
Revise 51 translations, improving consistency for some phrased. Update email address for Fangyi Zhou Signed-off-by: Fangyi Zhou <me@fangyi.io> Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2019-06-05l10n: zh_CN: for git v2.22.0 l10n round 1~3Libravatar Jiang Xin1-3040/+4015
Translate 274 new messages (4581t0f0u) for git 2.22.0. Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2019-06-05Merge branch '2.22' of https://github.com/ChrisADR/git-poLibravatar Jiang Xin1-8/+12
* '2.22' of https://github.com/ChrisADR/git-po: l10n: es: 2.22.0 round 3
2019-06-05Merge branch 'it-l10n-wip' of github.com:AlessandroMenti/git-poLibravatar Jiang Xin1-4745/+6015
* 'it-l10n-wip' of github.com:AlessandroMenti/git-po: l10n: it.po: Updated Italian translation
2019-06-04l10n: es: 2.22.0 round 3Libravatar Christopher Diaz Riveros1-8/+12
Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>
2019-06-04l10n: it.po: Updated Italian translationLibravatar Alessandro Menti1-4745/+6015
Signed-off-by: Alessandro Menti <alessandro.menti@alessandromenti.it>
2019-06-04l10n: fr v2.22.0 rnd 3Libravatar Jean-Noël Avila1-10/+16
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
2019-06-04l10n: vi.po(4581t): Updated Vietnamese translation for v2.22.0 round 3Libravatar Tran Ngoc Quan1-12/+16
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2019-06-04l10n: git.pot: v2.22.0 round 3 (3 new, 2 removed)Libravatar Jiang Xin1-6/+10
Generate po/git.pot from v2.22.0-rc3 for git v2.22.0 l10n round 3. Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2019-06-04Merge branch 'master' of git://git.kernel.org/pub/scm/git/gitLibravatar Jiang Xin11-126/+54
* 'master' of git://git.kernel.org/pub/scm/git/git: Git 2.22-rc3 i18n: fix typos found during l10n for git 2.22.0 RelNotes: minor typo fixes in 2.22.0 draft list-objects-filter: disable 'sparse:path' filters
2019-06-03Git 2.22-rc3Libravatar Junio C Hamano2-1/+8
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-06-03Merge branch 'cc/list-objects-filter-wo-sparse-path'Libravatar Junio C Hamano7-116/+37
Disable "--filter=sparse:path=<path>" that would allow reading from paths on the filesystem. * cc/list-objects-filter-wo-sparse-path: list-objects-filter: disable 'sparse:path' filters
2019-06-03i18n: fix typos found during l10n for git 2.22.0Libravatar Jiang Xin2-3/+3
Fix two typos introduced by the following commits: + 31fba9d3b4 (diff-parseopt: convert --[src|dst]-prefix, 2019-03-24) + ed8b4132c8 (remote-curl: mark all error messages for translation, 2019-03-05) Signed-off-by: Jiang Xin <worldhello.net@gmail.com> Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-06-03RelNotes: minor typo fixes in 2.22.0 draftLibravatar Todd Zullinger1-6/+6
Signed-off-by: Todd Zullinger <tmz@pobox.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-06-03l10n: es: 2.22.0 round 2Libravatar Christopher Diaz Riveros1-381/+394
Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>
2019-06-02Merge branch 'master' of https://github.com/vnwildman/gitLibravatar Jiang Xin1-383/+396
* 'master' of https://github.com/vnwildman/git: l10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2
2019-06-02Merge branch 'master' of git://github.com/alshopov/git-poLibravatar Jiang Xin1-1577/+1590
* 'master' of git://github.com/alshopov/git-po: l10n: bg.po: Updated Bulgarian translation (4580t)
2019-06-02l10n: bg.po: Updated Bulgarian translation (4580t)Libravatar Alexander Shopov1-1577/+1590
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
2019-06-01l10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2Libravatar Tran Ngoc Quan1-383/+396
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2019-05-31l10n: fr.po v2.22.0 round 2Libravatar Jean-Noël Avila1-434/+537
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
2019-05-31l10n: git.pot: v2.22.0 round 2 (6 new, 3 removed)Libravatar Jiang Xin1-378/+391
Generate po/git.pot from v2.22.0-rc2 for git v2.22.0 l10n round 2. Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2019-05-31Merge branch 'master' of git://git.kernel.org/pub/scm/git/gitLibravatar Jiang Xin95-553/+1001
* 'master' of git://git.kernel.org/pub/scm/git/git: (66 commits) Git 2.22-rc2 ...
2019-05-31Merge branch 'master' of https://github.com/Softcatala/git-poLibravatar Jiang Xin1-4465/+4516
* 'master' of https://github.com/Softcatala/git-po: l10n: Update Catalan translation
2019-05-30Git 2.22-rc2Libravatar Junio C Hamano2-1/+3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-05-30Merge branch 'js/rebase-config-bitfix'Libravatar Junio C Hamano1-1/+1
* js/rebase-config-bitfix: rebase: replace incorrect logical negation by correct bitwise one
2019-05-30Merge branch 'es/doc-gitsubmodules-markup'Libravatar Junio C Hamano1-7/+7
Doc markup fix. * es/doc-gitsubmodules-markup: gitsubmodules: align html and nroff lists
2019-05-30Merge branch 'ja/diff-opt-typofix'Libravatar Junio C Hamano1-2/+2
Typofix. * ja/diff-opt-typofix: diff: fix mistake in translatable strings
2019-05-30Merge branch 'jt/clone-server-option'Libravatar Junio C Hamano1-1/+1
A brown-paper-bag bugfix to a change already in 'master'. * jt/clone-server-option: fetch-pack: send server options after command
2019-05-30Merge branch 'sg/progress-off-by-one-fix'Libravatar Junio C Hamano1-1/+1
A brown-paper-bag bugfix to a change already in 'master'. * sg/progress-off-by-one-fix: progress: avoid empty line when breaking the progress line
2019-05-30Merge branch 'js/rebase-deprecate-preserve-merges'Libravatar Junio C Hamano4-11/+19
A bit more leftover clean-up to deprepcate "rebase -p". * js/rebase-deprecate-preserve-merges: rebase docs: recommend `-r` over `-p` docs: say that `--rebase=preserve` is deprecated tests: mark a couple more test cases as requiring `rebase -p`
2019-05-30Merge branch 'sg/trace2-rename'Libravatar Junio C Hamano13-91/+118
Rename environment variables that are used to control the "trace2" mechanism to a more readable name. * sg/trace2-rename: trace2: document the supported values of GIT_TRACE2* env variables trace2: rename environment variables to GIT_TRACE2*
2019-05-30Merge branch 'jh/trace2'Libravatar Junio C Hamano1-3/+9
* jh/trace2: trace2: fix tracing when NO_PTHREADS is defined
2019-05-30Merge branch 'nd/diff-parseopt'Libravatar Junio C Hamano8-5/+107
A brown-paper-bag bugfix to a change already in 'master'. * nd/diff-parseopt: parse-options: check empty value in OPT_INTEGER and OPT_ABBREV diff-parseopt: restore -U (no argument) behavior diff-parseopt: correct variable types that are used by parseopt
2019-05-29list-objects-filter: disable 'sparse:path' filtersLibravatar Christian Couder7-116/+37
If someone wants to use as a filter a sparse file that is in the repository, something like "--filter=sparse:oid=<ref>:<path>" already works. So 'sparse:path' is only interesting if the sparse file is not in the repository. In this case though the current implementation has a big security issue, as it makes it possible to ask the server to read any file, like for example /etc/password, and to explore the filesystem, as well as individual lines of files. If someone is interested in using a sparse file that is not in the repository as a filter, then at the minimum a config option, such as "uploadpack.sparsePathFilter", should be implemented first to restrict the directory from which the files specified by 'sparse:path' can be read. For now though, let's just disable 'sparse:path' filters. Helped-by: Matthew DeVore <matvore@google.com> Helped-by: Jeff Hostetler <git@jeffhostetler.com> Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-05-29parse-options: check empty value in OPT_INTEGER and OPT_ABBREVLibravatar Nguyễn Thái Ngọc Duy2-0/+6
When parsing the argument for OPT_INTEGER and OPT_ABBREV, we check if we can parse the entire argument to a number with "if (*s)". There is one missing check: if "arg" is empty to begin with, we fail to notice. This could happen with long option by writing like git diff --inter-hunk-context= blah blah Before 16ed6c97cc (diff-parseopt: convert --inter-hunk-context, 2019-03-24), --inter-hunk-context is handled by a custom parser opt_arg() and does detect this correctly. This restores the bahvior for --inter-hunk-context and make sure all other integer options are handled the same (sane) way. For OPT_ABBREV this is new behavior. But it makes it consistent with the rest. PS. OPT_MAGNITUDE has similar code but git_parse_ulong() does detect empty "arg". So it's good to go. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-05-29diff-parseopt: restore -U (no argument) behaviorLibravatar Nguyễn Thái Ngọc Duy5-4/+100
Before d473e2e0e8 (diff.c: convert -U|--unified, 2019-01-27), -U and --unified are implemented with a custom parser opt_arg() in diff.c. I didn't check this code carefully and not realize that it's the equivalent of PARSE_OPT_NONEG | PARSE_OPT_OPTARG. In other words, if -U is specified without any argument, the option should be accepted, and the default value should be used. Without PARSE_OPT_OPTARG, parse_options() will reject this case and cause a regression. Reported-by: Bryan Turner <bturner@atlassian.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-05-29diff-parseopt: correct variable types that are used by parseoptLibravatar Nguyễn Thái Ngọc Duy1-1/+1
Most number-related OPT_ macros store the value in an 'int' variable. Many of the variables in 'struct diff_options' have a different type, but during the conversion to using parse_options() I failed to notice and correct. The problem was reported on s360x which is a big-endian architechture. The variable to store '-w' option in this case is xdl_opts, 'long' type, 8 bytes. But since parse_options() assumes 'int' (4 bytes), it will store bits in the wrong part of xdl_opts. The problem was found on little-endian platforms because parse_options() will accidentally store at the right part of xdl_opts. There aren't much to say about the type change (except that 'int' for xdl_opts should still be big enough, since Windows' long is the same size as 'int' and nobody has complained so far). Some safety checks may be implemented in the future to prevent class of bugs. Reported-by: Todd Zullinger <tmz@pobox.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>