Junio C Hamano [Mon, 7 Oct 2019 02:33:01 +0000 (11:33 +0900)]
Merge branch 'rs/alias-use-copy-array'
Code cleanup.
* rs/alias-use-copy-array:
git: use COPY_ARRAY and MOVE_ARRAY in handle_alias()
Junio C Hamano [Mon, 7 Oct 2019 02:33:00 +0000 (11:33 +0900)]
Merge branch 'sg/t-helper-gitignore'
Update the way build artifacts in t/helper/ directory are ignored.
* sg/t-helper-gitignore:
t/helper: ignore only executable files
Junio C Hamano [Mon, 7 Oct 2019 02:33:00 +0000 (11:33 +0900)]
Merge branch 'cc/svn-fe-py-shebang'
* cc/svn-fe-py-shebang:
contrib/svn-fe: fix shebang for svnrdump_sim.py
Junio C Hamano [Mon, 7 Oct 2019 02:33:00 +0000 (11:33 +0900)]
Merge branch 'ah/doc-submodule-ignore-submodules'
Docfix.
* ah/doc-submodule-ignore-submodules:
doc: fix reference to --ignore-submodules
Junio C Hamano [Mon, 7 Oct 2019 02:32:59 +0000 (11:32 +0900)]
Merge branch 'rs/nth-switch-code-simplification'
Code simplification.
* rs/nth-switch-code-simplification:
sha1_name: simplify strbuf handling in interpret_nth_prior_checkout()
Junio C Hamano [Mon, 7 Oct 2019 02:32:59 +0000 (11:32 +0900)]
Merge branch 'hb/hg-to-git-py3'
The hg-to-git script (in contrib/) has been updated to work with
Python 3.
* hb/hg-to-git-py3:
hg-to-git: make it compatible with both python3 and python2
Junio C Hamano [Mon, 7 Oct 2019 02:32:59 +0000 (11:32 +0900)]
Merge branch 'sg/progress-fix'
Regression fix for progress output.
* sg/progress-fix:
Test the progress display
Revert "progress: use term_clear_line()"
Junio C Hamano [Mon, 7 Oct 2019 02:32:59 +0000 (11:32 +0900)]
Merge branch 'js/doc-patch-text'
Docfix.
* js/doc-patch-text:
diff, log doc: small grammer, format, and language fixes
diff, log doc: say "patch text" instead of "patches"
Junio C Hamano [Mon, 7 Oct 2019 02:32:58 +0000 (11:32 +0900)]
Merge branch 'tb/commit-graph-harden'
The code to parse and use the commit-graph file has been made more
robust against corrupted input.
* tb/commit-graph-harden:
commit-graph.c: handle corrupt/missing trees
commit-graph.c: handle commit parsing errors
t/t5318: introduce failing 'git commit-graph write' tests
Junio C Hamano [Mon, 7 Oct 2019 02:32:58 +0000 (11:32 +0900)]
Merge branch 'jt/cache-tree-avoid-lazy-fetch-during-merge'
The cache-tree code has been taught to be less aggressive in
attempting to see if a tree object it computed already exists in
the repository.
* jt/cache-tree-avoid-lazy-fetch-during-merge:
cache-tree: do not lazy-fetch tentative tree
Junio C Hamano [Mon, 7 Oct 2019 02:32:58 +0000 (11:32 +0900)]
Merge branch 'dl/cocci-everywhere'
Coccinelle checks are done on more source files than before now.
* dl/cocci-everywhere:
Makefile: run coccicheck on more source files
Makefile: strip leading ./ in $(FIND_SOURCE_FILES)
Makefile: define THIRD_PARTY_SOURCES
Makefile: strip leading ./ in $(LIB_H)
Junio C Hamano [Mon, 7 Oct 2019 02:32:57 +0000 (11:32 +0900)]
Merge branch 'gs/commit-graph-progress'
* gs/commit-graph-progress:
commit-graph: add --[no-]progress to write and verify
Junio C Hamano [Mon, 7 Oct 2019 02:32:57 +0000 (11:32 +0900)]
Merge branch 'ms/fetch-follow-tag-optim'
The code used in following tags in "git fetch" has been optimized.
* ms/fetch-follow-tag-optim:
fetch: use oidset to keep the want OIDs for faster lookup
Junio C Hamano [Mon, 7 Oct 2019 02:32:57 +0000 (11:32 +0900)]
Merge branch 'rs/commit-graph-use-list-count'
Code cleanup.
* rs/commit-graph-use-list-count:
commit-graph: use commit_list_count()
Junio C Hamano [Mon, 7 Oct 2019 02:32:57 +0000 (11:32 +0900)]
Merge branch 'rs/nth-parent-parse'
The object name parser for "Nth parent" syntax has been made more
robust against integer overflows.
* rs/nth-parent-parse:
sha1-name: check for overflow of N in "foo^N" and "foo~N"
rev-parse: demonstrate overflow of N for "foo^N" and "foo~N"
Junio C Hamano [Mon, 7 Oct 2019 02:32:56 +0000 (11:32 +0900)]
Merge branch 'dl/submodule-set-branch'
Docfix.
* dl/submodule-set-branch:
git-submodule.txt: fix AsciiDoc formatting error
Junio C Hamano [Mon, 7 Oct 2019 02:32:56 +0000 (11:32 +0900)]
Merge branch 'cs/pretty-formats-doc-typofix'
Doc fix.
* cs/pretty-formats-doc-typofix:
doc: minor formatting fix
Junio C Hamano [Mon, 7 Oct 2019 02:32:56 +0000 (11:32 +0900)]
Merge branch 'jk/list-objects-optim-wo-trees'
The object traversal machinery has been optimized not to load tree
objects when we are only interested in commit history.
* jk/list-objects-optim-wo-trees:
list-objects: don't queue root trees unless revs->tree_objects is set
Junio C Hamano [Mon, 7 Oct 2019 02:32:55 +0000 (11:32 +0900)]
Merge branch 'jk/disable-commit-graph-during-upload-pack'
The "upload-pack" (the counterpart of "git fetch") needs to disable
commit-graph when responding to a shallow clone/fetch request, but
the way this was done made Git panic, which has been corrected.
* jk/disable-commit-graph-during-upload-pack:
upload-pack: disable commit graph more gently for shallow traversal
commit-graph: bump DIE_ON_LOAD check to actual load-time
Junio C Hamano [Mon, 7 Oct 2019 02:32:55 +0000 (11:32 +0900)]
Merge branch 'mr/complete-more-for-log-etc'
Completion updates.
* mr/complete-more-for-log-etc:
completion: add missing completions for log, diff, show
Junio C Hamano [Mon, 7 Oct 2019 02:32:55 +0000 (11:32 +0900)]
Merge branch 'dl/complete-rebase-and-archive'
The command line completion for "git archive" and "git rebase" are
now made less prone to go out of sync with the binary.
* dl/complete-rebase-and-archive:
completion: teach archive to use __gitcomp_builtin
completion: teach rebase to use __gitcomp_builtin
Junio C Hamano [Mon, 7 Oct 2019 02:32:55 +0000 (11:32 +0900)]
Merge branch 'jk/commit-graph-cleanup'
A pair of small fixups to "git commit-graph" have been applied.
* jk/commit-graph-cleanup:
commit-graph: turn off save_commit_buffer
commit-graph: don't show progress percentages while expanding reachable commits
Junio C Hamano [Mon, 7 Oct 2019 02:32:54 +0000 (11:32 +0900)]
Merge branch 'ss/get-time-cleanup'
Code simplification.
* ss/get-time-cleanup:
test_date.c: remove reference to GIT_TEST_DATE_NOW
Quit passing 'now' to date code
Junio C Hamano [Mon, 7 Oct 2019 02:32:54 +0000 (11:32 +0900)]
Merge branch 'rs/simplify-by-deco-with-deco-refs-exclude'
"git log --decorate-refs-exclude=<pattern>" was incorrectly
overruled when the "--simplify-by-decoration" option is used, which
has been corrected.
* rs/simplify-by-deco-with-deco-refs-exclude:
log-tree: call load_ref_decorations() in get_name_decoration()
log: test --decorate-refs-exclude with --simplify-by-decoration
Junio C Hamano [Mon, 7 Oct 2019 02:32:54 +0000 (11:32 +0900)]
Merge branch 'jk/partial-clone-sparse-blob'
The name of the blob object that stores the filter specification
for sparse cloning/fetching was interpreted in a wrong place in the
code, causing Git to abort.
* jk/partial-clone-sparse-blob:
list-objects-filter: use empty string instead of NULL for sparse "base"
list-objects-filter: give a more specific error sparse parsing error
list-objects-filter: delay parsing of sparse oid
t5616: test cloning/fetching with sparse:oid=<oid> filter
Junio C Hamano [Mon, 7 Oct 2019 02:32:53 +0000 (11:32 +0900)]
Merge branch 'tg/stash-refresh-index'
"git stash" learned to write refreshed index back to disk.
* tg/stash-refresh-index:
stash: make sure to write refreshed cache
merge: use refresh_and_write_cache
factor out refresh_and_write_cache function
Junio C Hamano [Sun, 6 Oct 2019 03:25:51 +0000 (12:25 +0900)]
Fifth batch
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 6 Oct 2019 03:25:17 +0000 (12:25 +0900)]
Merge branch 'cb/skip-utf8-check-with-pcre1'
Make sure the grep machinery does not abort when seeing a payload
that is not UTF-8 even when JIT is not in use with PCRE1.
* cb/skip-utf8-check-with-pcre1:
grep: skip UTF8 checks explicitly
Junio C Hamano [Sun, 6 Oct 2019 03:25:16 +0000 (12:25 +0900)]
Merge branch 'ma/user-manual-markup-update'
The markup used in user-manual has been updated to work better with
asciidoctor.
* ma/user-manual-markup-update:
user-manual.txt: render ASCII art correctly under Asciidoctor
asciidoctor-extensions.rb: handle "book" doctype in linkgit
user-manual.txt: change header notation
user-manual.txt: add missing section label
Junio C Hamano [Sun, 6 Oct 2019 03:25:16 +0000 (12:25 +0900)]
Merge branch 'bc/doc-use-docbook-5'
Start using DocBook 5 (instead of DocBook 4.5) as Asciidoctor 2.0
no longer works with the older one.
* bc/doc-use-docbook-5:
Documentation: fix build with Asciidoctor 2
Junio C Hamano [Sun, 6 Oct 2019 03:25:16 +0000 (12:25 +0900)]
Merge branch 'ma/asciidoctor-more-fixes'
Doc formatting updates.
* ma/asciidoctor-more-fixes:
gitweb.conf.txt: switch pluses to backticks to help Asciidoctor
git-merge-index.txt: wrap shell listing in "----"
git-receive-pack.txt: wrap shell [script] listing in "----"
git-ls-remote.txt: wrap shell listing in "----"
Documentation: wrap config listings in "----"
git-merge-base.txt: render indentations correctly under Asciidoctor
Documentation: wrap blocks with "--"
Junio C Hamano [Sun, 6 Oct 2019 03:25:15 +0000 (12:25 +0900)]
Merge branch 'ma/asciidoctor-refmiscinfo'
Update support for Asciidoctor documentation toolchain.
* ma/asciidoctor-refmiscinfo:
doc-diff: replace --cut-header-footer with --cut-footer
asciidoctor-extensions: provide `<refmiscinfo/>`
Doc/Makefile: give mansource/-version/-manual attributes
Junio C Hamano [Sun, 6 Oct 2019 03:25:15 +0000 (12:25 +0900)]
Merge branch 'am/mailmap-andrey-mazo'
* am/mailmap-andrey-mazo:
.mailmap: update email address of Andrey Mazo
Junio C Hamano [Sun, 6 Oct 2019 03:25:15 +0000 (12:25 +0900)]
Merge branch 'jc/git-gui-has-maintainer'
* jc/git-gui-has-maintainer:
SubmittingPatches: git-gui has a new maintainer
Junio C Hamano [Mon, 30 Sep 2019 04:30:46 +0000 (13:30 +0900)]
Fourth batch
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 30 Sep 2019 04:19:32 +0000 (13:19 +0900)]
Merge branch 'ds/commit-graph-on-fetch'
A configuration variable tells "git fetch" to write the commit
graph after finishing.
* ds/commit-graph-on-fetch:
fetch: add fetch.writeCommitGraph config setting
Junio C Hamano [Mon, 30 Sep 2019 04:19:32 +0000 (13:19 +0900)]
Merge branch 'bw/rebase-autostash-keep-current-branch'
"git rebase --autostash <upstream> <branch>", when <branch> is
different from the current branch, incorrectly moved the tip of the
current branch, which has been corrected.
* bw/rebase-autostash-keep-current-branch:
builtin/rebase.c: Remove pointless message
builtin/rebase.c: make sure the active branch isn't moved when autostashing
Junio C Hamano [Mon, 30 Sep 2019 04:19:31 +0000 (13:19 +0900)]
Merge branch 'ds/include-exclude'
The internal code originally invented for ".gitignore" processing
got reshuffled and renamed to make it less tied to "excluding" and
stress more that it is about "matching", as it has been reused for
things like sparse checkout specification that want to check if a
path is "included".
* ds/include-exclude:
unpack-trees: rename 'is_excluded_from_list()'
treewide: rename 'exclude' methods to 'pattern'
treewide: rename 'EXCL_FLAG_' to 'PATTERN_FLAG_'
treewide: rename 'struct exclude_list' to 'struct pattern_list'
treewide: rename 'struct exclude' to 'struct path_pattern'
Junio C Hamano [Mon, 30 Sep 2019 04:19:31 +0000 (13:19 +0900)]
Merge branch 'jh/trace2-pretty-output'
Output from trace2 subsystem is formatted more prettily now.
* jh/trace2-pretty-output:
trace2: cleanup whitespace in perf format
trace2: cleanup whitespace in normal format
quote: add sq_append_quote_argv_pretty()
trace2: trim trailing whitespace in normal format error message
trace2: remove dead code in maybe_add_string_va()
trace2: trim whitespace in region messages in perf target format
trace2: cleanup column alignment in perf target format
Junio C Hamano [Mon, 30 Sep 2019 04:19:31 +0000 (13:19 +0900)]
Merge branch 'dl/rebase-i-keep-base'
"git rebase --keep-base <upstream>" tries to find the original base
of the topic being rebased and rebase on top of that same base,
which is useful when running the "git rebase -i" (and its limited
variant "git rebase -x").
The command also has learned to fast-forward in more cases where it
can instead of replaying to recreate identical commits.
* dl/rebase-i-keep-base:
rebase: teach rebase --keep-base
rebase tests: test linear branch topology
rebase: fast-forward --fork-point in more cases
rebase: fast-forward --onto in more cases
rebase: refactor can_fast_forward into goto tower
t3432: test for --no-ff's interaction with fast-forward
t3432: distinguish "noop-same" v.s. "work-same" in "same head" tests
t3432: test rebase fast-forward behavior
t3431: add rebase --fork-point tests
Junio C Hamano [Mon, 30 Sep 2019 04:19:31 +0000 (13:19 +0900)]
Merge branch 'sg/clean-nested-repo-with-ignored'
A bug documentation.
* sg/clean-nested-repo-with-ignored:
t7300-clean: demonstrate deleting nested repo with an ignored file breakage
Junio C Hamano [Mon, 30 Sep 2019 04:19:30 +0000 (13:19 +0900)]
Merge branch 'dl/complete-cherry-pick-revert-skip'
The command line completion support (in contrib/) learned about the
"--skip" option of "git revert" and "git cherry-pick".
* dl/complete-cherry-pick-revert-skip:
status: mention --skip for revert and cherry-pick
completion: add --skip for cherry-pick and revert
completion: merge options for cherry-pick and revert
Junio C Hamano [Mon, 30 Sep 2019 04:19:30 +0000 (13:19 +0900)]
Merge branch 'dl/use-sq-from-test-lib'
Code cleanup.
* dl/use-sq-from-test-lib:
t: use common $SQ variable
Junio C Hamano [Mon, 30 Sep 2019 04:19:30 +0000 (13:19 +0900)]
Merge branch 'jk/misc-uninitialized-fixes'
Various fixes to codepaths gcc 9 had trouble following dataflow.
* jk/misc-uninitialized-fixes:
pack-objects: drop packlist index_pos optimization
test-read-cache: drop namelen variable
diff-delta: set size out-parameter to 0 for NULL delta
bulk-checkin: zero-initialize hashfile_checkpoint
pack-objects: use object_id in packlist_alloc()
git-am: handle missing "author" when parsing commit
Junio C Hamano [Mon, 30 Sep 2019 04:19:29 +0000 (13:19 +0900)]
Merge branch 'sg/git-test-boolean'
Fix an earlier regression in the test suite, which mistakenly
stopped running HTTPD tests.
* sg/git-test-boolean:
ci: restore running httpd tests
t/lib-git-svn.sh: check GIT_TEST_SVN_HTTPD when running SVN HTTP tests
Junio C Hamano [Mon, 30 Sep 2019 04:19:29 +0000 (13:19 +0900)]
Merge branch 'rs/get-tagged-oid'
Code cleanup.
* rs/get-tagged-oid:
use get_tagged_oid()
tag: factor out get_tagged_oid()
Junio C Hamano [Mon, 30 Sep 2019 04:19:29 +0000 (13:19 +0900)]
Merge branch 'en/filter-branch-deprecation'
Start discouraging the use of "git filter-branch".
* en/filter-branch-deprecation:
t9902: use a non-deprecated command for testing
Recommend git-filter-repo instead of git-filter-branch
t6006: simplify, fix, and optimize empty message test
Junio C Hamano [Mon, 30 Sep 2019 04:19:28 +0000 (13:19 +0900)]
Merge branch 'en/merge-options-ff-and-friends'
Doc update.
* en/merge-options-ff-and-friends:
merge-options.txt: clarify meaning of various ff-related options
Junio C Hamano [Mon, 30 Sep 2019 04:19:28 +0000 (13:19 +0900)]
Merge branch 'tg/push-all-in-mirror-forbidden'
Fix an earlier regression to "git push --all" which should have
been forbidden when the target remote repository is set to be a
mirror.
* tg/push-all-in-mirror-forbidden:
push: disallow --all and refspecs when remote.<name>.mirror is set
Junio C Hamano [Mon, 30 Sep 2019 04:19:28 +0000 (13:19 +0900)]
Merge branch 'dt/remote-helper-doc-re-lock-option'
Doc update.
* dt/remote-helper-doc-re-lock-option:
clarify documentation for remote helpers
Junio C Hamano [Mon, 30 Sep 2019 04:19:27 +0000 (13:19 +0900)]
Merge branch 'rs/help-unknown-ref-does-not-return'
Code cleanup.
* rs/help-unknown-ref-does-not-return:
help: make help_unknown_ref() NORETURN
Junio C Hamano [Mon, 30 Sep 2019 04:19:27 +0000 (13:19 +0900)]
Merge branch 'nd/switch-and-restore'
Resurrect a performance hack.
* nd/switch-and-restore:
checkout: add simple check for 'git checkout -b'
Junio C Hamano [Mon, 30 Sep 2019 04:19:27 +0000 (13:19 +0900)]
Merge branch 'tb/file-url-to-unc-path'
Windows update.
* tb/file-url-to-unc-path:
mingw: support UNC in git clone file://server/share/repo
Junio C Hamano [Mon, 30 Sep 2019 04:19:26 +0000 (13:19 +0900)]
Merge branch 'js/gitdir-at-unc-root'
On Windows, the root level of UNC share is now allowed to be used
just like any other directory.
* js/gitdir-at-unc-root:
setup_git_directory(): handle UNC root paths correctly
Fix .git/ discovery at the root of UNC shares
setup_git_directory(): handle UNC paths correctly
Junio C Hamano [Mon, 30 Sep 2019 04:19:26 +0000 (13:19 +0900)]
Merge branch 'ar/mingw-run-external-with-non-ascii-path'
Windows update.
* ar/mingw-run-external-with-non-ascii-path:
mingw: fix launching of externals from Unicode paths
Junio C Hamano [Mon, 30 Sep 2019 04:19:26 +0000 (13:19 +0900)]
Merge branch 'rs/parse-tree-indirect'
Code cleanup.
* rs/parse-tree-indirect:
tree: simplify parse_tree_indirect()
Junio C Hamano [Mon, 30 Sep 2019 04:19:25 +0000 (13:19 +0900)]
Merge branch 'jk/fast-import-history-bugfix'
The memory ownership model of the "git fast-import" got
straightened out.
* jk/fast-import-history-bugfix:
fast-import: duplicate into history rather than passing ownership
fast-import: duplicate parsed encoding string
Junio C Hamano [Mon, 30 Sep 2019 04:19:25 +0000 (13:19 +0900)]
Merge branch 'mh/notes-duplicate-entries'
A few implementation fixes in the notes API.
* mh/notes-duplicate-entries:
notes: avoid potential use-after-free during insertion
notes: avoid leaking duplicate entries
Junio C Hamano [Mon, 30 Sep 2019 04:19:25 +0000 (13:19 +0900)]
Merge branch 'tb/banned-vsprintf-namefix'
Error message fix.
* tb/banned-vsprintf-namefix:
banned.h: fix vsprintf()'s ban message
Junio C Hamano [Mon, 30 Sep 2019 04:19:25 +0000 (13:19 +0900)]
Merge branch 'mh/release-commit-memory-fix'
Leakfix.
* mh/release-commit-memory-fix:
commit: free the right buffer in release_commit_memory
Junio C Hamano [Mon, 30 Sep 2019 04:19:24 +0000 (13:19 +0900)]
Merge branch 'mh/http-urlmatch-cleanup'
Leakfix.
* mh/http-urlmatch-cleanup:
http: don't leak urlmatch_config.vars
Junio C Hamano [Mon, 30 Sep 2019 04:19:24 +0000 (13:19 +0900)]
Merge branch 'rs/strbuf-detach'
Straighten out the use of strbuf_detach() API function.
* rs/strbuf-detach:
grep: use return value of strbuf_detach()
log-tree: always use return value of strbuf_detach()
Junio C Hamano [Mon, 30 Sep 2019 04:19:24 +0000 (13:19 +0900)]
Merge branch 'rs/trace2-dst-warning'
Code cleanup.
* rs/trace2-dst-warning:
trace2: use warning() directly in tr2_dst_malformed_warning()
Junio C Hamano [Mon, 30 Sep 2019 04:19:23 +0000 (13:19 +0900)]
Merge branch 'dl/format-patch-doc-test-cleanup'
The documentation and tests for "git format-patch" have been
cleaned up.
* dl/format-patch-doc-test-cleanup:
config/format.txt: specify default value of format.coverLetter
Doc: add more detail for git-format-patch
t4014: stop losing return codes of git commands
t4014: remove confusing pipe in check_threading()
t4014: use test_line_count() where possible
t4014: let sed open its own files
t4014: drop redirections to /dev/null
t4014: use indentable here-docs
t4014: remove spaces after redirect operators
t4014: use sq for test case names
t4014: move closing sq onto its own line
t4014: s/expected/expect/
t4014: drop unnecessary blank lines from test cases
Junio C Hamano [Mon, 30 Sep 2019 04:19:23 +0000 (13:19 +0900)]
Merge branch 'bc/hash-independent-tests-part-5'
Preparation for SHA-256 upgrade continues in the test department.
* bc/hash-independent-tests-part-5:
t4009: make hash size independent
t4002: make hash independent
t4000: make hash size independent
t3903: abstract away SHA-1-specific constants
t3800: make hash-size independent
t3600: make hash size independent
t3506: make hash independent
t3430: avoid hard-coded object IDs
t3404: abstract away SHA-1-specific constants
t3306: abstract away SHA-1-specific constants
t3305: make hash size independent
t3301: abstract away SHA-1-specific constants
t3206: abstract away hash size constants
t3201: abstract away SHA-1-specific constants
Junio C Hamano [Mon, 30 Sep 2019 04:19:23 +0000 (13:19 +0900)]
Merge branch 'jc/test-cleanup'
Code cleanup.
* jc/test-cleanup:
t3005: remove unused variable
t: use LF variable defined in the test harness
Junio C Hamano [Mon, 30 Sep 2019 04:19:23 +0000 (13:19 +0900)]
Merge branch 'dl/compat-cleanup'
Code cleanup.
* dl/compat-cleanup:
compat/*.[ch]: remove extern from function declarations using spatch
mingw: apply array.cocci rule
Junio C Hamano [Mon, 30 Sep 2019 04:19:22 +0000 (13:19 +0900)]
Merge branch 'js/visual-studio'
Adjust .gitignore to unignore a path that we started to track.
* js/visual-studio:
.gitignore: stop ignoring `.manifest` files
Martin Ågren [Sun, 22 Sep 2019 11:57:59 +0000 (13:57 +0200)]
user-manual.txt: render ASCII art correctly under Asciidoctor
This commit is similar to
379805051d ("Documentation: render revisions
correctly under Asciidoctor", 2018-05-06) and is a no-op with AsciiDoc.
When creating a literal block from an indented block without any sort of
delimiters, Asciidoctor strips off all leading whitespace, resulting in
a misrendered ASCII drawing. Use an explicit literal block to indicate
to Asciidoctor that we want to keep the leading whitespace. Drop the
common indentation for all lines to make this a no-op with AsciiDoc.
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Martin Ågren [Sun, 22 Sep 2019 11:57:58 +0000 (13:57 +0200)]
asciidoctor-extensions.rb: handle "book" doctype in linkgit
user-manual.txt is the only file we process using the "book" doctype.
When we use AsciiDoc, user-manual.conf ensures that the linkgit macro
expands into something like
<ulink url="git-foo.html">git-foo(1)</ulink>
in user-manual.xml, which we then process into a clickable link, both in
user-manual.html and user-manual.pdf. With Asciidoctor,
user-manual.conf is ignored (this is expected) and our
Asciidoctor-specific implementation of linkgit kicks in:
<citerefentry>
<refentrytitle>git-foo</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>
This eventually renders as "git-foo(1)", which is not bad, but it
doesn't turn into a link.
Teach our Asciidoctor-specific implementation of the linkgit macro that
if the doctype is "book", we should emit <ulink .../> just like we do
with AsciiDoc. While we're doing this, future-proof by supporting a
"prefix". The implementation in user-manual.conf doesn't support this,
and we don't need this for now because user-manual.txt is the only file
we process this way (and it's immediately in Documentation/).
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Martin Ågren [Sun, 22 Sep 2019 11:57:57 +0000 (13:57 +0200)]
user-manual.txt: change header notation
When AsciiDoc processes user-manual.txt, it generates a book containing
chapters containing sections. So for example, we have chapter 6,
"Advanced branch management", which contains four relatively short
sections, 6.1-6.4. Asciidoctor generates a book containing *parts*
containing *chapters* instead. So part 6, "Advanced branch management"
contains four short chapters, 1-4. This looks a bit odd.
To make AsciiDoc (8.6.10) and Asciidoctor (1.5.5) handle these the same,
change from indicating chapters like so:
[[foobar]]
Foobar
======
to doing it like so:
[[foobar]]
== Foobar
Same thing for sections (line of dashes to ===), subsections (line of
tildes to ====) and subsubsections (line of carets to =====). Mark the
appendices with "[appendix]", which both AsciiDoc and Asciidoctor
understand. This means we need to drop the "Appendix X: " from their
titles, or those "Appendix X: " would be included literally in the name
of the appendix.
This commit is a no-op for AsciiDoc: The generated user-manual.xml is
identical before and after this patch. Asciidoctor now creates the same
chapter-section-subsection structure as AsciiDoc.
Changing the book title at the start of the document to similarly use
"=" instead of a line of equal signs makes no difference with any of the
engines, but let's do that change anyway for consistency.
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Martin Ågren [Sun, 22 Sep 2019 11:57:56 +0000 (13:57 +0200)]
user-manual.txt: add missing section label
We provide a label for each chapter and section except for the "Pitfalls
with submodules" section. Since we're doing it everywhere else, let's do
it here, too.
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Andrey Mazo [Tue, 27 Aug 2019 04:24:41 +0000 (07:24 +0300)]
.mailmap: update email address of Andrey Mazo
I don't have access to my old work email since 20 Apr 2019.
Replace with my personal email address.
Signed-off-by: Andrey Mazo <ahippo@yandex.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
SZEDER Gábor [Fri, 20 Sep 2019 09:36:09 +0000 (11:36 +0200)]
t/helper: ignore only executable files
This patch conceptually reverts
44103f4197 (t/helper: ignore
everything but sources, 2017-12-12). Back in those days we did have a
lot of separate test helper executables under 't/helper', and its
'.gitignore' did get out of sync every once in a while.
Since then, however, most of those separate executables were
integrated into a single 'test-tool' command [1], and new test helpers
are added as new subcommands, so the chances of that '.gitignore'
getting out of sync again are much lower. And even if a contributor
were not careful enough and submits a patch that adds a new executable
under 't/helper' but forgets to update '.gitignore' accordingly, our
CI builds would catch it in a timely manner [2].
Ignoring everything but sources has the drawback that building an
older version of Git (e.g. during bisecting) creates all those
executables, and after going back to e.g. current 'master' the usual
cleanup commands like 'make clean' or 'git clean -fd' don't remove
them (the former doesn't know about them, and the latter doesn't
remove ignored files).
So let's ignore only the executable files under 't/helper/, i.e.
'test-tool' and the three other remaining executables that could not
be integrated into 'test-tool' (no need to ignore object files, as
they are already ignored by our toplevel '.gitignore').
[1] The topic starting with
efd71f8913 (t/helper: add an empty
test-tool program, 2018-03-24), and leading up to the merge commit
27f25845cf (Merge branch 'nd/combined-test-helper', 2018-04-11).
[2]
b92cb86ea1 (travis-ci: check that all build artifacts are
.gitignore-d, 2017-12-31)
Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe [Thu, 19 Sep 2019 20:48:30 +0000 (22:48 +0200)]
git: use COPY_ARRAY and MOVE_ARRAY in handle_alias()
Use the macro COPY_ARRAY to copy array elements and MOVE_ARRAY to do the
same for moving them backwards in an array with potential overlap. The
result is shorter and safer, as it infers the element type automatically
and does a (very) basic type compatibility check for its first two
arguments.
These cases were missed by Coccinelle and contrib/coccinelle/array.cocci
because the type of the elements is "const char *", not "char *", and
the rules in the semantic patch cautiously insist on the sizeof operator
being used on exactly the same type to avoid generating transformations
that introduce subtle bugs into tricky code.
Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thomas Gummerer [Wed, 11 Sep 2019 18:20:27 +0000 (19:20 +0100)]
stash: make sure to write refreshed cache
When converting stash into C, calls to 'git update-index --refresh'
were replaced with the 'refresh_cache()' function. That is fine as
long as the index is only needed in-core, and not re-read from disk.
However in many cases we do actually need the refreshed index to be
written to disk, for example 'merge_recursive_generic()' discards the
in-core index before re-reading it from disk, and in the case of 'apply
--quiet', the 'refresh_cache()' we currently have is pointless without
writing the index to disk.
Always write the index after refreshing it to ensure there are no
regressions in this compared to the scripted stash. In the future we
can consider avoiding the write where possible after making sure none
of the subsequent calls actually need the refreshed cache, and it is
not expected to be refreshed after stash exits or it is written
somewhere else already.
Reported-by: Jeff King <peff@peff.net>
Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thomas Gummerer [Wed, 11 Sep 2019 18:20:26 +0000 (19:20 +0100)]
merge: use refresh_and_write_cache
Use the 'refresh_and_write_cache()' convenience function introduced in
the last commit, instead of refreshing and writing the index manually
in merge.c
Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thomas Gummerer [Wed, 11 Sep 2019 18:20:25 +0000 (19:20 +0100)]
factor out refresh_and_write_cache function
Getting the lock for the index, refreshing it and then writing it is a
pattern that happens more than once throughout the codebase, and isn't
trivial to get right. Factor out the refresh_and_write_cache function
from builtin/am.c to read-cache.c, so it can be re-used in other
places in a subsequent commit.
Note that we return different error codes for failing to refresh the
cache, and failing to write the index. The current caller only cares
about failing to write the index. However for other callers we're
going to convert in subsequent patches we will need this distinction.
Helped-by: Martin Ågren <martin.agren@gmail.com>
Helped-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Garima Singh [Mon, 26 Aug 2019 16:29:58 +0000 (09:29 -0700)]
commit-graph: add --[no-]progress to write and verify
Add --[no-]progress to git commit-graph write and verify.
The progress feature was introduced in
7b0f229
("commit-graph write: add progress output", 2018-09-17) but
the ability to opt-out was overlooked.
Signed-off-by: Garima Singh <garima.singh@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stephen P. Smith [Thu, 12 Sep 2019 04:11:02 +0000 (21:11 -0700)]
test_date.c: remove reference to GIT_TEST_DATE_NOW
Remove the reference to the GIT_TEST_DATE_NOW which is done in date.c.
We can't get rid of the "x" variable, since it serves as a generic
scratch variable for parsing later in the function.
Signed-off-by: Stephen P. Smith <ischis2@cox.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 18 Sep 2019 20:57:13 +0000 (13:57 -0700)]
SubmittingPatches: git-gui has a new maintainer
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Hervé Beraud [Wed, 18 Sep 2019 08:33:22 +0000 (08:33 +0000)]
hg-to-git: make it compatible with both python3 and python2
Python 2 is EOL at the end of 2019, many distros and systems now
come with python 3 as their default version.
Rewrite features used in hg-to-git that are no longer supported in
Python 3, in such a way that an updated code can still be usable
with Python 2:
- print is not a statement; use print() function instead.
- dict.has_key(key) is no more; use "key in dict" instead.
Signed-off-by: Hervé Beraud <herveberaud.pro@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 18 Sep 2019 18:55:13 +0000 (11:55 -0700)]
Third batch
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Wed, 18 Sep 2019 18:50:10 +0000 (11:50 -0700)]
Merge branch 'jt/avoid-ls-refs-with-http'
The http transport lacked some optimization the native transports
learned to avoid unnecessary ref advertisement, which has been
corrected.
* jt/avoid-ls-refs-with-http:
transport: teach all vtables to allow fetch first
transport-helper: skip ls-refs if unnecessary
Junio C Hamano [Wed, 18 Sep 2019 18:50:09 +0000 (11:50 -0700)]
Merge branch 'md/list-objects-filter-combo'
The list-objects-filter API (used to create a sparse/lazy clone)
learned to take a combined filter specification.
* md/list-objects-filter-combo:
list-objects-filter-options: make parser void
list-objects-filter-options: clean up use of ALLOC_GROW
list-objects-filter-options: allow mult. --filter
strbuf: give URL-encoding API a char predicate fn
list-objects-filter-options: make filter_spec a string_list
list-objects-filter-options: move error check up
list-objects-filter: implement composite filters
list-objects-filter-options: always supply *errbuf
list-objects-filter: put omits set in filter struct
list-objects-filter: encapsulate filter components
Junio C Hamano [Wed, 18 Sep 2019 18:50:09 +0000 (11:50 -0700)]
Merge branch 'cc/multi-promisor'
Teach the lazy clone machinery that there can be more than one
promisor remote and consult them in order when downloading missing
objects on demand.
* cc/multi-promisor:
Move core_partial_clone_filter_default to promisor-remote.c
Move repository_format_partial_clone to promisor-remote.c
Remove fetch-object.{c,h} in favor of promisor-remote.{c,h}
remote: add promisor and partial clone config to the doc
partial-clone: add multiple remotes in the doc
t0410: test fetching from many promisor remotes
builtin/fetch: remove unique promisor remote limitation
promisor-remote: parse remote.*.partialclonefilter
Use promisor_remote_get_direct() and has_promisor_remote()
promisor-remote: use repository_format_partial_clone
promisor-remote: add promisor_remote_reinit()
promisor-remote: implement promisor_remote_get_direct()
Add initial support for many promisor remotes
fetch-object: make functions return an error code
t0410: remove pipes after git commands
Junio C Hamano [Wed, 18 Sep 2019 18:50:09 +0000 (11:50 -0700)]
Merge branch 'sg/line-log-tree-diff-optim'
Optimize unnecessary full-tree diff away from "git log -L" machinery.
* sg/line-log-tree-diff-optim:
line-log: avoid unnecessary full tree diffs
line-log: extract pathspec parsing from line ranges into a helper function
Junio C Hamano [Wed, 18 Sep 2019 18:50:08 +0000 (11:50 -0700)]
Merge branch 'sg/complete-configuration-variables'
Command line completion updates for "git -c var.name=val"
* sg/complete-configuration-variables:
completion: complete config variables and values for 'git clone --config='
completion: complete config variables names and values for 'git clone -c'
completion: complete values of configuration variables after 'git -c var='
completion: complete configuration sections and variable names for 'git -c'
completion: split _git_config()
completion: simplify inner 'case' pattern in __gitcomp()
completion: use 'sort -u' to deduplicate config variable names
completion: deduplicate configuration sections
completion: add tests for 'git config' completion
completion: complete more values of more 'color.*' configuration variables
completion: fix a typo in a comment
Junio C Hamano [Wed, 18 Sep 2019 18:50:08 +0000 (11:50 -0700)]
Merge branch 'js/pre-merge-commit-hook'
A new "pre-merge-commit" hook has been introduced.
* js/pre-merge-commit-hook:
merge: --no-verify to bypass pre-merge-commit hook
git-merge: honor pre-merge-commit hook
merge: do no-verify like commit
t7503: verify proper hook execution
Junio C Hamano [Wed, 18 Sep 2019 18:50:08 +0000 (11:50 -0700)]
Merge branch 'cb/curl-use-xmalloc'
Tell cURL library to use the same malloc() implementation, with the
xmalloc() wrapper, as the rest of the system, for consistency.
* cb/curl-use-xmalloc:
http: use xmalloc with cURL
Junio C Hamano [Wed, 18 Sep 2019 18:50:07 +0000 (11:50 -0700)]
Merge branch 'jk/drop-release-pack-memory'
xmalloc() used to have a mechanism to ditch memory and address
space resources as the last resort upon seeing an allocation
failure from the underlying malloc(), which made the code complex
and thread-unsafe with dubious benefit, as major memory resource
users already do limit their uses with various other mechanisms.
It has been simplified away.
* jk/drop-release-pack-memory:
packfile: drop release_pack_memory()
Junio C Hamano [Wed, 18 Sep 2019 18:50:07 +0000 (11:50 -0700)]
Merge branch 'js/rebase-r-strategy'
"git rebase --rebase-merges" learned to drive different merge
strategies and pass strategy specific options to them.
* js/rebase-r-strategy:
t3427: accelerate this test by using fast-export and fast-import
rebase -r: do not (re-)generate root commits with `--root` *and* `--onto`
t3418: test `rebase -r` with merge strategies
t/lib-rebase: prepare for testing `git rebase --rebase-merges`
rebase -r: support merge strategies other than `recursive`
t3427: fix another incorrect assumption
t3427: accommodate for the `rebase --merge` backend having been replaced
t3427: fix erroneous assumption
t3427: condense the unnecessarily repetitive test cases into three
t3427: move the `filter-branch` invocation into the `setup` case
t3427: simplify the `setup` test case significantly
t3427: add a clarifying comment
rebase: fold git-rebase--common into the -p backend
sequencer: the `am` and `rebase--interactive` scripts are gone
.gitignore: there is no longer a built-in `git-rebase--interactive`
t3400: stop referring to the scripted rebase
Drop unused git-rebase--am.sh
Junio C Hamano [Wed, 18 Sep 2019 18:22:11 +0000 (11:22 -0700)]
Merge branch 'master' of https://github.com/prati0100/git-gui
* 'master' of https://github.com/prati0100/git-gui:
git-gui: add hotkey to toggle "Amend Last Commit"
git-gui: add horizontal scrollbar to commit buffer
git-gui: convert new/amend commit radiobutton to checkbutton
git-gui: add hotkeys to set widget focus
git-gui: allow undoing last revert
git-gui: return early when patch fails to apply
git-gui: allow reverting selected hunk
git-gui: allow reverting selected lines
René Scharfe [Wed, 18 Sep 2019 16:35:38 +0000 (18:35 +0200)]
sha1_name: simplify strbuf handling in interpret_nth_prior_checkout()
Pass the target strbuf to the callback function grab_nth_branch_switch()
by reference so that it can add the result string directly instead of
having it put the string into a temporary strbuf first. This gets rid
of an extra allocation and a string copy.
Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Alex Henrie [Wed, 18 Sep 2019 07:02:04 +0000 (01:02 -0600)]
doc: fix reference to --ignore-submodules
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Clément Chigot [Tue, 17 Sep 2019 14:58:41 +0000 (14:58 +0000)]
contrib/svn-fe: fix shebang for svnrdump_sim.py
The shebang for a python script should be "/usr/bin/env python" and not
"/usr/bin/python". On some OSes like AIX, python default path is not under
"/usr/bin" ("/opt/freeware/bin" for AIX).
Note the main reason behind this change is that AIX rpm will add a
dependency on "/usr/bin/python" instead of "/usr/bin/env".
Signed-off-by: Clément Chigot <clement.chigot@atos.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 17 Sep 2019 21:59:18 +0000 (14:59 -0700)]
Merge gitk to pick up emergency build fix
gitk: rename zh_CN.po to zh_cn.po
Denton Liu [Tue, 17 Sep 2019 08:52:06 +0000 (01:52 -0700)]
gitk: rename zh_CN.po to zh_cn.po
When running make from a clean environment, all of the *.po files should
be converted into *.msg files. After that, when make is run without any
changes, make should not do anything.
After
beffae768a (gitk: Add Chinese (zh_CN) translation, 2017-03-11),
zh_CN.po was introduced. When make was run, a zh_cn.msg file was
generated (notice the lowercase). However, since make is case-sensitive,
it expects zh_CN.po to generate a zh_CN.msg file so make will keep
reattempting to generate a zh_CN.msg so successive make invocations
result in
Generating catalog po/zh_cn.msg
msgfmt --statistics --tcl po/zh_cn.po -l zh_cn -d po/
317 translated messages.
happening continuously.
Rename zh_CN.po to zh_cn.po so that when make generates the zh_cn.msg
file, it will realize that it was successfully generated and only run
once.
Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Denton Liu [Mon, 16 Sep 2019 19:23:16 +0000 (12:23 -0700)]
Makefile: run coccicheck on more source files
Before, when running the "coccicheck" target, only the source files
which were being compiled would have been checked by Coccinelle.
However, just because we aren't compiling a source file doesn't mean we
have to exclude it from analysis. This will allow us to catch more
mistakes, in particular ones that affect Windows-only sources since
Coccinelle currently runs only on Linux.
Make the "coccicheck" target run on all C sources except for those that
are taken from some third-party source. We don't want to patch these
files since we want them to be as close to upstream as possible so that
it'll be easier to pull in upstream updates.
When running a build on Arch Linux with no additional flags provided,
after applying this patch, the following sources are now checked:
* block-sha1/sha1.c
* compat/access.c
* compat/basename.c
* compat/fileno.c
* compat/gmtime.c
* compat/hstrerror.c
* compat/memmem.c
* compat/mingw.c
* compat/mkdir.c
* compat/mkdtemp.c
* compat/mmap.c
* compat/msvc.c
* compat/pread.c
* compat/precompose_utf8.c
* compat/qsort.c
* compat/setenv.c
* compat/sha1-chunked.c
* compat/snprintf.c
* compat/stat.c
* compat/strcasestr.c
* compat/strdup.c
* compat/strtoimax.c
* compat/strtoumax.c
* compat/unsetenv.c
* compat/win32/dirent.c
* compat/win32/path-utils.c
* compat/win32/pthread.c
* compat/win32/syslog.c
* compat/win32/trace2_win32_process_info.c
* compat/win32mmap.c
* compat/winansi.c
* ppc/sha1.c
This also results in the following source now being excluded:
* compat/obstack.c
Instead of generating $(FOUND_C_SOURCES) from a
`$(shell $(FIND_SOURCE_FILES))` invocation, an alternative design was
considered which involved converting $(FIND_SOURCE_FILES) into
$(SOURCE_FILES) which would hold a list of filenames from the
$(FIND_SOURCE_FILES) invocation. We would simply filter `%.c` files into
$(ALL_C_SOURCES). $(SOURCE_FILES) would then be passed directly to the
etags, ctags and cscope commands. We can see from the following
invocation
$ git ls-files '*.[hcS]' '*.sh' ':!*[tp][0-9][0-9][0-9][0-9]*' ':!contrib' | wc -c
12779
that the number of characters in this list would pose a problem on
platforms with short command-line length limits (such as CMD which has a
max of 8191 characters). As a result, we don't perform this change.
However, we can see that the same issue may apply when running
Coccinelle since $(COCCI_SOURCES) is also a list of filenames:
if ! echo $(COCCI_SOURCES) | xargs $$limit \
$(SPATCH) --sp-file $< $(SPATCH_FLAGS) \
>$@+ 2>$@.log; \
This is justified since platforms that support Coccinelle generally have
reasonably long command-line length limits and so we are safe for the
foreseeable future.
Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Denton Liu [Mon, 16 Sep 2019 19:23:14 +0000 (12:23 -0700)]
Makefile: strip leading ./ in $(FIND_SOURCE_FILES)
Currently, $(FIND_SOURCE_FILES) has two modes: if `git ls-files` is
present, it will use that to enumerate the files in the repository; else
it will use `$(FIND) .` to enumerate the files in the directory.
There is a subtle difference between these two methods, however. With
ls-files, filenames don't have a leading `./` while with $(FIND), they
do. This does not currently pose a problem but in a future patch, we
will be using `filter-out` to process the list of files with the
assumption that there is no prefix.
Unify the two possible invocations in $(FIND_SOURCE_FILES) by using sed
to remove the `./` prefix in the $(FIND) case.
Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>