aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2022-10-30Merge branch 'rj/branch-copy-rename-error-codepath-cleanup'Taylor Blau2-20/+19
Code simplification. * rj/branch-copy-rename-error-codepath-cleanup: branch: error copying or renaming a detached HEAD
2022-10-30Merge branch 'tb/cap-patch-at-1gb'Taylor Blau2-1/+34
"git apply" limits its input to a bit less than 1 GiB. * tb/cap-patch-at-1gb: apply: reject patches larger than ~1 GiB
2022-10-30Merge branch 'jr/embargoed-releases-doc'Taylor Blau1-25/+140
The role the security mailing list plays in an embargoed release has been documented. * jr/embargoed-releases-doc: embargoed releases: also describe the git-security list and the process
2022-10-30Merge branch 'en/ort-dir-rename-and-symlink-fix'Taylor Blau2-2/+90
Merging a branch with directory renames into a branch that changes the directory to a symlink was mishandled by the ort merge strategy, which has been corrected. * en/ort-dir-rename-and-symlink-fix: merge-ort: fix bug with dir rename vs change dir to symlink
2022-10-30Merge branch 'pb/subtree-split-and-merge-after-squashing-tag-fix'Taylor Blau4-77/+192
A bugfix to "git subtree" in its split and merge features. * pb/subtree-split-and-merge-after-squashing-tag-fix: subtree: fix split after annotated tag was squashed merged subtree: fix squash merging after annotated tag was squashed merged subtree: process 'git-subtree-split' trailer in separate function subtree: use named variables instead of "$@" in cmd_pull subtree: define a variable before its first use in 'find_latest_squash' subtree: prefix die messages with 'fatal' subtree: add 'die_incompatible_opt' function to reduce duplication subtree: use 'git rev-parse --verify [--quiet]' for better error messages test-lib-functions: mark 'test_commit' variables as 'local'
2022-10-30Merge branch 'pw/rebase-reflog-fixes'Taylor Blau3-121/+215
Fix some bugs in the reflog messages when rebasing and changes the reflog messages of "rebase --apply" to match "rebase --merge" with the aim of making the reflog easier to parse. * pw/rebase-reflog-fixes: rebase: cleanup action handling rebase --abort: improve reflog message rebase --apply: make reflog messages match rebase --merge rebase --apply: respect GIT_REFLOG_ACTION rebase --merge: fix reflog message after skipping rebase --merge: fix reflog when continuing t3406: rework rebase reflog tests rebase --apply: remove duplicated code
2022-10-30Merge branch 'pw/rebase-keep-base-fixes'Taylor Blau6-89/+172
"git rebase --keep-base" used to discard the commits that are already cherry-picked to the upstream, even when "keep-base" meant that the base, on top of which the history is being rebuilt, does not yet include these cherry-picked commits. The --keep-base option now implies --reapply-cherry-picks and --no-fork-point options. * pw/rebase-keep-base-fixes: rebase --keep-base: imply --no-fork-point rebase --keep-base: imply --reapply-cherry-picks rebase: factor out branch_base calculation rebase: rename merge_base to branch_base rebase: store orig_head as a commit rebase: be stricter when reading state files containing oids t3416: set $EDITOR in subshell t3416: tighten two tests
2022-10-30Merge branch 'jh/trace2-timers-and-counters'Taylor Blau17-102/+1361
Two new facilities, "timer" and "counter", are introduced to the trace2 API. * jh/trace2-timers-and-counters: trace2: add global counter mechanism trace2: add stopwatch timers trace2: convert ctx.thread_name from strbuf to pointer trace2: improve thread-name documentation in the thread-context trace2: rename the thread_name argument to trace2_thread_start api-trace2.txt: elminate section describing the public trace2 API tr2tls: clarify TLS terminology trace2: use size_t alloc,nr_open_regions in tr2tls_thread_ctx
2022-10-30Merge branch 'tb/shortlog-group'Taylor Blau5-27/+113
"git shortlog" learned to group by the "format" string. * tb/shortlog-group: shortlog: implement `--group=committer` in terms of `--group=<format>` shortlog: implement `--group=author` in terms of `--group=<format>` shortlog: extract `shortlog_finish_setup()` shortlog: support arbitrary commit format `--group`s shortlog: extract `--group` fragment for translation shortlog: make trailer insertion a noop when appropriate shortlog: accept `--date`-related options
2022-10-30Merge branch 'rs/absorb-git-dir-simplify'Taylor Blau1-9/+3
Code simplification by using strvec_pushf() instead of building an argument in a separate strbuf. * rs/absorb-git-dir-simplify: submodule: use strvec_pushf() for --super-prefix
2022-10-30Merge branch 'jk/repack-tempfile-cleanup'Taylor Blau2-61/+45
The way "git repack" creared temporary files when it received a signal was prone to deadlocking, which has been corrected. * jk/repack-tempfile-cleanup: t7700: annotate cruft-pack failure with ok=sigpipe repack: drop remove_temporary_files() repack: use tempfiles for signal cleanup repack: expand error message for missing pack files repack: populate extension bits incrementally repack: convert "names" util bitfield to array
2022-10-30Merge branch 'sg/stable-docdep'Taylor Blau1-2/+3
Make sure generated dependency file is stably sorted to help developers debugging their build issues. * sg/stable-docdep: Documentation/build-docdep.perl: generate sorted output
2022-10-30Merge branch 'sd/doc-smtp-encryption'Taylor Blau1-3/+12
* sd/doc-smtp-encryption: docs: git-send-email: difference between ssl and tls smtp-encryption
2022-10-30Merge branch 'jz/patch-id'Taylor Blau9-99/+287
A new "--include-whitespace" option is added to "git patch-id", and existing bugs in the internal patch-id logic that did not match what "git patch-id" produces have been corrected. * jz/patch-id: builtin: patch-id: remove unused diff-tree prefix builtin: patch-id: add --verbatim as a command mode patch-id: fix patch-id for mode changes builtin: patch-id: fix patch-id with binary diffs patch-id: use stable patch-id for rebases patch-id: fix stable patch id for binary / header-only
2022-10-30glossary: add reachability bitmap descriptionPhilip Oakley1-0/+8
Describe the purpose of the reachability bitmap. Signed-off-by: Philip Oakley <philipoakley@iee.email> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-30glossary: add "commit graph" descriptionPhilip Oakley1-1/+16
Git has an additional "commit graph" capability that supplements the normal commit object's directed acyclic graph (DAG). The supplemental commit graph file is designed for speed of access. Describe the commit graph both from the normative DAG view point and from the commit graph file perspective. Also, clarify the link between the branch ref and branch tip by linking to the `ref` glossary entry, matching this commit graph entry. The commit-graph file is also distinguished by its hyphenation. Subsequent commit catches the few cases where the hyphenation of commit-graph was missing. Signed-off-by: Philip Oakley <philipoakley@iee.email> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-30doc: use 'object database' not ODB or abbreviationPhilip Oakley4-4/+4
The abbreviation 'ODB' is used in the technical documentation sections for commit-graph and parallel-checkout, along with an 'odb' option in `git-pack-redundant`, without expansion. Use 'object database' in full, in those entries. The text has not been reflowed to keep the changes minimal. While in the glossary for `object` terms, add the common`oid` abbreviation to its entry. Signed-off-by: Philip Oakley <philipoakley@iee.email> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-30doc: use "commit-graph" hyphenation consistentlyPhilip Oakley3-7/+7
Note, historical release notes have not been updated. Signed-off-by: Philip Oakley <philipoakley@iee.email> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-30archive-tar: report filter start error only onceRené Scharfe2-0/+8
A missing tar filter is reported by start_command() using error(), but also by its caller, write_tar_filter_archive(), using die(): $ git -c tar.invalid.command=foo archive --format=invalid HEAD error: cannot run foo: No such file or directory fatal: unable to start 'foo' filter: No such file or directory The second message contains all relevant information and even says that the failed command was intended to be used as a filter. Silence the first one because it's redundant. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-30replace and remove run_command_v_opt()René Scharfe13-75/+92
Replace the remaining calls of run_command_v_opt() with run_command() calls and explict struct child_process variables. This is more verbose, but not by much overall. The code becomes more flexible, e.g. it's easy to extend to conditionally add a new argument. Then remove the now unused function and its own flag names, simplifying the run-command API. Suggested-by: Jeff King <peff@peff.net> Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-30replace and remove run_command_v_opt_cd_env_tr2()René Scharfe2-19/+1
The convenience function run_command_v_opt_cd_env_tr2() has no external callers left. Inline it and remove it from the API. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-30replace and remove run_command_v_opt_tr2()René Scharfe3-9/+7
The convenience function run_command_v_opt_tr2() is only used by a single caller. Use struct child_process and run_command() directly instead and remove the underused function. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-30replace and remove run_command_v_opt_cd_env()René Scharfe3-10/+6
run_command_v_opt_cd_env() is only used in an example in a comment. Use the struct child_process member "env" and run_command() directly instead and then remove the unused convenience function. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-30use child_process members "args" and "env" directlyRené Scharfe13-206/+185
Build argument list and environment of child processes by using struct child_process and populating its members "args" and "env" directly instead of maintaining separate strvecs and letting run_command_v_opt() and friends populate these members. This is simpler, shorter and slightly more efficient. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-30use child_process member "args" instead of string array variableRené Scharfe6-44/+44
Use run_command() with a struct child_process variable and populate its "args" member directly instead of building a string array and passing it to run_command_v_opt(). This avoids the use of magic index numbers and makes simplifies the possible addition of more arguments in the future. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-30sequencer: simplify building argument list in do_exec()René Scharfe1-2/+1
Build child_argv during initialization, taking advantage of the C99 support for initialization expressions that are not compile time constants. This avoids the use of a magic index constant and is shorter and simpler. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-30bisect--helper: factor out do_bisect_run()René Scharfe1-11/+11
Deduplicate the code for reporting and starting the bisect run command by moving it to a short helper function. Use a string array instead of a strvec to prepare the arguments, for simplicity. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-30bisect: simplify building "checkout" argument listRené Scharfe1-5/+4
Reduce the scope of argv_checkout, which allows to fully build it during initialization. Use oid_to_hex() instead of oid_to_hex_r(), because that's simpler and using the static buffer of the former is just as safe as the old static argv_checkout. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-30am: simplify building "show" argument listRené Scharfe1-7/+4
Build the string array av during initialization, without any magic numbers or heap allocations. Not duplicating the result of oid_to_hex() is safe because run_command_v_opt() duplicates all arguments already. (It would even be safe if it didn't, but that's a different story.) Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-30run-command: fix return value commentRené Scharfe1-3/+2
483bbd4e4c (run-command: introduce child_process_init(), 2014-08-19) and 2d71608ec0 (run-command: factor out child_process_clear(), 2015-10-24) added help texts about child_process_init() and child_process_clear() without updating the immediately following documentation of return codes that only applied to the preexisting functions. 4c4066d95d (run-command: move doc to run-command.h, 2019-11-17) started to list the functions explicitly that this paragraph applies to, but still wrongly included child_process_init() and child_process_clear(). Remove their names from that list. Suggested-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-30merge: remove always-the-same "verbose" argumentsÆvar Arnfjörð Bjarmason1-8/+5
Simplify the code that builds the arguments for the "read-tree" invocation in reset_hard() and read_empty() to remove the "verbose" parameter. Before 172b6428d06 (do not overwrite untracked during merge from unborn branch, 2010-11-14) there was a "reset_hard()" function that would be called in two places, one of those passed a "verbose=1", the other a "verbose=0". After 172b6428d06 when read_empty() was split off from reset_hard() both of these functions only had one caller. The "verbose" in read_empty() would always be false, and the one in reset_hard() would always be true. There was never a good reason for the code to act this way, it happened because the read_empty() function was a copy/pasted and adjusted version of reset_hard(). Since we're no longer conditionally adding the "-v" parameter here (and we'd only add it for "reset_hard()" we'll be able to move to a simpler and safer run-command API in the subsequent commit. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Taylor Blau <me@ttaylorr.com>
2022-10-28adjust_shared_perm(): leave g+s alone when the group does not matterJunio C Hamano1-1/+7
Julien Moutinho reports that in an environment where directory does not have BSD group semantics and requires the g+s to be set (aka FORCE_DIR_SET_GID), but the system forbids chmod() to touch the g+s bit, adjust_shared_perm() fails even when the repository is for private use with perm = 0600, because we unconditionally try to set the g+s bit. When we grant extra access based on group membership (i.e. the directory has either g+r or g+w bit set), which group the directory and its contents are owned by matters. But otherwise (e.g. perm is set to 0600, in Julien's case), flipping g+s bit is not necessary. Reported-by: Julien Moutinho <julm+git@sourcephile.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-10-28The eighth batchJunio C Hamano1-15/+15
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-10-28Merge branch 'tb/diffstat-with-utf8-strwidth'Junio C Hamano2-18/+38
"git diff --stat" etc. were invented back when everything was ASCII and strlen() was a way to measure the display width of a string; adjust them to compute the display width assuming UTF-8 pathnames. * tb/diffstat-with-utf8-strwidth: diff: leave NEEDWORK notes in show_stats() function diff.c: use utf8_strwidth() to count display width
2022-10-28Merge branch 'mm/git-pm-try-catch-syntax-fix'Junio C Hamano3-20/+32
Fix a longstanding syntax error in Git.pm error codepath. * mm/git-pm-try-catch-syntax-fix: Git.pm: trust rev-parse to find bare repositories Git.pm: add semicolon after catch statement
2022-10-28Merge branch 'tb/remove-unused-pack-bitmap'Junio C Hamano2-0/+53
When creating a multi-pack bitmap, remove per-pack bitmap files unconditionally as they will never be consulted. * tb/remove-unused-pack-bitmap: builtin/repack.c: remove redundant pack-based bitmaps
2022-10-28Merge branch 'ab/doc-synopsis-and-cmd-usage'Junio C Hamano82-199/+594
The short-help text shown by "git cmd -h" and the synopsis text shown at the beginning of "git help cmd" have been made more consistent. * ab/doc-synopsis-and-cmd-usage: (34 commits) tests: assert consistent whitespace in -h output tests: start asserting that *.txt SYNOPSIS matches -h output doc txt & -h consistency: make "worktree" consistent worktree: define subcommand -h in terms of command -h reflog doc: list real subcommands up-front doc txt & -h consistency: make "commit" consistent doc txt & -h consistency: make "diff-tree" consistent doc txt & -h consistency: use "[<label>...]" for "zero or more" doc txt & -h consistency: make "annotate" consistent doc txt & -h consistency: make "stash" consistent doc txt & -h consistency: add missing options doc txt & -h consistency: use "git foo" form, not "git-foo" doc txt & -h consistency: make "bundle" consistent doc txt & -h consistency: make "read-tree" consistent doc txt & -h consistency: make "rerere" consistent doc txt & -h consistency: add missing options and labels doc txt & -h consistency: make output order consistent doc txt & -h consistency: add or fix optional "--" syntax doc txt & -h consistency: fix mismatching labels doc SYNOPSIS & -h: use "-" to separate words in labels, not "_" ...
2022-10-27The seventh batchJunio C Hamano1-0/+19
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-10-27Sync with 'maint'Junio C Hamano1-0/+13
2022-10-27Downmerge a bit more for 2.38.2Junio C Hamano1-0/+13
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-10-27Merge branch 'rs/archive-dedup-printf' into maint-2.38Junio C Hamano1-5/+3
Code simplification. * rs/archive-dedup-printf: archive: deduplicate verbose printing
2022-10-27Merge branch 'jh/struct-zero-init-with-older-clang' into maint-2.38Junio C Hamano1-0/+25
Work around older clang that warns against C99 zero initialization syntax for struct. * jh/struct-zero-init-with-older-clang: config.mak.dev: disable suggest braces error on old clang versions
2022-10-27Merge branch 'rs/use-fspathncmp' into maint-2.38Junio C Hamano1-3/+1
Code clean-up. * rs/use-fspathncmp: dir: use fspathncmp() in pl_hashmap_cmp()
2022-10-27Merge branch 'rj/branch-edit-desc-unborn' into maint-2.38Junio C Hamano2-2/+58
"git branch --edit-description" on an unborh branch misleadingly said that no such branch exists, which has been corrected. * rj/branch-edit-desc-unborn: branch: description for non-existent branch errors
2022-10-27Merge branch 'pw/remove-rebase-p-test' into maint-2.38Junio C Hamano1-8/+0
Remove outdated test. * pw/remove-rebase-p-test: t3435: remove redundant test case
2022-10-27Merge branch 'jc/use-of-uc-in-log-messages' into maint-2.38Junio C Hamano1-1/+3
Clarify that "the sentence after <area>: prefix does not begin with a capital letter" rule applies only to the commit title. * jc/use-of-uc-in-log-messages: SubmittingPatches: use usual capitalization in the log message body
2022-10-27Merge branch 'jc/tmp-objdir' into maint-2.38Junio C Hamano1-36/+4
The code to clean temporary object directories (used for quarantine) tried to remove them inside its signal handler, which was a no-no. * jc/tmp-objdir: tmp-objdir: skip clean up when handling a signal
2022-10-27Merge branch 'dd/document-runtime-prefix-better' into maint-2.38Junio C Hamano1-2/+3
Update comment in the Makefile about the RUNTIME_PREFIX config knob. * dd/document-runtime-prefix-better: Makefile: clarify runtime relative gitexecdir
2022-10-27Merge branch 'ab/unused-annotation' into maint-2.38Junio C Hamano1-1/+4
Compilation fix for ancient compilers. * ab/unused-annotation: git-compat-util.h: GCC deprecated message arg only in GCC 4.5+
2022-10-27Merge branch 'tb/midx-repack-ignore-cruft-packs' into maint-2.38Junio C Hamano3-6/+107
"git multi-pack-index repack/expire" used to repack unreachable cruft into a new pack, which have been corrected. cf. <63a1c3d4-eff3-af10-4263-058c88e74594@github.com> * tb/midx-repack-ignore-cruft-packs: midx.c: avoid cruft packs with non-zero `repack --batch-size` midx.c: remove unnecessary loop condition midx.c: replace `xcalloc()` with `CALLOC_ARRAY()` midx.c: avoid cruft packs with `repack --batch-size=0` midx.c: prevent `expire` from removing the cruft pack Documentation/git-multi-pack-index.txt: clarify expire behavior Documentation/git-multi-pack-index.txt: fix typo