https://github.com/git/git

sort by:
Revision Author Date Message Commit Date
7f4e641 Git 2.20-rc1 Signed-off-by: Junio C Hamano <gitster@pobox.com> 21 November 2018, 14:24:52 UTC
7cb1ea1 Sync with 2.19.2 21 November 2018, 14:23:48 UTC
98cdfbb Git 2.19.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> 21 November 2018, 14:22:12 UTC
a4830a7 Merge branch 'sg/test-rebase-editor-fix' into maint * sg/test-rebase-editor-fix: t3404-rebase-interactive: test abbreviated commands 21 November 2018, 13:58:10 UTC
85eb0f1 Merge branch 'tb/char-may-be-unsigned' into maint Build portability fix. * tb/char-may-be-unsigned: path.c: char is not (always) signed 21 November 2018, 13:58:09 UTC
2b15340 Merge branch 'jk/uploadpack-packobjectshook-fix' into maint Code clean-up that results in a small bugfix. * jk/uploadpack-packobjectshook-fix: upload-pack: fix broken if/else chain in config callback 21 November 2018, 13:58:09 UTC
227124b Merge branch 'uk/merge-subtree-doc-update' into maint Belated documentation update to adjust to a new world order that happened a yew years ago. * uk/merge-subtree-doc-update: howto/using-merge-subtree: mention --allow-unrelated-histories 21 November 2018, 13:58:08 UTC
196afc4 Merge branch 'jc/cocci-preincr' into maint Code cleanup. * jc/cocci-preincr: fsck: s/++i > 1/i++/ cocci: simplify "if (++u > 1)" to "if (u++)" 21 November 2018, 13:58:08 UTC
eba1416 Merge branch 'ah/doc-updates' into maint Doc updates. * ah/doc-updates: doc: fix formatting in git-update-ref doc: fix indentation of listing blocks in gitweb.conf.txt doc: fix descripion for 'git tag --format' doc: fix inappropriate monospace formatting doc: fix ASCII art tab spacing doc: clarify boundaries of 'git worktree list --porcelain' 21 November 2018, 13:58:07 UTC
b53df43 Merge branch 'sg/doc-show-branch-typofix' into maint Docfix. * sg/doc-show-branch-typofix: doc: fix small typo in git show-branch 21 November 2018, 13:58:07 UTC
69ae666 Merge branch 'tq/branch-style-fix' into maint Code clean-up. * tq/branch-style-fix: branch: trivial style fix 21 November 2018, 13:58:06 UTC
2b40fdd Merge branch 'tq/branch-create-wo-branch-get' into maint Code clean-up. * tq/branch-create-wo-branch-get: builtin/branch.c: remove useless branch_get 21 November 2018, 13:58:06 UTC
c2d6378 Merge branch 'sb/strbuf-h-update' into maint Code clean-up to serve as a BCP example. Further clean-up patches may want to follow soon. * sb/strbuf-h-update: strbuf.h: format according to coding guidelines 21 November 2018, 13:58:06 UTC
a6dc172 Merge branch 'du/cherry-is-plumbing' into maint Doc update to mark "git cherry" as a plumbing command. * du/cherry-is-plumbing: doc: move git-cherry to plumbing 21 November 2018, 13:58:05 UTC
c3ba2ae Merge branch 'du/get-tar-commit-id-is-plumbing' into maint Doc update to mark "git get-tar-commit-id" as a plumbing command. * du/get-tar-commit-id-is-plumbing: doc: move git-get-tar-commit-id to plumbing 21 November 2018, 13:58:05 UTC
53016f4 Merge branch 'mm/doc-no-dashed-git' into maint Doc update. * mm/doc-no-dashed-git: doc: fix a typo and clarify a sentence 21 November 2018, 13:58:05 UTC
95500c8 Merge branch 'du/rev-parse-is-plumbing' into maint Doc update. * du/rev-parse-is-plumbing: doc: move git-rev-parse from porcelain to plumbing 21 November 2018, 13:58:04 UTC
6262f5c Merge branch 'ma/t7005-bash-workaround' into maint Test fix. * ma/t7005-bash-workaround: t7005-editor: quote filename to fix whitespace-issue 21 November 2018, 13:58:04 UTC
6b57374 Merge branch 'jc/how-to-document-api' into maint Doc update. * jc/how-to-document-api: CodingGuidelines: document the API in *.h files 21 November 2018, 13:58:03 UTC
368ba6b Merge branch 'mw/doc-typofixes' into maint Typofixes. * mw/doc-typofixes: docs: typo: s/isimilar/similar/ docs: graph: remove unnecessary `graph_update()' call docs: typo: s/go/to/ 21 November 2018, 13:58:03 UTC
587b3f5 Merge branch 'rs/sequencer-oidset-insert-avoids-dups' into maint Code clean-up. * rs/sequencer-oidset-insert-avoids-dups: sequencer: use return value of oidset_insert() 21 November 2018, 13:58:02 UTC
1713093 Merge branch 'ma/mailing-list-address-in-git-help' into maint Doc update. * ma/mailing-list-address-in-git-help: git doc: direct bug reporters to mailing list archive 21 November 2018, 13:58:02 UTC
060d061 Merge branch 'nd/packobjectshook-doc-fix' into maint Doc update. * nd/packobjectshook-doc-fix: config.txt: correct the note about uploadpack.packObjectsHook 21 November 2018, 13:58:01 UTC
6f1c815 Merge branch 'ma/t1400-undebug-test' into maint Test fix. * ma/t1400-undebug-test: t1400: drop debug `echo` to actually execute `test` 21 November 2018, 13:58:01 UTC
35e54ea Merge branch 'ma/commit-graph-docs' into maint Doc update. * ma/commit-graph-docs: Doc: refer to the "commit-graph file" with dash git-commit-graph.txt: refer to "*commit*-graph file" git-commit-graph.txt: typeset more in monospace git-commit-graph.txt: fix bullet lists 21 November 2018, 13:58:00 UTC
871955c Merge branch 'dz/credential-doc-url-matching-rules' into maint Doc update. * dz/credential-doc-url-matching-rules: doc: clarify gitcredentials path component matching 21 November 2018, 13:58:00 UTC
75266b4 Merge branch 'jk/check-everything-connected-is-long-gone' into maint Comment fix. * jk/check-everything-connected-is-long-gone: receive-pack: update comment with check_everything_connected 21 November 2018, 13:58:00 UTC
0caea62 Merge branch 'fe/doc-updates' into maint Doc updates. * fe/doc-updates: git-describe.1: clarify that "human readable" is also git-readable git-column.1: clarify initial description, provide examples git-archimport.1: specify what kind of Arch we're talking about 21 November 2018, 13:57:58 UTC
2a98f6c Merge branch 'tg/t5551-with-curl-7.61.1' into maint Test update. Supersedes tz/t5551-with-curl-7.61.1 topic * tg/t5551-with-curl-7.61.1: t5551: compare sorted cookies files t5551: move setup code inside test_expect blocks 21 November 2018, 13:57:58 UTC
a753373 Merge branch 'tq/refs-internal-comment-fix' into maint Fix for typo in a sample code in comment. * tq/refs-internal-comment-fix: refs: docstring typo 21 November 2018, 13:57:58 UTC
85f6afc Merge branch 'sg/split-index-test' into maint Test updates. * sg/split-index-test: t0090: disable GIT_TEST_SPLIT_INDEX for the test checking split index t1700-split-index: drop unnecessary 'grep' 21 November 2018, 13:57:57 UTC
3ae0ac6 Merge branch 'bw/protocol-v2' into maint Doc fix. * bw/protocol-v2: config: document value 2 for protocol.version 21 November 2018, 13:57:57 UTC
d5e4cba Merge branch 'sb/string-list-remove-unused' into maint Code clean-up. * sb/string-list-remove-unused: string-list: remove unused function print_string_list 21 November 2018, 13:57:56 UTC
d9e70a4 Merge branch 'jk/dev-build-format-security' into maint Build tweak to help developers. * jk/dev-build-format-security: config.mak.dev: add -Wformat-security 21 November 2018, 13:57:56 UTC
9beaf81 Merge branch 'sg/t3701-tighten-trace' into maint Test update. * sg/t3701-tighten-trace: t3701-add-interactive: tighten the check of trace output 21 November 2018, 13:57:55 UTC
ab6409c Merge branch 'en/double-semicolon-fix' into maint Code clean-up. * en/double-semicolon-fix: Remove superfluous trailing semicolons 21 November 2018, 13:57:55 UTC
761868b Merge branch 'tb/void-check-attr' into maint Code clean-up. * tb/void-check-attr: Make git_check_attr() a void function 21 November 2018, 13:57:54 UTC
04b9bdb Merge branch 'sg/doc-trace-appends' into maint Docfix. * sg/doc-trace-appends: Documentation/git.txt: clarify that GIT_TRACE=/path appends 21 November 2018, 13:57:54 UTC
04d70dd Merge branch 'tg/conflict-marker-size' into maint Developer aid. * tg/conflict-marker-size: .gitattributes: add conflict-marker-size for relevant files 21 November 2018, 13:57:53 UTC
7532a18 Merge branch 'ts/doc-build-manpage-xsl-quietly' into maint Build tweak. * ts/doc-build-manpage-xsl-quietly: Documentation/Makefile: make manpage-base-url.xsl generation quieter 21 November 2018, 13:57:53 UTC
d75c41b Merge branch 'jk/detect-truncated-zlib-input' into maint A regression in Git 2.12 era made "git fsck" fall into an infinite loop while processing truncated loose objects. * jk/detect-truncated-zlib-input: cat-file: handle streaming failures consistently check_stream_sha1(): handle input underflow t1450: check large blob in trailing-garbage test 21 November 2018, 13:57:52 UTC
0e57d28 Merge branch 'sg/test-verbose-log' into maint Our test scripts can now take the '-V' option as a synonym for the '--verbose-log' option. * sg/test-verbose-log: test-lib: introduce the '-V' short option for '--verbose-log' 21 November 2018, 13:57:52 UTC
a1601a5 Merge branch 'ss/travis-ci-force-vm-mode' into maint The "container" mode of TravisCI is going away. Our .travis.yml file is getting prepared for the transition. * ss/travis-ci-force-vm-mode: travis-ci: no longer use containers 21 November 2018, 13:57:52 UTC
b52ac60 Merge branch 'md/exclude-promisor-objects-fix' into maint Operations on promisor objects make sense in the context of only a small subset of the commands that internally use the revisions machinery, but the "--exclude-promisor-objects" option were taken and led to nonsense results by commands like "log", to which it didn't make much sense. This has been corrected. * md/exclude-promisor-objects-fix: exclude-promisor-objects: declare when option is allowed Documentation/git-log.txt: do not show --exclude-promisor-objects 21 November 2018, 13:57:52 UTC
d0975a0 Merge branch 'js/shallow-and-fetch-prune' into maint "git repack" in a shallow clone did not correctly update the shallow points in the repository, leading to a repository that does not pass fsck. * js/shallow-and-fetch-prune: repack -ad: prune the list of shallow commits shallow: offer to prune only non-existing entries repack: point out a bug handling stale shallow info 21 November 2018, 13:57:51 UTC
7d483e9 Merge branch 'jc/receive-deny-current-branch-fix' into maint The receive.denyCurrentBranch=updateInstead codepath kicked in even when the push should have been rejected due to other reasons, such as it does not fast-forward or the update-hook rejects it, which has been corrected. * jc/receive-deny-current-branch-fix: receive: denyCurrentBranch=updateinstead should not blindly update 21 November 2018, 13:57:51 UTC
45dda3a Merge branch 'js/diff-notice-has-drive-prefix' into maint Under certain circumstances, "git diff D:/a/b/c D:/a/b/d" on Windows would strip initial parts from the paths because they were not recognized as absolute, which has been corrected. * js/diff-notice-has-drive-prefix: diff: don't attempt to strip prefix from absolute Windows paths 21 November 2018, 13:57:51 UTC
e3c18aa Merge branch 'js/pack-objects-mutex-init-fix' into maint A mutex used in "git pack-objects" were not correctly initialized and this caused "git repack" to dump core on Windows. * js/pack-objects-mutex-init-fix: pack-objects (mingw): initialize `packing_data` mutex in the correct spot pack-objects (mingw): demonstrate a segmentation fault with large deltas pack-objects: fix typo 'detla' -> 'delta' 21 November 2018, 13:57:50 UTC
1bf5d99 Merge branch 'jk/run-command-notdot' into maint The implementation of run_command() API on the UNIX platforms had a bug that caused a command not on $PATH to be found in the current directory. * jk/run-command-notdot: run-command: mark path lookup errors with ENOENT 21 November 2018, 13:57:50 UTC
a51c638 Merge branch 'np/log-graph-octopus-fix' into maint "git log --graph" showing an octopus merge sometimes miscounted the number of display columns it is consuming to show the merge and its parent commits, which has been corrected. * np/log-graph-octopus-fix: log: fix coloring of certain octopus merge shapes 21 November 2018, 13:57:49 UTC
3f0c460 Merge branch 'sg/split-index-racefix' into maint The codepath to support the experimental split-index mode had remaining "racily clean" issues fixed. * sg/split-index-racefix: split-index: BUG() when cache entry refers to non-existing shared entry split-index: smudge and add racily clean cache entries to split index split-index: don't compare cached data of entries already marked for split index split-index: count the number of deleted entries t1700-split-index: date back files to avoid racy situations split-index: add tests to demonstrate the racy split index problem t1700-split-index: document why FSMONITOR is disabled in this test script 21 November 2018, 13:57:48 UTC
0811737 Merge branch 'jt/non-blob-lazy-fetch' into maint A partial clone that is configured to lazily fetch missing objects will on-demand issue a "git fetch" request to the originating repository to fill not-yet-obtained objects. The request has been optimized for requesting a tree object (and not the leaf blob objects contained in it) by telling the originating repository that no blobs are needed. * jt/non-blob-lazy-fetch: fetch-pack: exclude blobs when lazy-fetching trees fetch-pack: avoid object flags if no_dependents 21 November 2018, 13:57:48 UTC
9674e7a Merge branch 'sm/show-superproject-while-conflicted' into maint A corner-case bugfix. * sm/show-superproject-while-conflicted: rev-parse: --show-superproject-working-tree should work during a merge 21 November 2018, 13:57:48 UTC
254db30 Merge branch 'en/status-multiple-renames-to-the-same-target-fix' into maint The code in "git status" sometimes hit an assertion failure. This was caused by a structure that was reused without cleaning the data used for the first run, which has been corrected. * en/status-multiple-renames-to-the-same-target-fix: commit: fix erroneous BUG, 'multiple renames on the same target? how?' 21 November 2018, 13:57:48 UTC
f1814e0 Merge branch 'jn/mailmap-update' into maint The mailmap file update. * jn/mailmap-update: mailmap: consistently normalize brian m. carlson's name 21 November 2018, 13:57:47 UTC
e60e38a Merge branch 'ds/commit-graph-with-grafts' into maint The recently introduced commit-graph auxiliary data is incompatible with mechanisms such as replace & grafts that "breaks" immutable nature of the object reference relationship. Disable optimizations based on its use (and updating existing commit-graph) when these incompatible features are in use in the repository. * ds/commit-graph-with-grafts: commit-graph: close_commit_graph before shallow walk commit-graph: not compatible with uninitialized repo commit-graph: not compatible with grafts commit-graph: not compatible with replace objects test-repository: properly init repo commit-graph: update design document refs.c: upgrade for_each_replace_ref to be a each_repo_ref_fn callback refs.c: migrate internal ref iteration to pass thru repository argument 21 November 2018, 13:57:47 UTC
a357dae Merge branch 'tg/range-diff-corner-case-fix' into maint Recently added "range-diff" had a corner-case bug to cause it segfault, which has been corrected. * tg/range-diff-corner-case-fix: linear-assignment: fix potential out of bounds memory access 21 November 2018, 13:57:46 UTC
50e6df2 Merge branch 'en/update-ref-no-deref-stdin' into maint "git update-ref" learned to make both "--no-deref" and "--stdin" work at the same time. * en/update-ref-no-deref-stdin: update-ref: allow --no-deref with --stdin update-ref: fix type of update_flags variable to match its usage 21 November 2018, 13:57:46 UTC
1fae869 Merge branch 'ms/remote-error-message-update' into maint Update error messages given by "git remote" and make them consistent. * ms/remote-error-message-update: builtin/remote: quote remote name on error to display empty name 21 November 2018, 13:57:46 UTC
2e168d7 Merge branch 'jt/lazy-object-fetch-fix' into maint The code to backfill objects in lazily cloned repository did not work correctly, which has been corrected. * jt/lazy-object-fetch-fix: fetch-object: set exact_oid when fetching fetch-object: unify fetch_object[s] functions 21 November 2018, 13:57:46 UTC
8ecf0c8 Merge branch 'en/sequencer-empty-edit-result-aborts' into maint "git rebase" etc. in Git 2.19 fails to abort when given an empty commit log message as result of editing, which has been corrected. * en/sequencer-empty-edit-result-aborts: sequencer: fix --allow-empty-message behavior, make it smarter 21 November 2018, 13:57:45 UTC
ca211f9 Merge branch 'nd/attr-pathspec-fix' into maint "git add ':(attr:foo)'" is not supported and is supposed to be rejected while the command line arguments are parsed, but we fail to reject such a command line upfront. * nd/attr-pathspec-fix: add: do not accept pathspec magic 'attr' 21 November 2018, 13:57:45 UTC
b4eafbc Merge branch 'en/rerere-multi-stage-1-fix' into maint A corner case bugfix in "git rerere" code. * en/rerere-multi-stage-1-fix: rerere: avoid buffer overrun t4200: demonstrate rerere segfault on specially crafted merge 21 November 2018, 13:57:44 UTC
e1372c3 Merge branch 'js/mingw-o-append' into maint Further fix for O_APPEND emulation on Windows * js/mingw-o-append: mingw: fix mingw_open_append to work with named pipes t0051: test GIT_TRACE to a windows named pipe 21 November 2018, 13:57:44 UTC
604f719 Merge branch 'jk/reopen-tempfile-truncate' into maint Fix for a long-standing bug that leaves the index file corrupt when it shrinks during a partial commit. * jk/reopen-tempfile-truncate: reopen_tempfile(): truncate opened file 21 November 2018, 13:57:43 UTC
07c5a1b Merge branch 'bp/mv-submodules-with-fsmonitor' into maint When fsmonitor is in use, after operation on submodules updates .gitmodules, we lost track of the fact that we did so and relied on stale fsmonitor data. * bp/mv-submodules-with-fsmonitor: git-mv: allow submodules and fsmonitor to work together 21 November 2018, 13:57:43 UTC
ff92463 Merge branch 'js/rebase-i-autosquash-fix' into maint "git rebase -i" did not clear the state files correctly when a run of "squash/fixup" is aborted and then the user manually amended the commit instead, which has been corrected. * js/rebase-i-autosquash-fix: rebase -i: be careful to wrap up fixup/squash chains rebase -i --autosquash: demonstrate a problem skipping the last squash 21 November 2018, 13:57:42 UTC
e293824 Merge branch 'jk/trailer-fixes' into maint "git interpret-trailers" and its underlying machinery had a buggy code that attempted to ignore patch text after commit log message, which triggered in various codepaths that will always get the log message alone and never get such an input. * jk/trailer-fixes: append_signoff: use size_t for string offsets sequencer: ignore "---" divider when parsing trailers pretty, ref-filter: format %(trailers) with no_divider option interpret-trailers: allow suppressing "---" divider interpret-trailers: tighten check for "---" patch boundary trailer: pass process_trailer_opts to trailer_info_get() trailer: use size_t for iterating trailer list trailer: use size_t for string offsets 21 November 2018, 13:57:42 UTC
9fc9555 Merge branch 'cc/shared-index-permbits' The way .git/index and .git/sharedindex* files were initially created gave these files different perm bits until they were adjusted for shared repository settings. This was made consistent. * cc/shared-index-permbits: read-cache: make the split index obey umask settings 21 November 2018, 11:39:03 UTC
9da9fff Merge branch 'nd/clone-case-smashing-warning' Recently added check for case smashing filesystems did not correctly utilize the cached stat information, leading to false breakage detected by our test suite, which has been corrected. * nd/clone-case-smashing-warning: clone: fix colliding file detection on APFS 21 November 2018, 11:39:03 UTC
5e8feea Merge branch 'tz/build-tech-midx-doc' A documentation page that is referred to by other pages was not built by mistake, which has been corrected. * tz/build-tech-midx-doc: Documentation: build technical/multi-pack-index 21 November 2018, 11:39:02 UTC
cdda0cc Merge branch 'jn/eoie-ieot' As the warning message shown by existing versions of Git for unknown index extensions is a bit too alarming, two new extensions are held back and not written by default for the upcoming release. * jn/eoie-ieot: index: make index.threads=true enable ieot and eoie ieot: default to not writing IEOT section eoie: default to not writing EOIE section 21 November 2018, 11:39:02 UTC
7fab474 Merge branch 'cc/delta-islands' A few issues in the implementation of "delta-islands" feature has been corrected. * cc/delta-islands: pack-objects: fix off-by-one in delta-island tree-depth computation pack-objects: zero-initialize tree_depth/layer arrays pack-objects: fix tree_depth and layer invariants 21 November 2018, 11:39:02 UTC
fde566f Merge branch 'js/rebase-am-options-fix' Recently, built-in "rebase" tightened the error checking for a few options that are passed to underlying "am", but we forgot to make the matching change to the scripted version, which has been corrected. * js/rebase-am-options-fix: legacy-rebase: backport -C<n> and --whitespace=<option> checks 21 November 2018, 11:39:01 UTC
c17f086 Merge branch 'js/builtin-rebase-perf-fix-err-fix' The object name of the tree reported in a recently added error message was wrong, which has been corrected. * js/builtin-rebase-perf-fix-err-fix: rebase: warn about the correct tree's OID 21 November 2018, 11:39:01 UTC
2a9dede index: make index.threads=true enable ieot and eoie If a user explicitly sets [index] threads = true to read the index using multiple threads, ensure that index writes include the offset table by default to make that possible. This ensures that the user's intent of turning on threading is respected. In other words, permit the following configurations: - index.threads and index.recordOffsetTable unspecified: do not write the offset table yet (to avoid alarming the user with "ignoring IEOT extension" messages when an older version of Git accesses the repository) but do make use of multiple threads to read the index if the supporting offset table is present. This can also be requested explicitly by setting index.threads=true, 0, or >1 and index.recordOffsetTable=false. - index.threads=false or 1: do not write the offset table, and do not make use of the offset table. One can set index.recordOffsetTable=false as well, to be more explicit. - index.threads=true, 0, or >1 and index.recordOffsetTable unspecified: write the offset table and make use of threads at read time. This can also be requested by setting index.threads=true, 0, >1, or unspecified and index.recordOffsetTable=true. Fortunately the complication is temporary: once most Git installations have upgraded to a version with support for the IEOT and EOIE extensions, we can flip the defaults for index.recordEndOfIndexEntries and index.recordOffsetTable to true and eliminate the settings. Helped-by: Ben Peart <benpeart@microsoft.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 21 November 2018, 07:46:54 UTC
e66ceca clone: fix colliding file detection on APFS Commit b878579ae7 (clone: report duplicate entries on case-insensitive filesystems - 2018-08-17) adds a warning to user when cloning a repo with case-sensitive file names on a case-insensitive file system. The "find duplicate file" check was doing by comparing inode number (and only fall back to fspathcmp() when inode is known to be unreliable because fspathcmp() can't cover all case folding cases). The inode check is very simple, and wrong. It compares between a 32-bit number (sd_ino) and potentially a 64-bit number (st_ino). When an inode is larger than 2^32 (which seems to be the case for APFS), it will be truncated and stored in sd_ino, but comparing with itself will fail. As a result, instead of showing a pair of files that have the same name, we show just one file (marked before the beginning of the loop). We fail to find the original one. The fix could be just a simple type cast (*) dup->ce_stat_data.sd_ino == (unsigned int)st->st_ino but this is no longer a reliable test, there are 4G possible inodes that can match sd_ino because we only match the lower 32 bits instead of full 64 bits. There are two options to go. Either we ignore inode and go with fspathcmp() on Apple platform. This means we can't do accurate inode check on HFS anymore, or even on APFS when inode numbers are still below 2^32. Or we just to to reduce the odds of matching a wrong file by checking more attributes, counting mostly on st_size because st_xtime is likely the same. This patch goes with this direction, hoping that false positive chances are too small to be seen in practice. While at there, enable the test on Cygwin (verified working by Ramsay Jones) (*) this is also already done inside match_stat_data() Reported-by: Carlo Arenas <carenas@gmail.com> Helped-by: Ramsay Jones <ramsay@ramsayjones.plus.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 21 November 2018, 05:05:13 UTC
6056817 Documentation: build technical/multi-pack-index The git-multi-pack-index doc links to technical/multi-pack-index.html. Ensure it is built to prevent a broken link. Signed-off-by: Todd Zullinger <tmz@pobox.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 21 November 2018, 04:53:22 UTC
3949053 pack-objects: fix off-by-one in delta-island tree-depth computation When delta-islands are in use, we need to record the deepest path at which we find each tree and blob. Our loop to do so counts slashes, so "foo" is depth 0, "foo/bar" is depth 1, and so on. However, this neglects root trees, which are represented by the empty string. Those also have depth 0, but are at a layer above "foo". Thus, "foo" should be 1, "foo/bar" at 2, and so on. We use this depth to topo-sort the trees in resolve_tree_islands(). As a result, we may fail to visit a root tree before the sub-trees it contains, and therefore not correctly pass down the island marks. That in turn could lead to missing some delta opportunities (objects are in the same island, but we didn't realize it) or creating unwanted cross-island deltas (one object is in an island another isn't, but we don't realize). In practice, it seems to have only a small effect. Some experiments on the real-world git/git fork network at GitHub showed an improvement of only 0.14% in the resulting clone size. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 21 November 2018, 04:50:28 UTC
e159b81 pack-objects: zero-initialize tree_depth/layer arrays Commit 108f530385 (pack-objects: move tree_depth into 'struct packing_data', 2018-08-16) started maintaining a tree_depth array that matches the "objects" array. We extend the array when: 1. The objects array is extended, in which case we use realloc to extend the tree_depth array. 2. A caller asks to store a tree_depth for object N, and this is the first such request; we create the array from scratch and store the value for N. In the latter case, though, we use regular xmalloc(), and the depth values for any objects besides N is undefined. This happens to not trigger a bug with the current code, but the reasons are quite subtle: - we never ask about the depth for any object with index i < N. This is because we store the depth immediately for all trees and blobs. So any such "i" must be a non-tree, and therefore we will never need to care about its depth (in fact, we really only care about the depth of trees). - there are no objects at this point with index i > N, because we always fill in the depth for a tree immediately after its object entry is created (we may still allocate uninitialized depth entries, but they'll be initialized by packlist_alloc() when it initializes the entry in the "objects" array). So it works, but only by chance. To be defensive, let's zero the array, which matches the "unset" values which would be handed out by oe_tree_depth() already. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 21 November 2018, 04:50:27 UTC
bc35ac1 pack-objects: fix tree_depth and layer invariants Commit 108f530385 (pack-objects: move tree_depth into 'struct packing_data', 2018-08-16) dynamically manages a tree_depth array in packing_data that maintains one of these invariants: 1. tree_depth is NULL (i.e., the requested options don't require us to track tree depths) 2. tree_depth is non-NULL and has as many entries as the "objects" array We maintain (2) by: a. When the objects array grows, grow tree_depth to the same size (unless it's NULL, in which case we can leave it). b. When a caller asks to set a depth via oe_set_tree_depth(), if tree_depth is NULL we allocate it. But in (b), we use the number of stored objects, _not_ the allocated size of the objects array. So we can run into a situation like this: 1. packlist_alloc() needs to store the Nth object, so it grows the objects array to M, where M > N. 2. oe_set_tree_depth() wants to store a depth, so it allocates an array of length N. Now we've violated our invariant. 3. packlist_alloc() needs to store the N+1th object. But it _doesn't_ grow the objects array, since N <= M still holds. We try to assign to tree_depth[N+1], which is out of bounds. That doesn't happen in our test scripts, because the repositories they use are so small, but it's easy to trigger by running: echo HEAD | git pack-objects --revs --delta-islands --stdout >/dev/null in any reasonably-sized repo (like git.git). We can fix it by always growing the array to match pack->nr_alloc, not pack->nr_objects. Likewise for the "layer" array from fe0ac2fb7f (pack-objects: move 'layer' into 'struct packing_data', 2018-08-16), which has the same bug. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 21 November 2018, 04:50:16 UTC
4d86503 rebase: warn about the correct tree's OID This was a simple copy/paste error, and an obvious one at that: if we cannot fill the tree descriptor, we should show an error message about *that* tree, not another one. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 21 November 2018, 04:48:11 UTC
4291605 ieot: default to not writing IEOT section As with EOIE, popular versions of Git do not support the new IEOT extension yet. When accessing a Git repository written by a more modern version of Git, they correctly ignore the unrecognized section, but in the process they loudly warn ignoring IEOT extension resulting in confusion for users. Introduce the index extension more gently by not writing it yet in this first version with support for it. Soon, once sufficiently many users are running a modern version of Git, we can flip the default so users benefit from this index extension by default. Introduce a '[index] recordOffsetTable' configuration variable to control whether the new index extension is written. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 21 November 2018, 04:43:06 UTC
d846550 eoie: default to not writing EOIE section Since 3b1d9e04 (eoie: add End of Index Entry (EOIE) extension, 2018-10-10) Git defaults to writing the new EOIE section when writing out an index file. Usually that is a good thing because it improves threaded performance, but when a Git repository is shared with older versions of Git, it produces a confusing warning: $ git status ignoring EOIE extension HEAD detached at 371ed0defa nothing to commit, working tree clean Let's introduce the new index extension more gently. First we'll roll out the new version of Git that understands it, and then once sufficiently many users are using such a version, we can flip the default to writing it by default. Introduce a '[index] recordEndOfIndexEntries' configuration variable to allow interested users to benefit from this index extension early. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 21 November 2018, 04:43:06 UTC
7e097e2 legacy-rebase: backport -C<n> and --whitespace=<option> checks Since 04519d720114 (rebase: validate -C<n> and --whitespace=<mode> parameters early, 2018-11-14), the built-in rebase validates the -C and --whitespace arguments early. As this commit also introduced a regression test for this, and as a later commit introduced the GIT_TEST_REBASE_USE_BUILTIN mode to run tests, we now have a "regression" in the scripted version of `git rebase` on our hands. Backport the validation to fix this. Reported-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 21 November 2018, 04:40:46 UTC
bb75be6 Prepare for 2.20-rc1 Signed-off-by: Junio C Hamano <gitster@pobox.com> 19 November 2018, 07:24:41 UTC
0722553 Merge branch 'sb/cocci-pending' A coding convention around the Coccinelle semantic patches to have two classes to ease code migration process has been proposed and its support has been added to the Makefile. * sb/cocci-pending: coccicheck: introduce 'pending' semantic patches 19 November 2018, 07:24:41 UTC
2488849 Merge branch 'js/test-git-installed' Update the "test installed Git" mode of our test suite to work better. * js/test-git-installed: tests: explicitly use `git.exe` on Windows tests: do not require Git to be built when testing an installed Git t/lib-gettext: test installed git-sh-i18n if GIT_TEST_INSTALLED is set tests: respect GIT_TEST_INSTALLED when initializing repositories tests: fix GIT_TEST_INSTALLED's PATH to include t/helper/ 19 November 2018, 07:24:41 UTC
1c6e646 Merge branch 'dd/poll-dot-h' A build update. * dd/poll-dot-h: git-compat-util: prefer poll.h to sys/poll.h 19 November 2018, 07:24:41 UTC
f5f0f68 Merge branch 'tb/print-size-t-with-uintmax-format' Code preparation to replace ulong vars with size_t vars where appropriate. * tb/print-size-t-with-uintmax-format: Upcast size_t variables to uintmax_t when printing 19 November 2018, 07:24:41 UTC
502fe43 Merge branch 'tb/xcurl-off-t' The xcurl_off_t() helper function is used to cast size_t to curl_off_t, but some compilers gave warnings against the code to ensure the casting is done without wraparound, when size_t is narrower than curl_off_t. This warning has been squelched. * tb/xcurl-off-t: remote-curl.c: xcurl_off_t is not portable (on 32 bit platfoms) 19 November 2018, 07:24:40 UTC
dc7accd Merge branch 'nd/format-patch-cover-letter-stat-width' "git format-patch --stat=<width>" can be used to specify the width used by the diffstat (shown in the cover letter). * nd/format-patch-cover-letter-stat-width: format-patch: respect --stat in cover letter's diffstat 19 November 2018, 07:24:40 UTC
1373999 Merge branch 'ds/push-squelch-ambig-warning' "git push" used to check ambiguities between object-names and refnames while processing the list of refs' old and new values, which was unnecessary (as it knew that it is feeding raw object names). This has been optimized out. * ds/push-squelch-ambig-warning: pack-objects: ignore ambiguous object warnings 19 November 2018, 07:24:40 UTC
9549326 Merge branch 'ab/dynamic-gettext-poison' Our testing framework uses a special i18n "poisoned localization" feature to find messages that ought to stay constant but are incorrectly marked to be translated. This feature has been made into a runtime option (it used to be a compile-time option). * ab/dynamic-gettext-poison: Makefile: ease dynamic-gettext-poison transition i18n: make GETTEXT_POISON a runtime option 19 November 2018, 07:24:39 UTC
c9d6c78 read-cache: make the split index obey umask settings Make the split index write out its .git/sharedindex_* files with the same permissions as .git/index. This only changes the behavior when core.sharedRepository isn't set, i.e. the user's umask settings will be respected. This hasn't been the case ever since the split index was originally implemented in c18b80a0e8 ("update-index: new options to enable/disable split index mode", 2014-06-13). A mkstemp()-like function has always been used to create it. First mkstemp() itself, and then later our own mkstemp()-like in f6ecc62dbf ("write_shared_index(): use tempfile module", 2015-08-10) A related bug was fixed in df801f3f9f ("read-cache: use shared perms when writing shared index", 2017-06-25). Since then the split index has respected core.sharedRepository. However, using that setting should not be required simply to make git obey the user's umask setting. It's intended for the use-case of overriding whatever that umask is set to. This fixes cases where the user has e.g. set his umask to 022 on a shared server in anticipation of other user's needing to run "status", "log" etc. in his repository. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 18 November 2018, 23:29:02 UTC
0e94dab RelNotes: name the release properly In the title, we should state for which version this release notes document is about. Signed-off-by: Junio C Hamano <gitster@pobox.com> 18 November 2018, 23:23:09 UTC
26aa9fc Git 2.20-rc0 Signed-off-by: Junio C Hamano <gitster@pobox.com> 18 November 2018, 09:24:49 UTC
9e3dc6b Merge branch 'jk/close-duped-fd-before-unlock-for-bundle' When "git bundle" aborts due to an empty commit ranges (i.e. resulting in an empty pack), it left a file descriptor to an lockfile open, which resulted in leftover lockfile on Windows where you cannot remove a file with an open file descriptor. This has been corrected. * jk/close-duped-fd-before-unlock-for-bundle: bundle: dup() output descriptor closer to point-of-use 18 November 2018, 09:23:59 UTC
4520c23 Merge branch 'ab/rebase-in-c-escape-hatch' The recently merged "rebase in C" has an escape hatch to use the scripted version when necessary, but it hasn't been documented, which has been corrected. * ab/rebase-in-c-escape-hatch: tests: add a special setup where rebase.useBuiltin is off rebase doc: document rebase.useBuiltin 18 November 2018, 09:23:59 UTC
137c1f2 Merge branch 'js/rebase-am-options' The way "git rebase" parses and forwards the command line options meant for underlying "git am" has been revamped, which fixed for options with parameters that were not passed correctly. * js/rebase-am-options: rebase: validate -C<n> and --whitespace=<mode> parameters early rebase: really just passthru the `git am` options 18 November 2018, 09:23:59 UTC
back to top