git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [ANNOUNCE] Git v2.50.0-rc1
@ 2025-06-03 17:02 Junio C Hamano
  2025-06-03 22:33 ` [ANNOUNCE] Git v2.50.0-rc1 - Test Failed rsbecker
  0 siblings, 1 reply; 17+ messages in thread
From: Junio C Hamano @ 2025-06-03 17:02 UTC (permalink / raw)
  To: git; +Cc: Linux Kernel, git-packagers

A release candidate Git v2.50.0-rc1 is now available for testing at
the usual places.  It is comprised of 592 non-merge commits since
v2.49.0, contributed by 84 people, 33 of which are new faces [*].

The tarballs are found at:

    https://www.kernel.org/pub/software/scm/git/testing/

The following public repositories all have a copy of the
'v2.50.0-rc1' tag and the 'master' branch that the tag points at:

  url = https://git.kernel.org/pub/scm/git/git
  url = https://kernel.googlesource.com/pub/scm/git/git
  url = git://repo.or.cz/alt-git.git
  url = https://github.com/gitster/git

New contributors whose contributions weren't in v2.49.0 are as follows.
Welcome to the Git development community!

  Abhijeetsingh Meena, Aditya Garg, Alexander Ogorodov, Alex
  Mironov, Anthony Wang, Arnav Bhate, Brad Smith, Bruno De Fraine,
  Christian Fredrik Johnsen, Christian Reich, Collin Funk,
  Dmitry Goncharov, Jason Cho, Jensen Huang, Jitka Plesnikova,
  kawarimidoll, K Jayatheerth, Lidong Yan, Mahendra Dani, Mark
  Mentovai, Matt Hunter, Moumita Dhar, Nathan Royce, Niels
  Glodny, Ondřej Pohořelský, Peter Seiderer, piotrsiupa,
  R. Diez, Rodrigo Carvalho, SURA, Wonuk Kim, Zheng Yuting,
  and தமிழ் நேரம்.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Abhijeet Sonar, Adam Johnson, Ahelenia Ziemiańska, brian
  m. carlson, Carlo Marcelo Arenas Belón, Christian Couder,
  David Mandelberg, D. Ben Knoble, Dennis Ameling, Derrick Stolee,
  Đoàn Trần Công Danh, Elijah Newren, Eli Schwartz, Eric
  Sunshine, Fernando Ramos, Han Jiang, Jean-Noël Avila, Jeff King,
  Johannes Schindelin, Johannes Sixt, John Paul Adrian Glaubitz,
  Josh Heinrichs, Junio C Hamano, Justin Tobler, Karthik Nayak,
  Koji Nakamaru, Kristoffer Haugsbakk, Lucas Seiki Oshiro,
  Luke Shumaker, Mark Levedahl, Meet Soni, Olaf Hering, Oswald
  Buddenhagen, Patrick Steinhardt, Philippe Blain, Phillip Wood,
  Ramsay Jones, Randall S. Becker, René Scharfe, Sam James, Scott
  Chacon, Seyi Kuforiji, shejialuo, SZEDER Gábor, Taylor Blau,
  Todd Zullinger, Toon Claes, Torsten Bögershausen, Tuomas Ahola,
  Usman Akinyemi, and YOKOTA Hiroshi.

[*] We are counting not just the authorship contribution but issue
    reporting, mentoring, helping and reviewing that are recorded in
    the commit trailers.

----------------------------------------------------------------

Git v2.50 Release Notes (draft)
===============================

UI, Workflows & Features
------------------------

 * A post-processing filter for "diff --raw" output has been
   introduced.

 * "git repack" learned "--combine-cruft-below-size" option that
   controls how cruft-packs are combined.

 * TCP keepalive behaviour on http transports can now be configured by
   calling cURL library.

 * Incrementally updating multi-pack index files.

 * "git reflog" learns "drop" subcommand, that discards the entire
   reflog data for a ref.

 * A new userdiff driver for ".ini" format configuration files has
   been added.

 * The job to coalesce loose objects into packfiles in "git
   maintenance" now has configurable batch size.

 * "git clone" still gave the message about the default branch name;
   this message has been turned into an advice message that can be
   turned off.

 * "git rev-list" learns machine-parsable output format that delimits
   each field with NUL.

 * "git maintenance" learns a new task to expire reflog entries.

 * Auth-related (and unrelated) error handling in send-email has been
   made more robust.

 * Updating multiple references have only been possible in all-or-none
   fashion with transactions, but it can be more efficient to batch
   multiple updates even when some of them are allowed to fail in a
   best-effort manner.  A new "best effort batches of updates" mode
   has been introduced.

 * "git help --build-options" reports SHA-1 and SHA-256 backends used
   in the build.

 * "git cat-file --batch" and friends learned to allow "--filter=" to
   omit certain objects, just like the transport layer does.

 * "git blame --porcelain" mode now talks about unblamable lines and
   lines that are blamed to an ignored commit.

 * The build procedure installs bash (but not zsh) completion script.

 * send-email has been updated to work better with Outlook's smtp server.

 * "git diff --minimal" used to give non-minimal output when its
   optimization kicked in, which has been disabled.

 * "git index-pack --fix-thin" used to abort to prevent a cycle in
   delta chains from forming in a corner case even when there is no
   such cycle.

 * Make repository clean-up tasks "gc" can do available to "git
   maintenance" front-end.

 * Bundle-URI feature did not use refs recorded in the bundle other
   than normal branches as anchoring points to optimize the follow-up
   fetch during "git clone"; now it is told to utilize all.

 * The `send-email` documentation has been updated with OAuth2.0
   related examples.

 * Two of the "scalar" subcommands that add a repository that hasn't
   been under "scalar"'s control are taught an option not to enable the
   scheduled maintenance on it.

 * The userdiff pattern for shell scripts has been updated to cope
   with more bash-isms.

 * "git merge-tree" learned an option to see if it resolves cleanly
   without actually creating a result.

 * The commit title in the "rebase -i" todo file are now prefixed with
   '#', just like a merge commit being replayed.

 * "git receive-pack" optionally learns not to care about connectivity
   check, which can be useful when the repository arranges to ensure
   connectivity by some other means.

 * "git notes --help" documentation updates.


Performance, Internal Implementation, Development Support etc.
--------------------------------------------------------------

 * A handful of built-in command implementations have been rewritten
   to use the repository instance supplied by git.c:run_builtin(), its
   caller.

 * "git fsck" becomes more careful when checking the refs.

 * "git fast-export | git fast-import" learns to deal with commit and
   tag objects with embedded signatures a bit better.  This is highly
   experimental and the format of the data stream may change in the
   future without compatibility guarantees.

 * The code paths to check whether a refname X is available (by seeing
   if another ref X/Y exists, etc.) have been optimized.

 * First step of deprecating and removing merge-recursive.

 * In protocol v2 where the refs advertisement is constrained, we try
   to tell the server side not to limit the advertisement when there
   is no specific need to, which has been the source of confusion and
   recent bugs.  Revamp the logic to simplify.

 * Update meson based build procedure for breaking changes support.

 * Enable -Wunreachable-code for developer builds.

 * Ensure what we write in assert() does not have side effects,
   and introduce ASSERT() macro to mark those that cannot be
   mechanically checked for lack of side effects.

 * Give more meaningful error return values from block writer layer of
   the reftable ref-API backend.

 * Make the code in reftable library less reliant on the service
   routines it used to borrow from Git proper, to make it easier to
   use by external users of the library.

 * CI update.

 * The object layer has been updated to take an explicit repository
   instance as a parameter in more code paths.

 * Some warnings from "-Wsign-compare" for builtin/rm.c have been
   squelched.

 * A few traditional unit tests have been rewritten to use the clar
   framework.

 * Some warnings from "-Wsign-compare" for pathspec.c have been
   squelched.

 * "make test" used to have a hard dependency on (basic) Perl; tests
   have been rewritten help environment with NO_PERL test the build as
   much as possible.

 * Remove remnants of the recursive merge strategy backend, which was
   superseded by the ort merge strategy.

 * Optimize the code to dedup references recorded in a bundle file.

 * Update parse-options API to catch mistakes to pass address of an
   integral variable of a wrong type/size.

 * Since a call to repo_config() can be called with repo set to NULL
   these days, a command that is marked as RUN_SETUP in the builtin
   command table does not have to check repo with NULL before making
   the call.

 * Overhaul of the reftable API.

 * Reduce requirement for Perl in our documentation build and a few
   scripts.

 * The build procedure based on Meson learned to drive the
   benchmarking tests.

 * Code clean-up for meson-based build infrastructure.

 * Add an equivalent to "make hdr-check" target to meson based builds.

 * Further code clean-up in the object-store layer.

 * Build performance fix.

 * Teach "git send-email" to also consult `hostname -f` for mail
   domain to compute the identity given to SMTP servers.

 * The dependency on the_repository variable has been reduced from the
   code paths in "git replay".

 * Support to create a loose object file with unknown object type has
   been dropped.

 * The code path to access the "packed-refs" file while "fsck" is
   taught to mmap the file, instead of reading the whole file in the
   memory.

 * Assorted fixes for issues found with CodeQL.

 * Remove the leftover hints to the test framework to mark tests that
   do not pass the leak checker tests, as they should no longer be
   needed.

 * When a stale .midx file refers to .pack files that no longer exist,
   we ended up checking for these non-existent files repeatedly, which
   has been optimized by memoizing the non-existence.


Fixes since v2.49
-----------------

 * The refname exclusion logic in the packed-ref backend has been
   broken for some time, which confused upload-pack to advertise
   different set of refs.  This has been corrected.
   (merge 10e8a9352b tb/refs-exclude-fixes later to maint).

 * The merge-recursive and merge-ort machinery crashed in corner cases
   when certain renames are involved.
   (merge 3adba40858 en/merge-process-renames-crash-fix later to maint).

 * Certain "cruft" objects would have never been refreshed when there
   are multiple cruft packs in the repository, which has been
   corrected.
   (merge 08f612ba70 tb/multi-cruft-pack-refresh-fix later to maint).

 * The xdiff code on 32-bit platform misbehaved when an insanely large
   context size is given, which has been corrected.
   (merge d39e28e68c rs/xdiff-context-length-fix later to maint).

 * GitHub Actions CI switched on a CI/CD variable that does not exist
   when choosing what packages to install etc., which has been
   corrected.
   (merge ee89f7c79d kn/ci-meson-check-build-docs-fix later to maint).

 * Using "git name-rev --stdin" as an example, improve the framework to
   prepare tests to pretend to be in the future where the breaking
   changes have already happened.
   (merge de3dec1187 jc/name-rev-stdin later to maint).

 * An earlier code refactoring of the hash machinery missed a few
   required calls to init_fn.
   (merge d39f04b638 jh/hash-init-fixes later to maint).

 * A documentation page was left out from formatting and installation,
   which has been corrected.
   (merge ae85116f18 pw/build-breaking-changes-doc later to maint).

 * The bash command line completion script (in contrib/) has been
   updated to cope with remote repository nicknames with slashes in
   them.
   (merge 778d2f1760 dm/completion-remote-names-fix later to maint).

 * "Dubious ownership" checks on Windows has been tightened up.
   (merge 5bb88e89ef js/mingw-admins-are-special later to maint).

 * Layout configuration in vimdiff backend didn't work as advertised,
   which has been corrected.
   (merge 93bab2d04b fr/vimdiff-layout-fixes later to maint).

 * Fix our use of zlib corner cases.
   (merge 1cb2f293f5 jk/zlib-inflate-fixes later to maint).

 * Fix lockfile contention in reftable code on Windows.
   (merge 0a3dceabf1 ps/mingw-creat-excl-fix later to maint).

 * "git-merge-file" documentation source, which has lines that look
   like conflict markers, lacked custom conflict marker size defined,
   which has been corrected..
   (merge d3b5832381 pw/custom-conflict-marker-size-for-merge-related-docs later to maint).

 * Squelch false-positive from sparse.
   (merge da87b58014 dd/sparse-glibc-workaround later to maint).

 * Adjust to the deprecation of use of Ubuntu 20.04 GitHub Actions CI.
   (merge 832d9f6d0b js/ci-github-update-ubuntu later to maint).

 * Work around CI breakage due to fedora base image getting updated.
   (merge 8a471a663b js/ci-fedora-gawk later to maint).

 * A ref transaction corner case fix.
   (merge b9fadeead7 jt/ref-transaction-abort-fix later to maint).

 * Random build fixes.
   (merge 85e1d6819f ps/misc-build-fixes later to maint).

 * "git fetch [<remote>]" with only the configured fetch refspec
   should be the only thing to update refs/remotes/<remote>/HEAD,
   but the code was overly eager to do so in other cases.

 * Incorrect sorting of refs with bytes with high-bit set on platforms
   with signed char led to a BUG, which has been corrected.

 * "make perf" fixes.
   (merge 1665f12fa0 pb/perf-test-fixes later to maint).

 * Doc mark-up updates.
   (merge 5a5565ec44 ja/doc-reset-mv-rm-markup-updates later to maint).

 * Work around false positive from CodeQL checker.
   (merge 0f558141ed js/range-check-codeql-workaround later to maint).

 * "git log --{left,right}-only A...B", when A and B does not share
   any common ancestor, now behaves as expected.
   (merge e7ef4be7c2 mh/left-right-limited later to maint).

 * Document the convention to disable hooks altogether by setting the
   hooksPath configuration variable to /dev/null.
   (merge 1b2eee94f1 ds/doc-disable-hooks later to maint).

 * Make sure outage of third-party sites that supply P4, Git-LFS, and
   JGit we use for testing would not prevent our CI jobs from running
   at all.

 * Various build tweaks, including CSPRNG selection on some platforms.
   (merge cdda67de03 rj/build-tweaks later to maint).

 * Developer support fix..
   (merge 32b74b9809 js/git-perf-env-override later to maint).

 * Fix for scheduled maintenance tasks on platforms using launchctl.
   (merge eb2d7beb0e jh/gc-launchctl-schedule-fix later to maint).

 * Update to arm64 Windows port.
   (merge 436a42215e js/windows-arm64 later to maint).

 * hashmap API clean-up to ensure hashmap_clear() leaves a cleared map
   in a reusable state.
   (merge 9481877de3 en/hashmap-clear-fix later to maint).

 * "git mv a a/b dst" would ask to move the directory 'a' itself, as
   well as its contents, in a single destination directory, which is
   a contradicting request that is impossible to satisfy. This case is
   now detected and the command errors out.
   (merge 974f0d4664 ps/mv-contradiction-fix later to maint).

 * Further refinement on CI messages when an optional external
   software is unavailable (e.g. due to third-party service outage).
   (merge 956acbefbd jc/ci-skip-unavailable-external-software later to maint).

 * Test result aggregation did not work in Meson based CI jobs.
   (merge bd38ed5be1 ps/ci-test-aggreg-fix-for-meson later to maint).

 * Code clean-up around stale CI elements and building with Visual Studio.
   (merge a7b060f67f js/ci-buildsystems-cleanup later to maint).

 * "git add 'f?o'" did not add 'foo' if 'f?o', an unusual pathname,
   also existed on the working tree, which has been corrected.
   (merge ec727e189c kj/glob-path-with-special-char later to maint).

 * The fallback implementation of open_nofollow() depended on
   open("symlink", O_NOFOLLOW) to set errno to ELOOP, but a few BSD
   derived systems use different errno, which has been worked around.
   (merge f47bcc3413 cf/wrapper-bsd-eloop later to maint).

 * Use-after-free fix in the sequencer.
   (merge 5dbaec628d pw/sequencer-reflog-use-after-free later to maint).

 * win+Meson CI pipeline, unlike other pipelines for Windows,
   used to build artifacts in developer mode, which has been changed to
   build them in release mode for consistency.
   (merge 184abdcf05 js/ci-build-win-in-release-mode later to maint).

 * CI settings at GitLab has been updated to run MSVC based Meson job
   automatically (as opposed to be done only upon manual request).
   (merge 6389579b2f ps/ci-gitlab-enable-msvc-meson-job later to maint).

 * "git apply" and "git add -i/-p" code paths no longer unnecessarily
   expand sparse-index while working.
   (merge ecf9ba20e3 ds/sparse-apply-add-p later to maint).

 * Avoid adding directory path to a sparse-index tree entries to the
   name-hash, since they would bloat the hashtable without anybody
   querying for them.  This was done already for a single threaded
   part of the code, but now the multi-threaded code also does the
   same.
   (merge 2e60aabc75 am/sparse-index-name-hash-fix later to maint).

 * Recent versions of Perl started warning against "! A =~ /pattern/"
   which does not negate the result of the matching.  As it turns out
   that the problematic function is not even called, it was removed.
   (merge 67cae845d2 op/cvsserver-perl-warning later to maint).

 * "git apply --index/--cached" when applying a deletion patch in
   reverse failed to give the mode bits of the path "removed" by the
   patch to the file it creates, which has been corrected.

 * "git verify-refs" (and hence "git fsck --reference") started
   erroring out in a repository in which secondary worktrees were
   prepared with Git 2.43 or lower.
   (merge d5b3c38b8a sj/ref-contents-check-fix later to maint).

 * Update total_ram() functrion on BSD variants.

 * Update online_cpus() functrion on BSD variants.

 * Other code cleanup, docfix, build fix, etc.
   (merge 227c4f33a0 ja/doc-block-delimiter-markup-fix later to maint).
   (merge 2bfd3b3685 ab/decorate-code-cleanup later to maint).
   (merge 5337daddc7 am/dir-dedup-decl-of-repository later to maint).
   (merge 554051d691 en/diff-rename-follow-fix later to maint).
   (merge a18c18b470 en/random-cleanups later to maint).
   (merge 5af21c9acb hj/doc-rev-list-ancestry-fix later to maint).
   (merge 26d76ca284 aj/doc-restore-p-update later to maint).
   (merge 2c0dcb9754 cc/lop-remote later to maint).
   (merge 7b399322a2 ja/doc-branch-markup later to maint).
   (merge ee434e1807 pw/doc-pack-refs-markup-fix later to maint).
   (merge c000918eb7 tb/bitamp-typofix later to maint).
   (merge fa8cd29676 js/imap-send-peer-cert-verify later to maint).
   (merge 98b423bc1c rs/clear-commit-marks-simplify later to maint).
   (merge 133d065dd6 ta/bulk-checkin-signed-compare-false-warning-fix later to maint).
   (merge d2827dc31e es/meson-build-skip-coccinelle later to maint).
   (merge ee8edb7156 dk/vimdiff-doc-fix later to maint).
   (merge 107d889303 md/t1403-path-is-file later to maint).
   (merge abd4192b07 js/comma-semicolon-confusion later to maint).
   (merge 27b7264206 ab/environment-clean-header later to maint).
   (merge ff4a749354 as/typofix-in-env-h-header later to maint).
   (merge 86eef3541e az/tighten-string-array-constness later to maint).
   (merge 25292c301d lo/remove-log-reencode-from-rev-info later to maint).
   (merge 1aa50636fd jk/p5332-testfix later to maint).
   (merge 42cf4ac552 ps/ci-resurrect-p4-on-github later to maint).
   (merge 104add8368 js/diff-codeql-false-positive-workaround later to maint).
   (merge f62977b93c en/get-tree-entry-doc later to maint).
   (merge e5dd0a05ed ly/am-split-stgit-leakfix later to maint).
   (merge bac220e154 rc/t1001-test-path-is-file later to maint).
   (merge 91db6c735d ly/reftable-writer-leakfix later to maint).
   (merge 20e4e9ad0b jc/doc-synopsis-option-markup later to maint).
   (merge cddcee7f64 es/meson-configure-build-options-fix later to maint).
   (merge cea9f55f00 wk/sparse-checkout-doc-fix later to maint).

----------------------------------------------------------------

Changes since v2.49.0 are as follows:

Abhijeet Sonar (1):
      environment: fix typo: 'setup_git_directory_gently'

Abhijeetsingh Meena (1):
      dir.h: remove duplicate forward declaration of struct repository

Adam Johnson (1):
      doc: restore: remove note on --patch w/ pathspecs

Aditya Garg (6):
      send-email: retrieve Message-ID from outlook SMTP server
      send-email: add --[no-]outlook-id-fix option
      send-mail: improve checks for valid_fqdn
      docs: improve send-email documentation
      docs: add credential helper for outlook and gmail in OAuth list of helpers
      send-email: try to get fqdn by running hostname -f on Linux and macOS

Ahelenia Ziemiańska (1):
      global: mark usage strings and string tables const

Alex Mironov (1):
      name-hash: don't add sparse directories in threaded lazy init

Alexander Ogorodov (1):
      gitk: do not hard-code color of search results in commit list

Anthony Wang (1):
      t9811: be more precise to check importing of tags

Arnav Bhate (4):
      decorate: fix sign comparison warnings
      rm: fix sign comparison warnings
      pathspec: fix sign comparison warnings
      environment.h: remove unused variables

Brad Smith (2):
      thread-utils.c: detect online CPU count on OpenBSD / NetBSD
      builtin/gc: correct physical memory detection for OpenBSD / NetBSD

Carlo Marcelo Arenas Belón (1):
      reftable: make REFTABLE_UNUSED C99 compatible

Christian Couder (5):
      fast-export: fix missing whitespace after switch
      t5710: arrange to delete the client before cloning
      promisor-remote: fix segfault when remote URL is missing
      promisor-remote: fix possible issue when no URL is advertised
      promisor-remote: compare remote names case sensitively

Christian Fredrik Johnsen (1):
      refs: fix duplicated word in comment

Collin Funk (1):
      wrapper: NetBSD gives EFTYPE and FreeBSD gives EMFILE where POSIX uses ELOOP

D. Ben Knoble (1):
      vimdiff: clarify the sigil used for marking the buffer to save

David Mandelberg (2):
      completion: add helper to count path components
      completion: fix bugs with slashes in remote names

Dennis Ameling (2):
      bswap.h: add support for built-in bswap functions
      config.mak.uname: add support for clangarm64

Derrick Stolee (15):
      maintenance: force progress/no-quiet to children
      maintenance: add loose-objects.batchSize config
      docs: document core.hooksPath=/dev/null
      test-tool: add pack-deltas helper
      t5309: create failing test for 'git index-pack'
      index-pack: allow revisiting REF_DELTA chains
      scalar: customize register_dir()'s behavior
      scalar register: add --no-maintenance option
      scalar clone: add --no-maintenance option
      scalar reconfigure: add --maintenance=<mode> option
      scalar reconfigure: improve --maintenance docs
      apply: integrate with the sparse index
      git add: make -p/-i aware of sparse index
      reset: integrate sparse index with --patch
      p2000: add performance test for patch-mode commands

Dmitry Goncharov (1):
      t6423: add a testcase causing a failed assertion in process_renames

Eli Schwartz (9):
      meson: fix perl detection when docs are enabled, but perl bindings aren't
      meson: disable coccinelle configuration when building from a tarball
      meson: simplify and parameterize various standard function checks
      meson: check for getpagesize before using it
      meson: do a full usage-based compile check for sysinfo
      meson: add a couple missing networking dependencies
      meson: fix typo in function check that prevented checking for hstrerror
      meson: only check for missing networking syms on non-Windows; add compat impls
      meson: reformat default options to workaround bug in `meson configure`

Elijah Newren (29):
      merge-ort: fix slightly overzealous assertion for rename-to-self
      diffcore-rename: fix BUG when break detection and --follow used together
      stash: remove merge-recursive.h include
      t6423: fix a comment that accidentally reversed two commits
      t7615: be more explicit about diff algorithm used
      merge-ort: fix accidental strset<->strintmap
      merge-ort: remove extraneous word in comment
      merge-ort: add new merge_ort_generic() function
      merge-ort: allow rename detection to be disabled
      merge-ort: support having merge verbosity be set to 0
      merge-ort: fix merge.directoryRenames=false
      am: switch from merge_recursive_generic() to merge_ort_generic()
      git-compat-util: introduce ASSERT() macro
      ci: add build checking for side-effects in assert() calls
      treewide: replace assert() with ASSERT() in special cases
      checkout: replace merge_trees() with merge_ort_nonrecursive()
      builtin/merge-recursive: switch to using merge_ort_generic()
      merge-ort: enable diff-algorithms other than histogram
      sequencer: switch non-recursive merges over to ort
      merge, sequencer: switch recursive merges over to ort
      merge-recursive.[ch]: thoroughly debug these
      tests: remove GIT_TEST_MERGE_ALGORITHM and test_expect_merge_algorithm
      builtin/{merge,rebase,revert}: remove GIT_TEST_MERGE_ALGORITHM
      hashmap: ensure hashmaps are reusable after hashmap_clear()
      tree-walk.h: fix incorrect API comment
      replay: replace the_repository with repo parameter passed to cmd_replay ()
      sequencer: make it clearer that commit descriptions are just comments
      merge-ort: add a new mergeability_only option
      merge-tree: add a new --quiet flag

Fernando Ramos (2):
      mergetools: vimdiff: fix layout where REMOTE is the target
      mergetools: vimdiff: add tests for layout with REMOTE as the target

Han Jiang (1):
      doc: add missing commit C to the graph for --ancestry-path=H D..M

Jean-Noël Avila (20):
      doc: add a blank line around block delimiters
      completion: take into account the formatting backticks for options
      doc: apply new format to git-branch man page
      doc: convert git-reset to new documentation format
      doc: fix synopsis analysis logic
      doc: convert git-rm to new documentation format
      doc: move synopsis git-mv commands in the synopsis section
      doc: convert git-mv to new documentation format
      doc: fix asciidoctor synopsis processing of triple-dots
      doc: add markup for characters in Guidelines
      git-var doc: fix usage of $ENV_VAR vs ENV_VAR
      doc: convert git-checkout manpage to new style
      doc: convert git-merge manpage to new style
      doc: convert merge options to new synopsis format
      doc: merge-options.adoc remove a misleading double negation
      doc: convert merge strategies to synopsis format
      doc: switch merge config description to new synopsis format
      doc: convert git-mergetool manpage to new synopsis style
      doc: convert git-mergetool options to new synopsis style
      doc: convert git-switch manpage to new synopsis style

Jeff King (41):
      loose_object_info(): BUG() on inflating content with unknown type
      unpack_loose_header(): simplify next_out assignment
      unpack_loose_header(): report headers without NUL as "bad"
      unpack_loose_header(): fix infinite loop on broken zlib input
      git_inflate(): skip zlib_post_call() sanity check on Z_NEED_DICT
      unpack_loose_header(): avoid numeric comparison of zlib status
      unpack_loose_rest(): avoid numeric comparison of zlib status
      unpack_loose_rest(): never clean up zstream
      unpack_loose_rest(): simplify error handling
      unpack_loose_rest(): rewrite return handling for clarity
      t5702: fix typo in test name
      t5516: prefer "oid" to "sha1" in some test titles
      t5516: drop NEEDSWORK about v2 reachability behavior
      t5516: beef up exact-oid ref prefixes test
      refspec_ref_prefixes(): clean up refspec_item logic
      fetch: ask server to advertise HEAD for config-less fetch
      fetch: stop protecting additions to ref-prefix list
      fetch: avoid ls-refs only to ask for HEAD symref update
      fetch: use ref prefix list to skip ls-refs
      run-command: use errno to check for sigfillset() error
      config.mak.dev: enable -Wunreachable-code
      fetch: only respect followRemoteHEAD with configured refspecs
      fetch: don't ask for remote HEAD if followRemoteHEAD is "never"
      fetch: make set_head() call easier to read
      p5332: drop "+" from --stdin-packs input
      oidmap: rename oidmap_free() to oidmap_clear()
      oidmap: add size function
      raw_object_store: drop extra pointer to replace_map
      object-file.h: fix typo in variable declaration
      cat-file: make --allow-unknown-type a noop
      object-file: drop OBJECT_INFO_ALLOW_UNKNOWN_TYPE flag
      cat-file: use type enum instead of buffer for -t option
      oid_object_info_convert(): stop using string for object type
      fsck: stop using object_info->type_name strbuf
      oid_object_info(): drop type_name strbuf
      t/helper: add zlib test-tool
      t: add lib-loose.sh
      hash-object: stop allowing unknown types
      hash-object: merge HASH_* and INDEX_* flags
      hash-object: handle --literally with OPT_NEGBIT
      object-file: drop support for writing objects with unknown types

Jensen Huang (1):
      index-pack, unpack-objects: restore missing ->init_fn

Johannes Schindelin (38):
      t3650: document bug when directory renames are turned off
      mingw: special-case administrators even more
      test-tool path-utils: support debugging "dubious ownership" issues
      imap-send: explicitly verify the peer certificate
      remote-curl: avoid using the comma operator unnecessarily
      rebase: avoid using the comma operator unnecessarily
      kwset: avoid using the comma operator unnecessarily
      clar: avoid using the comma operator unnecessarily
      xdiff: avoid using the comma operator unnecessarily
      diff-delta: avoid using the comma operator
      wildmatch: avoid using of the comma operator
      compat/regex: explicitly mark intentional use of the comma operator
      clang: warn when the comma operator is used
      detect-compiler: detect clang even if it found CUDA
      read-cache: check range before dereferencing an array element
      ci: upgrade `sparse` to supported build agents
      ci(pedantic): ensure that awk is installed
      perf: do allow `GIT_PERF_*` to be overridden again
      mingw: do not use nedmalloc on Windows/ARM64
      msvc: do handle builds on Windows/ARM64
      mingw(arm64): do move the `/etc/git*` location
      max_tree_depth: lower it for clangarm64 on Windows
      diff: check range before dereferencing an array element
      ci(win+Meson): build in Release mode
      ci: stop linking the `prove` cache
      contrib/buildsystems: drop support for building . vcproj/.vcxproj files
      config.mak.uname: drop the `vcxproj` target
      commit: simplify code
      fetch: carefully clear local variable's address after use
      commit-graph: avoid malloc'ing a local variable
      upload-pack: rename `enum` to reflect the operation
      has_dir_name(): make code more obvious
      fetch: avoid unnecessary work when there is no current branch
      Avoid redundant conditions
      trace2: avoid "futile conditional"
      commit-graph: avoid using stale stack addresses
      bundle-uri: avoid using undefined output of `sscanf()`
      sequencer: stop pretending that an assignment is a condition

Johannes Sixt (4):
      git-gui: po/README: update repository location and maintainer
      gitk: adjust indentation to match the style used in this script
      git-gui: treat the message template file as a built file
      gitk: place file name arguments after options in msgfmt call

Josh Heinrichs (1):
      maintenance: fix launchctl calendar intervals

Junio C Hamano (39):
      t: document test_lazy_prereq
      t: extend test_lazy_prereq
      t: introduce WITH_BREAKING_CHANGES prerequisite
      t6120: avoid hiding "git" exit status
      t6120: further modernize
      name-rev: remove "--stdin" support
      git-compat-util: add NOT_CONSTANT macro and use it in atfork_prepare()
      Start 2.50 cycle (batch #1)
      The second batch
      The third batch
      The fourth batch
      The fifth batch
      The sixth batch
      The seventh batch
      t9811: fix misconversion of tests
      The eighth batch
      ci: skip unavailable external software
      CI updates
      The ninth batch
      ci: update the message for unavailble third-party software
      ci: download JGit from maven, not eclipse.org
      The tenth batch
      The eleventh batch
      t6011: fix misconversion from perl to sed
      The twelfth batch
      git-daemon doc: update mark-up of synopsis option descriptions
      git-{var,write-tree} docs: update mark-up of synopsis option descriptions
      git-verify-* doc: update mark-up of synopsis option descriptions
      The thirteenth batch
      The fourteenth batch
      The fifteenth batch
      The sixteenth batch
      The seventeenth batch
      The eighteenth batch
      Git 2.50-rc0
      fast-export: --signed-commits is experimental
      A bit more topics for -rc1
      A bit more before -rc1
      Git 2.50-rc1

Justin Tobler (17):
      diff: return diff_filepair from diff queue helpers
      diff: add option to skip resolving diff statuses
      builtin: introduce diff-pairs command
      builtin/diff-pairs: allow explicit diff queue flush
      rev-list: inline `show_object_with_name()` in `show_object()`
      rev-list: refactor early option parsing
      rev-list: support delimiting objects with NUL bytes
      rev-list: support NUL-delimited --boundary option
      rev-list: support NUL-delimited --missing option
      builtin/fetch: avoid aborting closed reference transaction
      remote: allow `guess_remote_head()` to suppress advice
      builtin/clone: suppress unexpected default branch advice
      advice: allow disabling default branch name advice
      help: include SHA implementation in version info
      help: include unsafe SHA-1 build info in version
      t5410: test receive-pack connectivity check
      builtin/receive-pack: add option to skip connectivity check

K Jayatheerth (4):
      dir.c: literal match with wildcard in pathspec should still glob
      docs: remove unused mentoring mailing list reference
      docs: clarify cmd_psuh signature and explain UNUSED macro
      docs: replace git_config to repo_config

Karthik Nayak (21):
      reflog: improve error for when reflog is not found
      reflog: implement subcommand to drop reflogs
      ci/github: add missing 'CI_JOB_IMAGE' env variable
      blame: print unblamable and ignored commits in porcelain mode
      refs/files: remove redundant check in split_symref_update()
      refs: move duplicate refname update check to generic layer
      refs/files: remove duplicate duplicates check
      refs/reftable: extract code from the transaction preparation
      refs: introduce enum-based transaction error types
      refs: implement batch reference update support
      refs: support rejection in batch updates during F/D checks
      update-ref: add --batch-updates flag for stdin mode
      t6020: test for duplicate refnames in bundle creation
      bundle: fix non-linear performance scaling with refs
      ci/github: install git before checking out the repository
      coccinelle: meson: rename variables to be more specific
      meson: move headers definition from 'contrib/coccinelle'
      meson: rename 'third_party_sources' to 'third_party_excludes'
      meson: add support for 'hdr-check'
      makefile/meson: add 'check-headers' as alias for 'hdr-check'
      t: remove unexpected SANITIZE_LEAK variables

Kristoffer Haugsbakk (12):
      doc: reflog: fix `drop` subheading
      doc: branch: fix inline-verbatim
      doc: stripspace: mention where the default comes from
      doc: config: mention core.commentChar on commit.cleanup
      doc: notes: split out options with negated forms
      doc: notes: rework --[no-]stripspace
      doc: notes: remove stripspace discussion from other options
      doc: notes: clearly state that --stripspace is the default
      doc: notes: point out copy --stdin use with argv
      doc: notes: treat --stdin equally between copy/remove
      doc: notes: use stuck form throughout
      doc: column: fix blank lines around block delimiters

Lidong Yan (7):
      reftable/writer: fix memory leak when `padded_write()` fails
      reftable/writer: fix memory leak when `writer_index_hash()` fails
      builtin/am: fix memory leak in `split_mail_stgit_series`
      pack-bitmap: fix memory leak if `load_bitmap_entries_v1` failed
      mailinfo: fix potential memory leak if `decode_header` failed
      sequencer: fix memory leak if `todo_list_rearrange_squash()` failed
      commit-graph: fix memory leak when `fill_oids_from_packs()` fails

Lucas Seiki Oshiro (4):
      userdiff: add builtin driver for INI files
      revision: remove log_reencode field from rev_info
      json-writer: add docstrings to jw_* functions
      json-writer: describe the usage of jw_* functions

Luke Shumaker (5):
      git-fast-import.adoc: add missing LF in the BNF
      fast-export: rename --signed-tags='warn' to 'warn-verbatim'
      git-fast-export.adoc: clarify why 'verbatim' may not be a good idea
      fast-export: do not modify memory from get_commit_buffer
      fast-export, fast-import: add support for signed-commits

Mahendra Dani (1):
      t1403: verify that path exists and is a file

Mark Levedahl (3):
      gitk: override $PATH search only on Windows
      gitk: _search_exe is no longer needed
      gitk: limit PATH search to bare executable names

Mark Mentovai (2):
      t4129: test that git apply warns for unexpected mode changes
      apply: set file mode when --reverse creates a deleted file

Matt Hunter (1):
      revision: fix --left/right-only use with unrelated histories

Meet Soni (3):
      reftable: propagate specific error codes in block_writer_add()
      reftable: adapt writer_add_record() to propagate block_writer_add() errors
      reftable: adapt write_object_record() to propagate block_writer_add() errors

Moumita Dhar (1):
      userdiff: extend Bash pattern to cover more shell function forms

Niels Glodny (1):
      xdiff: disable cleanup_records heuristic with --minimal

Ondřej Pohořelský (1):
      cvsserver: remove unused escapeRefName function

Oswald Buddenhagen (1):
      git-gui: heed core.commentChar/commentString

Patrick Steinhardt (172):
      reftable/stack: stop using `read_in_full()`
      reftable/stack: stop using `write_in_full()`
      reftable/blocksource: stop using `xmmap()`
      reftable/record: stop using `COPY_ARRAY()`
      reftable/record: stop using `BUG()` in `reftable_record_init()`
      reftable/record: don't `BUG()` in `reftable_record_cmp()`
      reftable: stop using `BUG()` in trivial cases
      reftable/basics: stop using `st_mult()` in array allocators
      reftable/basics: provide wrappers for big endian conversion
      reftable/reader: stop using `ARRAY_SIZE()` macro
      reftable/system: introduce `reftable_rand()`
      reftable/stack: stop using `sleep_millisec()`
      reftable/basics: stop using `SWAP()` macro
      reftable/basics: introduce `REFTABLE_UNUSED` annotation
      compat/mingw: split out POSIX-related bits
      git-compat-util.h: split out POSIX-emulating bits
      reftable: decouple from Git codebase by pulling in "compat/posix.h"
      Makefile: skip reftable library for Coccinelle
      reftable: ignore file-in-use errors when unlink(3p) fails on Windows
      csum-file: stop depending on `the_repository`
      object: stop depending on `the_repository`
      pack-write: stop depending on `the_repository` and `the_hash_algo`
      environment: move access to "core.bigFileThreshold" into repo settings
      pack-check: stop depending on `the_repository`
      pack-revindex: stop depending on `the_repository`
      pack-bitmap-write: stop depending on `the_repository`
      object-file-convert: stop depending on `the_repository`
      delta-islands: stop depending on `the_repository`
      object-file: split out logic regarding hash algorithms
      hash: fix "-Wsign-compare" warnings
      hash: stop depending on `the_repository` in `null_oid()`
      meson: define WITH_BREAKING_CHANGES when enabling breaking changes
      meson: don't compile git-pack-redundant(1) with breaking changes
      meson: don't install git-pack-redundant(1) docs with breaking changes
      ci: perform build and smoke tests for Meson docs
      object-name: introduce `repo_get_oid_with_flags()`
      object-name: allow skipping ambiguity checks in `get_oid()` family
      builtin/update-ref: skip ambiguity checks when parsing object IDs
      refs: introduce function to batch refname availability checks
      refs/reftable: batch refname availability checks
      refs/files: batch refname availability checks for normal transactions
      refs/files: batch refname availability checks for initial transactions
      refs: stop re-verifying common prefixes for availability
      refs/iterator: separate lifecycle from iteration
      refs/iterator: provide infrastructure to re-seek iterators
      refs/iterator: implement seeking for merged iterators
      refs/iterator: implement seeking for reftable iterators
      refs/iterator: implement seeking for ref-cache iterators
      refs/iterator: implement seeking for packed-ref iterators
      refs/iterator: implement seeking for files iterators
      refs: reuse iterators when determining refname availability
      meson: fix compat sources when compiling with MSVC
      compat/mingw: fix EACCESS when opening files with `O_CREAT | O_EXCL`
      meson: fix handling of '-Dcurl=auto'
      gitweb: fix generation of "gitweb.js"
      meson: respect 'tests' build option in contrib
      meson: distinguish build and target host binaries
      ci: use Visual Studio for win+meson job on GitHub Workflows
      builtin/cat-file: rename variable that tracks usage
      builtin/cat-file: introduce function to report object status
      builtin/cat-file: wire up an option to filter objects
      builtin/cat-file: support "blob:none" objects filter
      builtin/cat-file: support "blob:limit=" objects filter
      builtin/cat-file: support "object:type=" objects filter
      pack-bitmap: allow passing payloads to `show_reachable_fn()`
      pack-bitmap: add function to iterate over filtered bitmapped objects
      pack-bitmap: introduce function to check whether a pack is bitmapped
      builtin/cat-file: deduplicate logic to iterate over all objects
      builtin/cat-file: use bitmaps to efficiently filter by object type
      t: skip chain lint when PERL_PATH is unset
      t: refactor environment sanitization to not use Perl
      t: adapt character translation helpers to not use Perl
      t: adapt `test_copy_bytes()` to not use Perl
      t: adapt `test_readlink()` to not use Perl
      t: introduce PERL_TEST_HELPERS prerequisite
      t: adapt existing PERL prerequisites
      meson: stop requiring Perl when tests are enabled
      Makefile: stop requiring Perl when running tests
      t: refactor tests depending on Perl transliteration operator
      t: refactor tests depending on Perl substitution operator
      t: refactor tests depending on Perl to print data
      t: refactor tests depending on Perl for textconv scripts
      t/lib-gpg: refactor `sanitize_pgp()` to not depend on Perl
      t/lib-t6000: refactor `name_from_description()` to not depend on Perl
      t/lib-httpd: refactor "one-time-perl" CGI script to not depend on Perl
      t0021: refactor `generate_random_characters()` to not depend on Perl
      t0210: refactor trace2 scrubbing to not use Perl
      t5316: refactor `max_chain()` to not depend on Perl
      t5703: refactor test to not depend on Perl
      reftable: fix formatting of the license header
      reftable/reader: rename data structure to "table"
      reftable/blocksource: consolidate code into a single file
      reftable/block: simplify how we track restart points
      reftable/table: move reading block into block reader
      reftable/block: rename `block` to `block_data`
      reftable/block: rename `block_reader` to `reftable_block`
      git-zlib: use `struct z_stream_s` instead of typedef
      reftable/block: create public interface for reading blocks
      reftable/block: store block pointer in the block iterator
      reftable/block: make block iterators reseekable
      reftable/block: expose a generic iterator over reftable records
      reftable/table: add `reftable_table` to the public interface
      reftable/table: introduce iterator for table blocks
      reftable/constants: make block types part of the public interface
      reftable/table: move printing logic into test helper
      reflog: rename `cmd_reflog_expire_cb` to `reflog_expire_options`
      builtin/reflog: stop storing default reflog expiry dates globally
      builtin/reflog: stop storing per-reflog expiry dates globally
      builtin/reflog: make functions regarding `reflog_expire_options` public
      builtin/gc: split out function to expire reflog entries
      builtin/maintenance: introduce "reflog-expire" task
      refs/packed: fix BUG when seeking refs with UTF-8 characters
      object-file: move `mkdir_in_gitdir()` into "path.c"
      object-file: move `safe_create_leading_directories()` into "path.c"
      object-file: move `git_open_cloexec()` to "compat/open.c"
      object-file: move `xmmap()` into "wrapper.c"
      object-file: split out functions relating to object store subsystem
      object-file: split up concerns of `HASH_*` flags
      object-file: drop `index_blob_stream()`
      object: split out functions relating to object store subsystem
      object-store: remove global array of cached objects
      object-store: merge "object-store-ll.h" and "object-store.h"
      filter-branch: stop depending on Perl
      request-pull: stop depending on Perl
      Documentation: stop depending on Perl to massage user manual
      Documentation: stop depending on Perl to generate command list
      parse: fix off-by-one for minimum signed values
      global: use designated initializers for options
      parse-options: support unit factors in `OPT_INTEGER()`
      parse-options: rename `OPT_MAGNITUDE()` to `OPT_UNSIGNED()`
      parse-options: introduce precision handling for `OPTION_INTEGER`
      parse-options: introduce precision handling for `OPTION_UNSIGNED`
      parse-options: detect mismatches in integer signedness
      ci: fix p4d executable not being found on GitHub Actions
      contrib/completion: install Bash completion
      meson: report detected runtime executable paths
      meson: prefer shell at "/bin/sh"
      t/perf: fix benchmarks with alternate repo formats
      t/perf: use configured PERL_PATH
      t/perf: fix benchmarks with out-of-tree builds
      meson: wire up benchmarks
      meson: wire up benchmarking options
      object-store: move `struct packed_git` into "packfile.h"
      object-store: drop `loose_object_path()`
      object-store: move and rename `odb_pack_keep()`
      object-store: move function declarations to their respective subsystems
      object-store: allow fetching objects via `has_object()`
      treewide: convert users of `repo_has_object_file()` to `has_object()`
      object-store: drop `repo_has_object_file()`
      builtin/mv: bail out when trying to move child and its parent
      builtin/mv: convert assert(3p) into `BUG()`
      ci: fix aggregation of test results with Meson
      builtin/gc: fix indentation of `cmd_gc()` parameters
      builtin/gc: remove global variables where it is trivial to do
      builtin/gc: move pruning of worktrees into a separate function
      builtin/maintenance: introduce "worktree-prune" task
      builtin/gc: move rerere garbage collection into separate function
      builtin/maintenance: introduce "rerere-gc" task
      reftable: fix perf regression when reading blocks of unwanted type
      git-gui: replace GIT-GUI-VARS with GIT-GUI-BUILD-OPTIONS
      git-gui: prepare GIT-VERSION-GEN for out-of-tree builds
      git-gui: make output of GIT-VERSION-GEN source'able
      git-gui: drop no-op GITGUI_SCRIPT replacement
      git-gui: extract script to generate "git-gui"
      git-gui: extract script to generate "tclIndex"
      git-gui: extract script to generate macOS wrapper
      git-gui: extract script to generate macOS app
      git-gui: stop including GIT-VERSION-FILE file
      git-gui: wire up support for the Meson build system
      gitlab-ci: always run MSVC-based Meson job
      packfile: explain ordering of how we look up auxiliary pack files
      midx: stop repeatedly looking up nonexistent packfiles

Philippe Blain (3):
      p7821: fix test_perf invocation for prereqs
      p9210: fix 'scalar clone' when running from a detached HEAD
      p7821: fix instructions for testing with threads

Phillip Wood (9):
      pack-refs doc: fix indentation for --exclude
      docs: add BreakingChanges to TECH_DOCS target
      merge-file doc: set conflict-marker-size attribute
      sequencer: move reflog message functions
      sequencer: rework reflog message handling
      midx repack: avoid integer overflow on 32 bit systems
      midx repack: avoid potential integer overflow on 64 bit systems
      midx: avoid negative array index
      midx docs: clarify tie breaking

Ramsay Jones (18):
      meson.build: remove -DCURL_DISABLE_TYPECHECK
      Makefile: only set some BASIC_CFLAGS when RUNTIME_PREFIX is set
      meson.build: only set build variables for non-default values
      meson.build: set default help format to html on windows
      Makefile: remove NEEDS_LIBRT build variable
      config.mak.uname: add a note about NO_STRLCPY for Linux
      config.mak.uname: only set NO_REGEX on cygwin for v1.7
      config.mak.uname: add HAVE_GETDELIM to the cygwin section
      config.mak.uname: add clock_gettime() to the cygwin build
      builtin/gc.c: correct RAM calculation when using sysinfo
      config.mak.uname: add sysinfo() configuration for cygwin
      config.mak.uname: add arc4random to the cygwin build
      config.mak.uname: set CSPRNG_METHOD to getrandom on Linux
      meson.build: quote the GITWEBDIR build configuration
      meson: correct install location of YAML.pm
      meson: correct path to system config/attribute files
      meson.build: correct setting of GIT_EXEC_PATH
      configure.ac: upgrade to a compilation check for sysinfo

René Scharfe (2):
      xdiff: avoid arithmetic overflow in xdl_get_hunk()
      commit: move clear_commit_marks_many() loop body to clear_commit_marks()

Rodrigo Carvalho (1):
      t1001: replace 'test -f' with 'test_path_is_file'

Scott Chacon (2):
      bundle-uri: copy all bundle references ino the refs/bundle space
      bundle-uri: add test for bundle-uri clones with tags

Seyi Kuforiji (2):
      t/unit-tests: convert trailer test to use clar
      t/unit-tests: convert urlmatch-normalization test to clar

Taylor Blau (31):
      refs.c: remove empty '--exclude' patterns
      refs.c: stop matching non-directory prefixes in exclude patterns
      builtin/pack-objects.c: freshen objects from existing cruft packs
      http.c: remove unnecessary casts to long
      http.c: introduce `set_long_from_env()` for convenience
      http.c: inline `set_curl_keepalive()`
      http.c: allow custom TCP keepalive behavior via config
      refspec: treat 'fetch' as a Boolean value
      refspec: replace `refspec_init()` with fetch/push variants
      refspec: remove refspec_item_init_or_die()
      refspec: replace `refspec_item_init()` with fetch/push variants
      pseudo-merge.h: fix a typo
      t/t5329-pack-objects-cruft.sh: evict 'repack'-related tests
      t/t7704-repack-cruft.sh: clarify wording in --max-cruft-size tests
      t/t7704-repack-cruft.sh: consolidate `write_blob()`
      repack: avoid combining cruft packs with `--max-cruft-size`
      repack: begin combining cruft packs with `--combine-cruft-below-size`
      Documentation: remove a "future work" item from the MIDX docs
      Documentation: describe incremental MIDX bitmaps
      pack-revindex: prepare for incremental MIDX bitmaps
      pack-bitmap.c: open and store incremental bitmap layers
      pack-bitmap.c: teach `bitmap_for_commit()` about incremental MIDXs
      pack-bitmap.c: teach `show_objects_for_type()` about incremental MIDXs
      pack-bitmap.c: support bitmap pack-reuse with incremental MIDXs
      pack-bitmap.c: teach `rev-list --test-bitmap` about incremental MIDXs
      pack-bitmap.c: compute disk-usage with incremental MIDXs
      pack-bitmap.c: apply pseudo-merge commits with incremental MIDXs
      ewah: implement `struct ewah_or_iterator`
      pack-bitmap.c: keep track of each layer's type bitmaps
      pack-bitmap.c: use `ewah_or_iterator` for type bitmap iterators
      midx: implement writing incremental MIDX bitmaps

Torsten Bögershausen (1):
      intialize false_but_the_compiler_does_not_know_it_

Tuomas Ahola (1):
      bulk-checkin: fix sign compare warnings

Usman Akinyemi (11):
      config: teach repo_config to allow `repo` to be NULL
      builtin/verify-tag: stop using `the_repository`
      builtin/verify-commit: stop using `the_repository`
      builtin/send-pack: stop using `the_repository`
      builtin/pack-refs: stop using `the_repository`
      builtin/ls-files: stop using `the_repository`
      builtin/for-each-ref: stop using `the_repository`
      builtin/checkout-index: stop using `the_repository`
      builtin/update-server-info: remove unnecessary if statement
      builtin/add: remove unnecessary if statement
      builtin/difftool: remove unnecessary if statement

Wonuk Kim (1):
      doc: sparse-checkout: use consistent inline list style

YOKOTA Hiroshi (1):
      gitk: Legacy widgets doesn't have combobox

Zheng Yuting (2):
      send-email: capture errors in an eval {} block
      send-email: finer-grained SMTP error handling

brian m. carlson (2):
      t5605: fix test for cloning from a different user
      Makefile: avoid constant rebuilds with compilation database

shejialuo (13):
      t0602: use subshell to ensure working directory unchanged
      builtin/refs: get worktrees without reading head information
      packed-backend: check whether the "packed-refs" is regular file
      packed-backend: check if header starts with "# pack-refs with: "
      packed-backend: add "packed-refs" header consistency check
      packed-backend: check whether the refname contains NUL characters
      packed-backend: add "packed-refs" entry consistency check
      packed-backend: check whether the "packed-refs" is sorted
      builtin/fsck: add `git refs verify` child process
      packed-backend: fsck should warn when "packed-refs" file is empty
      packed-backend: extract snapshot allocation in `load_contents`
      packed-backend: mmap large "packed-refs" file during fsck
      fsck: ignore missing "refs" directory for linked worktrees

Đoàn Trần Công Danh (2):
      sparse: ignore warning from new glibc headers
      meson: allow customize perl installation path

தமிழ் நேரம் (1):
      gitk: add Tamil translation


^ permalink raw reply	[flat|nested] 17+ messages in thread

* RE: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed
  2025-06-03 17:02 [ANNOUNCE] Git v2.50.0-rc1 Junio C Hamano
@ 2025-06-03 22:33 ` rsbecker
  2025-06-03 22:45   ` rsbecker
  0 siblings, 1 reply; 17+ messages in thread
From: rsbecker @ 2025-06-03 22:33 UTC (permalink / raw)
  To: 'Junio C Hamano', git

On June 3, 2025 1:03 PM, Junio C Hamano wrote:
>A release candidate Git v2.50.0-rc1 is now available for testing at
>the usual places.  It is comprised of 592 non-merge commits since
>v2.49.0, contributed by 84 people, 33 of which are new faces [*].
>
>The tarballs are found at:
>
>    https://www.kernel.org/pub/software/scm/git/testing/
>
>The following public repositories all have a copy of the
>'v2.50.0-rc1' tag and the 'master' branch that the tag points at:
>
>  url = https://git.kernel.org/pub/scm/git/git
>  url = https://kernel.googlesource.com/pub/scm/git/git
>  url = git://repo.or.cz/alt-git.git
>  url = https://github.com/gitster/git

I hit a new issue during the test phase.

Makefile:200: recipe for target 'lib/tclIndex' failed

Is there any way to suppress this? I don't think we need TCL - don't have it anyway on NonStop.

Regards and thanks,
Randall


^ permalink raw reply	[flat|nested] 17+ messages in thread

* RE: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed
  2025-06-03 22:33 ` [ANNOUNCE] Git v2.50.0-rc1 - Test Failed rsbecker
@ 2025-06-03 22:45   ` rsbecker
  2025-06-04 13:51     ` Todd Zullinger
  0 siblings, 1 reply; 17+ messages in thread
From: rsbecker @ 2025-06-03 22:45 UTC (permalink / raw)
  To: rsbecker, 'Junio C Hamano', git

On June 3, 2025 6:33 PM, I wrote:
>To: 'Junio C Hamano' <gitster@pobox.com>; git@vger.kernel.org
>Subject: RE: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed
>
>On June 3, 2025 1:03 PM, Junio C Hamano wrote:
>>A release candidate Git v2.50.0-rc1 is now available for testing at the
>>usual places.  It is comprised of 592 non-merge commits since v2.49.0,
>>contributed by 84 people, 33 of which are new faces [*].
>>
>>The tarballs are found at:
>>
>>    https://www.kernel.org/pub/software/scm/git/testing/
>>
>>The following public repositories all have a copy of the 'v2.50.0-rc1'
>>tag and the 'master' branch that the tag points at:
>>
>>  url = https://git.kernel.org/pub/scm/git/git
>>  url = https://kernel.googlesource.com/pub/scm/git/git
>>  url = git://repo.or.cz/alt-git.git
>>  url = https://github.com/gitster/git
>
>I hit a new issue during the test phase.
>
>Makefile:200: recipe for target 'lib/tclIndex' failed
>
>Is there any way to suppress this? I don't think we need TCL - don't have it anyway
>on NonStop.

More info:

The actual more complete error is:

/usr/coreutils/bin/bash generate-git-gui.sh "git-gui.sh" "git-gui" ./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE
/usr/coreutils/bin/bash generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS 
usage: generate-tclindex.sh <BUILD_DIR> <BUILD_OPTIONS> <LIBFILE> [<LIBFILE>...]
Makefile:200: recipe for target 'lib/tclIndex' failed

This seems like a legit problem to be fixed rather than ignored.

Regards,
Randall


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed
  2025-06-03 22:45   ` rsbecker
@ 2025-06-04 13:51     ` Todd Zullinger
  2025-06-04 15:17       ` Junio C Hamano
  0 siblings, 1 reply; 17+ messages in thread
From: Todd Zullinger @ 2025-06-04 13:51 UTC (permalink / raw)
  To: rsbecker; +Cc: 'Junio C Hamano', git

rsbecker@nexbridge.com wrote:
>>I hit a new issue during the test phase.
>>
>>Makefile:200: recipe for target 'lib/tclIndex' failed
>>
>>Is there any way to suppress this? I don't think we need TCL - don't have it anyway
>>on NonStop.
> 
> More info:
> 
> The actual more complete error is:
> 
> /usr/coreutils/bin/bash generate-git-gui.sh "git-gui.sh" "git-gui" ./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE
> /usr/coreutils/bin/bash generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS 
> usage: generate-tclindex.sh <BUILD_DIR> <BUILD_OPTIONS> <LIBFILE> [<LIBFILE>...]
> Makefile:200: recipe for target 'lib/tclIndex' failed
> 
> This seems like a legit problem to be fixed rather than ignored.

If you don't have TCL, are you not setting NO_TCLTK for your
builds?

I don't think that's changed in ages, but perhaps something
has changed in the build process or your build system which
now exposes that you aren't setting it, which then tries to
build git-gui (and would surely try to build gitk as well).

-- 
Todd

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed
  2025-06-04 13:51     ` Todd Zullinger
@ 2025-06-04 15:17       ` Junio C Hamano
  2025-06-04 19:25         ` Johannes Sixt
  0 siblings, 1 reply; 17+ messages in thread
From: Junio C Hamano @ 2025-06-04 15:17 UTC (permalink / raw)
  To: Todd Zullinger, Johannes Sixt; +Cc: rsbecker, git

Todd Zullinger <tmz@pobox.com> writes:

> rsbecker@nexbridge.com wrote:
>>>I hit a new issue during the test phase.
>>>
>>>Makefile:200: recipe for target 'lib/tclIndex' failed
>>>
>>>Is there any way to suppress this? I don't think we need TCL - don't have it anyway
>>>on NonStop.
>> 
>> More info:
>> 
>> The actual more complete error is:
>> 
>> /usr/coreutils/bin/bash generate-git-gui.sh "git-gui.sh" "git-gui" ./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE
>> /usr/coreutils/bin/bash generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS 
>> usage: generate-tclindex.sh <BUILD_DIR> <BUILD_OPTIONS> <LIBFILE> [<LIBFILE>...]
>> Makefile:200: recipe for target 'lib/tclIndex' failed
>> 
>> This seems like a legit problem to be fixed rather than ignored.
>
> If you don't have TCL, are you not setting NO_TCLTK for your
> builds?
>
> I don't think that's changed in ages, but perhaps something
> has changed in the build process or your build system which
> now exposes that you aren't setting it, which then tries to
> build git-gui (and would surely try to build gitk as well).

Curious.

$ git diff --name-status v2.50.0-rc0 v2.50.0-rc1 -- git-gui/ gitk-git/
M	git-gui/.gitattributes
M	git-gui/.gitignore
A	git-gui/GIT-GUI-BUILD-OPTIONS.in
M	git-gui/GIT-VERSION-GEN
M	git-gui/Makefile
A	git-gui/generate-git-gui.sh
A	git-gui/generate-macos-app.sh
A	git-gui/generate-macos-wrapper.sh
A	git-gui/generate-tclindex.sh
A	git-gui/lib/meson.build
A	git-gui/meson.build
A	git-gui/po/meson.build
M	gitk-git/Makefile
M	gitk-git/gitk
$ git diff --stat v2.50.0-rc0 v2.50.0-rc1 -- git-gui/ gitk-git/
 git-gui/.gitattributes            |   1 +
 git-gui/.gitignore                |   2 +-
 git-gui/GIT-GUI-BUILD-OPTIONS.in  |   7 ++
 git-gui/GIT-VERSION-GEN           |  44 ++++++++----
 git-gui/Makefile                  | 115 ++++++++---------------------
 git-gui/generate-git-gui.sh       |  29 ++++++++
 git-gui/generate-macos-app.sh     |  30 ++++++++
 git-gui/generate-macos-wrapper.sh |  35 +++++++++
 git-gui/generate-tclindex.sh      |  32 +++++++++
 git-gui/lib/meson.build           |  74 +++++++++++++++++++
 git-gui/meson.build               | 148 ++++++++++++++++++++++++++++++++++++++
 git-gui/po/meson.build            |  38 ++++++++++
 gitk-git/Makefile                 |   2 +-
 gitk-git/gitk                     |  10 ++-
 14 files changed, 458 insertions(+), 109 deletions(-)

So the build procedure for git-gui (but not gitk) has changed rather
extensively after we tagged the preview before -rc1?  Honestly, I
would have preferred to see a change with this impact go through the
regular 'seen' to 'next' to 'master' way before -rc0, but that is
water under the bridge.

We are in an exciting cycle X-<.

J6t?

I do not spot anything obviously wrong (and it is not expected that
I would---we wouldn't have this code sent to me in the first place
if this is something I can immediately notice).  git-gui/Makefile
sets ALL_LIBFILES to $(wildcard lib/*.tcl) and then does

    $(SHELL_PATH) generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS $(ALL_LIBFILES)

So the error message in Becker's message, i.e.

> /usr/coreutils/bin/bash generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS 
> usage: generate-tclindex.sh <BUILD_DIR> <BUILD_OPTIONS> <LIBFILE> [<LIBFILE>...]
> Makefile:200: recipe for target 'lib/tclIndex' failed

suggests that $(wildcard lib/*tcl) expanded to *nothing*, which
sounds horribly wrong.  They are source material and should exist in
an unmodified checkout or a tarball extract.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed
  2025-06-04 15:17       ` Junio C Hamano
@ 2025-06-04 19:25         ` Johannes Sixt
  2025-06-05  8:09           ` rsbecker
  0 siblings, 1 reply; 17+ messages in thread
From: Johannes Sixt @ 2025-06-04 19:25 UTC (permalink / raw)
  To: Junio C Hamano, rsbecker; +Cc: git, Todd Zullinger

Am 04.06.25 um 17:17 schrieb Junio C Hamano:
> So the build procedure for git-gui (but not gitk) has changed rather
> extensively after we tagged the preview before -rc1?  Honestly, I
> would have preferred to see a change with this impact go through the
> regular 'seen' to 'next' to 'master' way before -rc0, but that is
> water under the bridge.

I don't think we ever had such a cycle for gitk and git-gui. I carry
inofficial branches 'j6t-testing' in my repositories that interested
parties could track instead of 'master'. I would be happy to hear that
people actually do use them.

> I do not spot anything obviously wrong (and it is not expected that
> I would---we wouldn't have this code sent to me in the first place
> if this is something I can immediately notice).  git-gui/Makefile
> sets ALL_LIBFILES to $(wildcard lib/*.tcl) and then does
> 
>     $(SHELL_PATH) generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS $(ALL_LIBFILES)
> 
> So the error message in Becker's message, i.e.
> 
>> /usr/coreutils/bin/bash generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS 
>> usage: generate-tclindex.sh <BUILD_DIR> <BUILD_OPTIONS> <LIBFILE> [<LIBFILE>...]
>> Makefile:200: recipe for target 'lib/tclIndex' failed
> 
> suggests that $(wildcard lib/*tcl) expanded to *nothing*, which
> sounds horribly wrong.  They are source material and should exist in
> an unmodified checkout or a tarball extract.

I don't see anything wrong, either. I can easily verify your theory that
the $(wildcard) produces an empty list by modifying the pattern.

Randall, would it be possible for you to find out why $(wildcard
lib/*tcl) produces an empty list in your case?

-- Hannes


^ permalink raw reply	[flat|nested] 17+ messages in thread

* RE: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed
  2025-06-04 19:25         ` Johannes Sixt
@ 2025-06-05  8:09           ` rsbecker
  2025-06-05  8:56             ` Patrick Steinhardt
  0 siblings, 1 reply; 17+ messages in thread
From: rsbecker @ 2025-06-05  8:09 UTC (permalink / raw)
  To: 'Johannes Sixt', 'Junio C Hamano'
  Cc: git, 'Todd Zullinger'

On June 4, 2025 3:25 PM, Johannes Sixt wrote:
>Am 04.06.25 um 17:17 schrieb Junio C Hamano:
>> So the build procedure for git-gui (but not gitk) has changed rather
>> extensively after we tagged the preview before -rc1?  Honestly, I
>> would have preferred to see a change with this impact go through the
>> regular 'seen' to 'next' to 'master' way before -rc0, but that is
>> water under the bridge.
>
>I don't think we ever had such a cycle for gitk and git-gui. I carry inofficial branches
>'j6t-testing' in my repositories that interested parties could track instead of 'master'.
>I would be happy to hear that people actually do use them.
>
>> I do not spot anything obviously wrong (and it is not expected that I
>> would---we wouldn't have this code sent to me in the first place if
>> this is something I can immediately notice).  git-gui/Makefile sets
>> ALL_LIBFILES to $(wildcard lib/*.tcl) and then does
>>
>>     $(SHELL_PATH) generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS
>> $(ALL_LIBFILES)
>>
>> So the error message in Becker's message, i.e.
>>
>>> /usr/coreutils/bin/bash generate-tclindex.sh .
>>> ./GIT-GUI-BUILD-OPTIONS
>>> usage: generate-tclindex.sh <BUILD_DIR> <BUILD_OPTIONS> <LIBFILE>
>>> [<LIBFILE>...]
>>> Makefile:200: recipe for target 'lib/tclIndex' failed
>>
>> suggests that $(wildcard lib/*tcl) expanded to *nothing*, which sounds
>> horribly wrong.  They are source material and should exist in an
>> unmodified checkout or a tarball extract.
>
>I don't see anything wrong, either. I can easily verify your theory that the
>$(wildcard) produces an empty list by modifying the pattern.
>
>Randall, would it be possible for you to find out why $(wildcard
>lib/*tcl) produces an empty list in your case?

I can verify that $(wildcard lib/*tcl) is correctly reporting an empty list.

There are three directories name lib in the 2.50.0-rc1 commit:
./git-gui/lib
./gitweb/static/js/lib
./perl/build/lib
None have any files ending in tcl:
$ ls git-gui/lib
git-gui.ico  meson.build  tclIndex  win32_shortcut.js
$ ls gitweb/static/js/lib
common-lib.js  cookies.js  datetime.js
$ ls perl/build/lib
FromCPAN  Git  Git.pm

If it possible that your workspace has extra stuff that does not exist at the time make
is run. Note that I am using gnu Make 4.2.1 with bash to perform the built/test cycle.



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed
  2025-06-05  8:09           ` rsbecker
@ 2025-06-05  8:56             ` Patrick Steinhardt
  2025-06-05 20:27               ` rsbecker
  0 siblings, 1 reply; 17+ messages in thread
From: Patrick Steinhardt @ 2025-06-05  8:56 UTC (permalink / raw)
  To: rsbecker
  Cc: 'Johannes Sixt', 'Junio C Hamano', git,
	'Todd Zullinger'

On Thu, Jun 05, 2025 at 04:09:54AM -0400, rsbecker@nexbridge.com wrote:
> On June 4, 2025 3:25 PM, Johannes Sixt wrote:
> >Am 04.06.25 um 17:17 schrieb Junio C Hamano:
> >> So the build procedure for git-gui (but not gitk) has changed rather
> >> extensively after we tagged the preview before -rc1?  Honestly, I
> >> would have preferred to see a change with this impact go through the
> >> regular 'seen' to 'next' to 'master' way before -rc0, but that is
> >> water under the bridge.
> >
> >I don't think we ever had such a cycle for gitk and git-gui. I carry inofficial branches
> >'j6t-testing' in my repositories that interested parties could track instead of 'master'.
> >I would be happy to hear that people actually do use them.
> >
> >> I do not spot anything obviously wrong (and it is not expected that I
> >> would---we wouldn't have this code sent to me in the first place if
> >> this is something I can immediately notice).  git-gui/Makefile sets
> >> ALL_LIBFILES to $(wildcard lib/*.tcl) and then does
> >>
> >>     $(SHELL_PATH) generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS
> >> $(ALL_LIBFILES)
> >>
> >> So the error message in Becker's message, i.e.
> >>
> >>> /usr/coreutils/bin/bash generate-tclindex.sh .
> >>> ./GIT-GUI-BUILD-OPTIONS
> >>> usage: generate-tclindex.sh <BUILD_DIR> <BUILD_OPTIONS> <LIBFILE>
> >>> [<LIBFILE>...]
> >>> Makefile:200: recipe for target 'lib/tclIndex' failed
> >>
> >> suggests that $(wildcard lib/*tcl) expanded to *nothing*, which sounds
> >> horribly wrong.  They are source material and should exist in an
> >> unmodified checkout or a tarball extract.
> >
> >I don't see anything wrong, either. I can easily verify your theory that the
> >$(wildcard) produces an empty list by modifying the pattern.
> >
> >Randall, would it be possible for you to find out why $(wildcard
> >lib/*tcl) produces an empty list in your case?
> 
> I can verify that $(wildcard lib/*tcl) is correctly reporting an empty list.
> 
> There are three directories name lib in the 2.50.0-rc1 commit:
> ./git-gui/lib
> ./gitweb/static/js/lib
> ./perl/build/lib
> None have any files ending in tcl:
> $ ls git-gui/lib
> git-gui.ico  meson.build  tclIndex  win32_shortcut.js
> $ ls gitweb/static/js/lib
> common-lib.js  cookies.js  datetime.js
> $ ls perl/build/lib
> FromCPAN  Git  Git.pm
> 
> If it possible that your workspace has extra stuff that does not exist at the time make
> is run. Note that I am using gnu Make 4.2.1 with bash to perform the built/test cycle.

Your "git-gui/lib" directory is missing a bunch of files:

    $ git ls-tree v2.50.0-rc1:git-gui/lib
    100644 blob cfa50fca87827f09b2fc93509e0f249cc03ca6cd	about.tcl
    100644 blob 8441e109be32822df003d3ab3a221d742a74a8b7	blame.tcl
    100644 blob 8b0c4858890f11cf0e3f31536b584e0596f3aba0	branch.tcl
    100644 blob d06037decc1a44ad0f0c153cd461a22a138f35ea	branch_checkout.tcl
    100644 blob ba367d551d217f12cfae3c2f99cd19da58f1226f	branch_create.tcl
    100644 blob a5051637bbc2388c4aab14479ded14d2c41df314	branch_delete.tcl
    100644 blob 3a2d79a9cc3a1ade90db21721f75266d797c26f0	branch_rename.tcl
    100644 blob a98298366763d841d3f88e4478f0afdc6e9a5653	browser.tcl
    100644 blob 21ea768d8036c0ae2ba6bd430c6c667b5ac30c4f	checkout_op.tcl
    100644 blob ebe50bd7d07e8a430096dc8f5813c781839bd0f6	choose_font.tcl
    100644 blob d23abedcb36fd93ab3f12694d607bf354d6cf208	choose_repository.tcl
    100644 blob 6dae7937d589c174132e9f8b9bd77133e189590f	choose_rev.tcl
    100644 blob e21e7d3d0b7924f85c29dad248492e22de0bf39b	chord.tcl
    100644 blob f08506f3834a1ec821390190b920146d83078997	class.tcl
    100644 blob a570f9cdc6a406ef9482802e16c4489cc9873c2c	commit.tcl
    100644 blob fafafb81f1269c1a1a130f66c335f7d4a6f27bb9	console.tcl
    100644 blob 85783081e0d887a7c7857f07670847ef1bc0629d	database.tcl
    100644 blob abe82992b6529cf49983029d85348df5d27ceaf5	date.tcl
    100644 blob d657bfec05b49865627f321ab260633f250f71c6	diff.tcl
    100644 blob d2e0fa60c3ba3f770f525a8d01c66f17826aea75	encoding.tcl
    100644 blob 8968a57f33e37584e3589f03918db2cb89db24e9	error.tcl
    100644 blob 334cfa5a1a59c320e86789ccf4ed3320584a0215	git-gui.ico
    100644 blob d2ec24bd80e12af37ca0099b8aca0bc471cb180f	index.tcl
    100644 blob a026de954c3d9cbfd03d4dec9a73a74647bf74ba	line.tcl
    100644 blob 5ff76692f5eeeb51bcca0905385f51963d1e6531	logo.tcl
    100644 blob 664803cf3fd14c496bbf4b87ca4f7e8e87503ba1	merge.tcl
    100644 blob 8b8c16b1d616b62e5141b4228f1152921bcb86f1	mergetool.tcl
    100644 blob 4b9efab774dc97546f41158ba56b19d20291acfb	meson.build
    100644 blob e43971bfa3e0084e1a306fc82111895a301f905e	option.tcl
    100644 blob ef77ed7399c5b0cc1bdd06f1471d275ffd0ab3ad	remote.tcl
    100644 blob 480a6b30d0a9c9aa4f667a618b0e852d637432dd	remote_add.tcl
    100644 blob 5ba9fcadd17f315a4a47220f91f81ba964d64b08	remote_branch_delete.tcl
    100644 blob ef1e55521d7cea10e280f720ad700a4cd4b71d65	search.tcl
    100644 blob 674a41f5e0c868b70d84202381fec8b5919f962f	shortcut.tcl
    100644 blob 538d61c792defa7a8e19736039fa5a9af630125c	spellcheck.tcl
    100644 blob 589ff8f78aba8273651b33005c6f6abd1db2fa27	sshkey.tcl
    100644 blob d32b14142ff8383bcdfddecd1d435fbea3260a51	status_bar.tcl
    100644 blob f43d84e54fba18b5e2ebf5f9dbf28f3f8db8593d	themed.tcl
    100644 blob 413f1a170079e0cec78ecdbd1adb7baeb83406f2	tools.tcl
    100644 blob c05413ce432d2d37cc2461f1f1a739001c2220f4	tools_dlg.tcl
    100644 blob a1a424aab540663957c96a37cd277ae666287051	transport.tcl
    100644 blob db91ab84a56d79be6a5497f885a9181f368b9cf2	win32.tcl
    100644 blob 117923f8860bb8f0f04c1664d8cbe38804a59831	win32_shortcut.js

It seems like your working tree is somehow broken?

Patrick

^ permalink raw reply	[flat|nested] 17+ messages in thread

* RE: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed
  2025-06-05  8:56             ` Patrick Steinhardt
@ 2025-06-05 20:27               ` rsbecker
  2025-06-05 21:11                 ` Johannes Sixt
  0 siblings, 1 reply; 17+ messages in thread
From: rsbecker @ 2025-06-05 20:27 UTC (permalink / raw)
  To: 'Patrick Steinhardt'
  Cc: 'Johannes Sixt', 'Junio C Hamano', git,
	'Todd Zullinger'

On June 5, 2025 4:57 AM, Patrick Steinhardt wrote:
>On Thu, Jun 05, 2025 at 04:09:54AM -0400, rsbecker@nexbridge.com wrote:
>> On June 4, 2025 3:25 PM, Johannes Sixt wrote:
>> >Am 04.06.25 um 17:17 schrieb Junio C Hamano:
>> >> So the build procedure for git-gui (but not gitk) has changed
>> >> rather extensively after we tagged the preview before -rc1?
>> >> Honestly, I would have preferred to see a change with this impact
>> >> go through the regular 'seen' to 'next' to 'master' way before
>> >> -rc0, but that is water under the bridge.
>> >
>> >I don't think we ever had such a cycle for gitk and git-gui. I carry
>> >inofficial branches 'j6t-testing' in my repositories that interested
parties could
>track instead of 'master'.
>> >I would be happy to hear that people actually do use them.
>> >
>> >> I do not spot anything obviously wrong (and it is not expected that
>> >> I would---we wouldn't have this code sent to me in the first place
>> >> if this is something I can immediately notice).  git-gui/Makefile
>> >> sets ALL_LIBFILES to $(wildcard lib/*.tcl) and then does
>> >>
>> >>     $(SHELL_PATH) generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS
>> >> $(ALL_LIBFILES)
>> >>
>> >> So the error message in Becker's message, i.e.
>> >>
>> >>> /usr/coreutils/bin/bash generate-tclindex.sh .
>> >>> ./GIT-GUI-BUILD-OPTIONS
>> >>> usage: generate-tclindex.sh <BUILD_DIR> <BUILD_OPTIONS> <LIBFILE>
>> >>> [<LIBFILE>...]
>> >>> Makefile:200: recipe for target 'lib/tclIndex' failed
>> >>
>> >> suggests that $(wildcard lib/*tcl) expanded to *nothing*, which
>> >> sounds horribly wrong.  They are source material and should exist
>> >> in an unmodified checkout or a tarball extract.
>> >
>> >I don't see anything wrong, either. I can easily verify your theory
>> >that the
>> >$(wildcard) produces an empty list by modifying the pattern.
>> >
>> >Randall, would it be possible for you to find out why $(wildcard
>> >lib/*tcl) produces an empty list in your case?
>>
>> I can verify that $(wildcard lib/*tcl) is correctly reporting an empty
list.
>>
>> There are three directories name lib in the 2.50.0-rc1 commit:
>> ./git-gui/lib
>> ./gitweb/static/js/lib
>> ./perl/build/lib
>> None have any files ending in tcl:
>> $ ls git-gui/lib
>> git-gui.ico  meson.build  tclIndex  win32_shortcut.js $ ls
>> gitweb/static/js/lib common-lib.js  cookies.js  datetime.js $ ls
>> perl/build/lib FromCPAN  Git  Git.pm
>>
>> If it possible that your workspace has extra stuff that does not exist
>> at the time make is run. Note that I am using gnu Make 4.2.1 with bash to
perform
>the built/test cycle.
>
>Your "git-gui/lib" directory is missing a bunch of files:
>
>    $ git ls-tree v2.50.0-rc1:git-gui/lib
>    100644 blob cfa50fca87827f09b2fc93509e0f249cc03ca6cd	about.tcl
>    100644 blob 8441e109be32822df003d3ab3a221d742a74a8b7	blame.tcl
>    100644 blob 8b0c4858890f11cf0e3f31536b584e0596f3aba0	branch.tcl
>    100644 blob d06037decc1a44ad0f0c153cd461a22a138f35ea
>	branch_checkout.tcl
>    100644 blob ba367d551d217f12cfae3c2f99cd19da58f1226f
>	branch_create.tcl
>    100644 blob a5051637bbc2388c4aab14479ded14d2c41df314
>	branch_delete.tcl
>    100644 blob 3a2d79a9cc3a1ade90db21721f75266d797c26f0
>	branch_rename.tcl
>    100644 blob a98298366763d841d3f88e4478f0afdc6e9a5653	browser.tcl
>    100644 blob 21ea768d8036c0ae2ba6bd430c6c667b5ac30c4f
>	checkout_op.tcl
>    100644 blob ebe50bd7d07e8a430096dc8f5813c781839bd0f6
>	choose_font.tcl
>    100644 blob d23abedcb36fd93ab3f12694d607bf354d6cf208
>	choose_repository.tcl
>    100644 blob 6dae7937d589c174132e9f8b9bd77133e189590f
>	choose_rev.tcl
>    100644 blob e21e7d3d0b7924f85c29dad248492e22de0bf39b	chord.tcl
>    100644 blob f08506f3834a1ec821390190b920146d83078997	class.tcl
>    100644 blob a570f9cdc6a406ef9482802e16c4489cc9873c2c	commit.tcl
>    100644 blob fafafb81f1269c1a1a130f66c335f7d4a6f27bb9	console.tcl
>    100644 blob 85783081e0d887a7c7857f07670847ef1bc0629d
>	database.tcl
>    100644 blob abe82992b6529cf49983029d85348df5d27ceaf5	date.tcl
>    100644 blob d657bfec05b49865627f321ab260633f250f71c6	diff.tcl
>    100644 blob d2e0fa60c3ba3f770f525a8d01c66f17826aea75
>	encoding.tcl
>    100644 blob 8968a57f33e37584e3589f03918db2cb89db24e9	error.tcl
>    100644 blob 334cfa5a1a59c320e86789ccf4ed3320584a0215	git-gui.ico
>    100644 blob d2ec24bd80e12af37ca0099b8aca0bc471cb180f	index.tcl
>    100644 blob a026de954c3d9cbfd03d4dec9a73a74647bf74ba	line.tcl
>    100644 blob 5ff76692f5eeeb51bcca0905385f51963d1e6531	logo.tcl
>    100644 blob 664803cf3fd14c496bbf4b87ca4f7e8e87503ba1	merge.tcl
>    100644 blob 8b8c16b1d616b62e5141b4228f1152921bcb86f1
>	mergetool.tcl
>    100644 blob 4b9efab774dc97546f41158ba56b19d20291acfb
>	meson.build
>    100644 blob e43971bfa3e0084e1a306fc82111895a301f905e	option.tcl
>    100644 blob ef77ed7399c5b0cc1bdd06f1471d275ffd0ab3ad	remote.tcl
>    100644 blob 480a6b30d0a9c9aa4f667a618b0e852d637432dd
>	remote_add.tcl
>    100644 blob 5ba9fcadd17f315a4a47220f91f81ba964d64b08
>	remote_branch_delete.tcl
>    100644 blob ef1e55521d7cea10e280f720ad700a4cd4b71d65	search.tcl
>    100644 blob 674a41f5e0c868b70d84202381fec8b5919f962f	shortcut.tcl
>    100644 blob 538d61c792defa7a8e19736039fa5a9af630125c
>	spellcheck.tcl
>    100644 blob 589ff8f78aba8273651b33005c6f6abd1db2fa27	sshkey.tcl
>    100644 blob d32b14142ff8383bcdfddecd1d435fbea3260a51
>	status_bar.tcl
>    100644 blob f43d84e54fba18b5e2ebf5f9dbf28f3f8db8593d	themed.tcl
>    100644 blob 413f1a170079e0cec78ecdbd1adb7baeb83406f2	tools.tcl
>    100644 blob c05413ce432d2d37cc2461f1f1a739001c2220f4
>	tools_dlg.tcl
>    100644 blob a1a424aab540663957c96a37cd277ae666287051
>	transport.tcl
>    100644 blob db91ab84a56d79be6a5497f885a9181f368b9cf2	win32.tcl
>    100644 blob 117923f8860bb8f0f04c1664d8cbe38804a59831
>	win32_shortcut.js
>
>It seems like your working tree is somehow broken?

The actual problem is the prior stage, running make test fails on GIT_GUI,
so
make install fails. The lib/*.tcl are removed. The build command I using is:

Bring back the missing files from the commit

$ git restore . 

Run the actual build.

$ /usr/coreutils/bin/make V=1 prefix=/usr/local-ssl3.5 CFLAGS="-g -O2
-D_LARGEFILE64_SOURCE=1 -D_FILE_OFFSET_BITS=64 -Winline
-I/usr/local-ssl3.5/include -I/usr/coreutils/include
-I/usr/tandem/xml/T0625L01_AAE/include" LDFLAGS="-D_LARGEFILE64_SOURCE=1
-D_FILE_OFFSET_BITS=64 /usr/coreutils/lib/libz.a -L/usr/local-ssl3.5/lib
-L/usr/coreutils/lib -L/usr/tandem/xml/T0625L01_AAE/lib"
SHELL=/usr/coreutils/bin/bash

The *.tcl files in git-gui/lib are gone after the above command. I noticed a
few things run by the above - this did not happen in 2.49.

/usr/coreutils/bin/make -C git-gui
gitexecdir='/usr/local-ssl3.5/libexec/git-core' all
make[1]: Entering directory
'/home/jenkinsbuild/.jenkins/workspace/Git_Pipeline/git-gui'
GITGUI_VERSION=0.21.GITGUI
/usr/coreutils/bin/bash generate-git-gui.sh "git-gui.sh" "git-gui"
./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE
/usr/coreutils/bin/bash generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS
lib/merge.tcl lib/error.tcl lib/chord.tcl lib/date.tcl lib/encoding.tcl
lib/remote_branch_delete.tcl lib/branch_delete.tcl lib/line.tcl
lib/choose_rev.tcl lib/console.tcl lib/checkout_op.tcl lib/blame.tcl
lib/class.tcl lib/about.tcl lib/choose_repository.tcl lib/diff.tcl
lib/transport.tcl lib/branch_rename.tcl lib/shortcut.tcl lib/search.tcl
lib/win32.tcl lib/status_bar.tcl lib/tools_dlg.tcl lib/tools.tcl
lib/mergetool.tcl lib/option.tcl lib/database.tcl lib/choose_font.tcl
lib/logo.tcl lib/remote.tcl lib/branch.tcl lib/branch_checkout.tcl
lib/index.tcl lib/sshkey.tcl lib/commit.tcl lib/browser.tcl
lib/remote_add.tcl lib/branch_create.tcl lib/spellcheck.tcl lib/themed.tcl
generate-tclindex.sh: line 21: tclsh: command not found
    * tclsh failed; using unoptimized loading

It appears the above removes the *.tcl files. That causes the subsequent
failure.

--Randall


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed
  2025-06-05 20:27               ` rsbecker
@ 2025-06-05 21:11                 ` Johannes Sixt
  2025-06-05 21:33                   ` Junio C Hamano
  2025-06-05 21:44                   ` [ANNOUNCE] Git v2.50.0-rc1 - Test Failed rsbecker
  0 siblings, 2 replies; 17+ messages in thread
From: Johannes Sixt @ 2025-06-05 21:11 UTC (permalink / raw)
  To: rsbecker, 'Patrick Steinhardt'
  Cc: 'Junio C Hamano', git, 'Todd Zullinger'

Am 05.06.25 um 22:27 schrieb rsbecker@nexbridge.com:
> The *.tcl files in git-gui/lib are gone after the above command. I noticed a
> few things run by the above - this did not happen in 2.49.
> 
> /usr/coreutils/bin/make -C git-gui
> gitexecdir='/usr/local-ssl3.5/libexec/git-core' all
> make[1]: Entering directory
> '/home/jenkinsbuild/.jenkins/workspace/Git_Pipeline/git-gui'
> GITGUI_VERSION=0.21.GITGUI
> /usr/coreutils/bin/bash generate-git-gui.sh "git-gui.sh" "git-gui"
> ./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE
> /usr/coreutils/bin/bash generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS
> lib/merge.tcl lib/error.tcl lib/chord.tcl lib/date.tcl lib/encoding.tcl
...
> generate-tclindex.sh: line 21: tclsh: command not found
>     * tclsh failed; using unoptimized loading
> 
> It appears the above removes the *.tcl files. That causes the subsequent
> failure.

Interesting. We have this in generate-tclindex.sh:

...
else
         echo >&2 "    * $TCL_PATH failed; using unoptimized loading"
         rm -f $@
         echo '# Autogenerated by git-gui Makefile' >lib/tclIndex
...

This $@ was taken literally from the Makefile, where it means something
very different than in the shell script. The line could be

         rm -f lib/tclIndex

or it could be deleted because the next line overwrites the file anyway.

In the meantime, setting NO_TCLTK=NoThanks in config.mak is probably the
quickest fix for you.

Thank you for the report.
-- Hannes


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed
  2025-06-05 21:11                 ` Johannes Sixt
@ 2025-06-05 21:33                   ` Junio C Hamano
  2025-06-06  5:57                     ` [GIT PULL] git-gui: fix for: " Johannes Sixt
  2025-07-22 17:45                     ` [GIT PULL] git-gui: Sync with 2.50.1, Tcl >= 8.6, git >= 2.36 Johannes Sixt
  2025-06-05 21:44                   ` [ANNOUNCE] Git v2.50.0-rc1 - Test Failed rsbecker
  1 sibling, 2 replies; 17+ messages in thread
From: Junio C Hamano @ 2025-06-05 21:33 UTC (permalink / raw)
  To: Johannes Sixt
  Cc: rsbecker, 'Patrick Steinhardt', git,
	'Todd Zullinger'

Johannes Sixt <j6t@kdbg.org> writes:

> Interesting. We have this in generate-tclindex.sh:
>
> ...
> else
>          echo >&2 "    * $TCL_PATH failed; using unoptimized loading"
>          rm -f $@
>          echo '# Autogenerated by git-gui Makefile' >lib/tclIndex
> ...
>
> This $@ was taken literally from the Makefile, ...

Good spotting.  It was right in front of all of us, and nobody
noticed X-<.  Certainly I didn't.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* RE: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed
  2025-06-05 21:11                 ` Johannes Sixt
  2025-06-05 21:33                   ` Junio C Hamano
@ 2025-06-05 21:44                   ` rsbecker
  2025-06-05 22:06                     ` Junio C Hamano
  1 sibling, 1 reply; 17+ messages in thread
From: rsbecker @ 2025-06-05 21:44 UTC (permalink / raw)
  To: 'Johannes Sixt', 'Patrick Steinhardt'
  Cc: 'Junio C Hamano', git, 'Todd Zullinger'

On June 5, 2025 5:12 PM, Johannes Sixt wrote:
>Am 05.06.25 um 22:27 schrieb rsbecker@nexbridge.com:
>> The *.tcl files in git-gui/lib are gone after the above command. I
>> noticed a few things run by the above - this did not happen in 2.49.
>>
>> /usr/coreutils/bin/make -C git-gui
>> gitexecdir='/usr/local-ssl3.5/libexec/git-core' all
>> make[1]: Entering directory
>> '/home/jenkinsbuild/.jenkins/workspace/Git_Pipeline/git-gui'
>> GITGUI_VERSION=0.21.GITGUI
>> /usr/coreutils/bin/bash generate-git-gui.sh "git-gui.sh" "git-gui"
>> ./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE /usr/coreutils/bin/bash
>> generate-tclindex.sh . ./GIT-GUI-BUILD-OPTIONS lib/merge.tcl
>> lib/error.tcl lib/chord.tcl lib/date.tcl lib/encoding.tcl
>...
>> generate-tclindex.sh: line 21: tclsh: command not found
>>     * tclsh failed; using unoptimized loading
>>
>> It appears the above removes the *.tcl files. That causes the
>> subsequent failure.
>
>Interesting. We have this in generate-tclindex.sh:
>
>...
>else
>         echo >&2 "    * $TCL_PATH failed; using unoptimized loading"
>         rm -f $@
>         echo '# Autogenerated by git-gui Makefile' >lib/tclIndex ...
>
>This $@ was taken literally from the Makefile, where it means something very
>different than in the shell script. The line could be
>
>         rm -f lib/tclIndex
>
>or it could be deleted because the next line overwrites the file anyway.
>
>In the meantime, setting NO_TCLTK=NoThanks in config.mak is probably the
>quickest fix for you.
>
>Thank you for the report.

Can I pass this in via command line? Instead of modifying config.mak?


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed
  2025-06-05 21:44                   ` [ANNOUNCE] Git v2.50.0-rc1 - Test Failed rsbecker
@ 2025-06-05 22:06                     ` Junio C Hamano
  2025-06-05 23:38                       ` 'Todd Zullinger'
  0 siblings, 1 reply; 17+ messages in thread
From: Junio C Hamano @ 2025-06-05 22:06 UTC (permalink / raw)
  To: rsbecker
  Cc: 'Johannes Sixt', 'Patrick Steinhardt', git,
	'Todd Zullinger'

<rsbecker@nexbridge.com> writes:

> Can I pass this in via command line? Instead of modifying config.mak?

    make NO_TCLTK=NoThanks

just like you are passing V=1 on the command line of "make" in your
earlier message.  That would not build or install gitk and git-gui.

By the way, I do not think writing into config.mak qualifies as
"modifying", as we do not ship one ourselves.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed
  2025-06-05 22:06                     ` Junio C Hamano
@ 2025-06-05 23:38                       ` 'Todd Zullinger'
  2025-06-06  7:20                         ` rsbecker
  0 siblings, 1 reply; 17+ messages in thread
From: 'Todd Zullinger' @ 2025-06-05 23:38 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: rsbecker, 'Johannes Sixt', 'Patrick Steinhardt',
	git

Junio C Hamano wrote:
> <rsbecker@nexbridge.com> writes:
> 
>> Can I pass this in via command line? Instead of modifying config.mak?
> 
>     make NO_TCLTK=NoThanks
> 
> just like you are passing V=1 on the command line of "make" in your
> earlier message.  That would not build or install gitk and git-gui.
> 
> By the way, I do not think writing into config.mak qualifies as
> "modifying", as we do not ship one ourselves.

Indeed, I always considered that the ideal way to set
options.

Another benefit, from the perspective of package builder, is
that you then use the same options for all the invocations
of make.  This avoids things being needlessly rebuilt if you
happen to set them in build and install sections of your
packaging recipes and then let them get out of sync.

In the Fedora builds, we did it like so¹:

# Use these same options for every invocation of 'make'.
# Otherwise it will rebuild in %%install due to flags
# changes.
# Pipe to tee to aid confirmation/verification of settings.
cat << \EOF | tee config.mak
V = 1
CFLAGS = %{build_cflags}
LDFLAGS = %{build_ldflags}
...
EOF

['%{build_*flags}' are rpm macros, not something to be used
 literally, just in case anyone wonders.]

¹ https://src.fedoraproject.org/rpms/git/blob/ee7f0d4/f/git.spec#_545-582

-- 
Todd

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [GIT PULL] git-gui: fix for: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed
  2025-06-05 21:33                   ` Junio C Hamano
@ 2025-06-06  5:57                     ` Johannes Sixt
  2025-07-22 17:45                     ` [GIT PULL] git-gui: Sync with 2.50.1, Tcl >= 8.6, git >= 2.36 Johannes Sixt
  1 sibling, 0 replies; 17+ messages in thread
From: Johannes Sixt @ 2025-06-06  5:57 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: rsbecker, 'Patrick Steinhardt', git,
	'Todd Zullinger'

The following changes since commit 61f8788fe9d362efb112f69a58cf0510a7e49ee0:

  Merge branch 'pks-meson-support' of github.com:pks-t/git-gui (2025-05-29 10:01:14 +0200)

are available in the Git repository at:

  https://github.com/j6t/git-gui.git master

for you to fetch changes up to 765f1db2b5a890c0fa01f8976f197a8483357afe:

  git-gui: don't delete source files when auto_mkindex fails (2025-06-06 07:43:37 +0200)

----------------------------------------------------------------
commit 765f1db2b5a890c0fa01f8976f197a8483357afe
Author: Johannes Sixt <j6t@kdbg.org>
Date:   Fri Jun 6 07:41:42 2025 +0200

    git-gui: don't delete source files when auto_mkindex fails
    
    Commit 2cc5b0facfa4 (git-gui: extract script to generate "tclIndex",
    2025-03-11) converted commands in a Makefile rule to a shell script.
    In this process, the Makefile variable $@ had to be replaced by the
    file name that it represents, 'lib/tclIndex'. However, the occurrence
    in `rm -f $@` was missed. In a shell script, $@ expands to all
    command line arguments, which happen to be the source files lib/*.tcl
    in this case. Needless to say that we do not want to remove source
    files during a build. Replace $@ by the intended 'lib/tclIndex'.
    
    Reported-by: Randall S. Becker <rsbecker@nexbridge.com>
    Signed-off-by: Johannes Sixt <j6t@kdbg.org>

diff --git a/generate-tclindex.sh b/generate-tclindex.sh
index 36e3a0bd90ee..0b031d8339c4 100755
--- a/generate-tclindex.sh
+++ b/generate-tclindex.sh
@@ -23,7 +23,7 @@ then
 	: ok
 else
 	 echo >&2 "    * $TCL_PATH failed; using unoptimized loading"
-	 rm -f $@
+	 rm -f lib/tclIndex
 	 echo '# Autogenerated by git-gui Makefile' >lib/tclIndex
 	 echo >>lib/tclIndex
 	 echo "class.tcl" >>lib/tclIndex


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* RE: [ANNOUNCE] Git v2.50.0-rc1 - Test Failed
  2025-06-05 23:38                       ` 'Todd Zullinger'
@ 2025-06-06  7:20                         ` rsbecker
  0 siblings, 0 replies; 17+ messages in thread
From: rsbecker @ 2025-06-06  7:20 UTC (permalink / raw)
  To: 'Todd Zullinger', 'Junio C Hamano'
  Cc: 'Johannes Sixt', 'Patrick Steinhardt', git

On June 5, 2025 7:38 PM, Todd Zullinger wrote:
>Junio C Hamano wrote:
>> <rsbecker@nexbridge.com> writes:
>>
>>> Can I pass this in via command line? Instead of modifying config.mak?
>>
>>     make NO_TCLTK=NoThanks
>>
>> just like you are passing V=1 on the command line of "make" in your
>> earlier message.  That would not build or install gitk and git-gui.
>>
>> By the way, I do not think writing into config.mak qualifies as
>> "modifying", as we do not ship one ourselves.
>
>Indeed, I always considered that the ideal way to set options.
>
>Another benefit, from the perspective of package builder, is that you then
use the
>same options for all the invocations of make.  This avoids things being
needlessly
>rebuilt if you happen to set them in build and install sections of your
packaging
>recipes and then let them get out of sync.
>
>In the Fedora builds, we did it like so¹:
>
># Use these same options for every invocation of 'make'.
># Otherwise it will rebuild in %%install due to flags # changes.
># Pipe to tee to aid confirmation/verification of settings.
>cat << \EOF | tee config.mak
>V = 1
>CFLAGS = %{build_cflags}
>LDFLAGS = %{build_ldflags}
>...
>EOF
>
>['%{build_*flags}' are rpm macros, not something to be used  literally,
just in case
>anyone wonders.]
>
>¹ https://src.fedoraproject.org/rpms/git/blob/ee7f0d4/f/git.spec#_545-582

Thanks. Thinks are looking much better now on NonStop.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [GIT PULL] git-gui: Sync with 2.50.1, Tcl >= 8.6, git >= 2.36
  2025-06-05 21:33                   ` Junio C Hamano
  2025-06-06  5:57                     ` [GIT PULL] git-gui: fix for: " Johannes Sixt
@ 2025-07-22 17:45                     ` Johannes Sixt
  1 sibling, 0 replies; 17+ messages in thread
From: Johannes Sixt @ 2025-07-22 17:45 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Many of the commits listed below are already in git.git via v2.50.1.
Additionally, with this version, we require more modern Tcl/Tk and Git.
Other changes are:
- Bulgarian translation.
- Fix for a redundant trailing empty line in commit messages.
- SHA256 repositories are supported

The following changes since commit 765f1db2b5a890c0fa01f8976f197a8483357afe:

  git-gui: don't delete source files when auto_mkindex fails (2025-06-06 07:43:37 +0200)

are available in the Git repository at:

  https://github.com/j6t/git-gui.git master

for you to fetch changes up to 436dad00c5a717d56bf4feb8a1f5d39126579fe6:

  Merge branch 'ml/abandon-old-versions' (2025-07-22 17:37:33 +0200)

----------------------------------------------------------------
Alexander Shopov (1):
      git-gui i18n: Updated Bulgarian translation (578t)

Johannes Sixt (21):
      git-gui: do not end the commit message with an empty line
      Merge branch 'ml/git-gui-exec-path-fix'
      git-gui: remove special treatment of Windows from open_cmd_pipe
      git-gui: remove git config --list handling for git < 1.5.3
      git-gui: treat file names beginning with "|" as relative paths
      git-gui: sanitize 'exec' arguments: simple cases
      git-gui: sanitize 'exec' arguments: background
      git-gui: remove option --stderr from git_read
      git-gui: break out a separate function git_read_nice
      git-gui: use git_read in githook_read
      git-gui: convert git_read*, git_write to be non-variadic
      git-gui: pass redirections as separate argument to _open_stdout_stderr
      git-gui: pass redirections as separate argument to git_read
      git-gui: introduce function git_redir for git calls with redirections
      git-gui: do not mistake command arguments as redirection operators
      git-gui: sanitize 'exec' arguments: convert new 'cygpath' calls
      Merge branch 'ob/strip-comments-on-commit'
      Merge branch 'ml/replace-auto-execok'
      Merge branch 'js/fix-open-exec-git'
      Merge branch 'ml/tcl86'
      Merge branch 'ml/abandon-old-versions'

Mark Levedahl (35):
      git-gui: _which, only add .exe suffix if not present
      git-gui: use [is_Windows], not bad _shellpath
      git-gui: make _shellpath usable on startup
      git-gui: remove Tcl 8.4 workaround on 2>@1 redirection
      git-gui: use only the configured shell
      git-gui: remove HEAD detachment implementation for git < 1.5.3
      git-gui: remove unused proc is_shellscript
      git-gui: avoid auto_execok for git-bash menu item
      git-gui: avoid auto_execok in do_windows_shortcut
      git-gui: cleanup git-bash menu item
      git-gui: assure PATH has only absolute elements.
      git-gui: sanitize $PATH on all platforms
      git-gui: override exec and open only on Windows
      git-gui: require git >= 2.36
      git-gui: Make TclTk 8.6 the minimum, allow 8.7
      git-gui: git ls-files knows --exclude-standard
      git-gui: git-diff-index always knows submodules
      git-gui: use git-branch --show-current
      git-gui: git rev-parse knows show_toplevel
      git-gui: git-blame understands -w and textconv
      git-gui: git-diff knows submodules and textconv
      git-gui: git merge understands --strategy=recursive
      git-gui: git-remote is always available
      git-gui: use git_init to create new repository dir
      git-gui: remove unused git-version
      git-gui: remove unreachable Tk 8.4 code
      git-gui: remove redundant check for Tk >= 8.5
      git-gui: always use themed widgets from ttk
      git-gui: remove ${NS} indirection for ttk
      git-gui: remove non-ttk code
      git-gui: use git-clone
      git-gui: default to full copy for linked worktrees
      git-gui: use dashless 'git cmd' form for read/write
      git-gui: remove procs gitexec and _git_cmd
      git-gui: eliminate _search_exe

Takashi Iwai (2):
      git-gui: Replace null_sha1 with nullid
      git-gui: Add support of SHA256 repo

Taylor Blau (1):
      Merge branch 'ml/replace-auto-execok' into js/fix-open-exec

 git-gui.sh                   |  877 ++++------
 lib/about.tcl                |   10 +-
 lib/blame.tcl                |   49 +-
 lib/branch.tcl               |    6 +-
 lib/branch_checkout.tcl      |   15 +-
 lib/branch_create.tcl        |   36 +-
 lib/branch_delete.tcl        |   12 +-
 lib/branch_rename.tcl        |   26 +-
 lib/browser.tcl              |   25 +-
 lib/checkout_op.tcl          |   29 +-
 lib/choose_font.tcl          |   25 +-
 lib/choose_repository.tcl    |  565 +------
 lib/choose_rev.tcl           |   52 +-
 lib/class.tcl                |    1 -
 lib/commit.tcl               |   23 +-
 lib/console.tcl              |   20 +-
 lib/database.tcl             |   15 +-
 lib/diff.tcl                 |   39 +-
 lib/error.tcl                |   11 +-
 lib/index.tcl                |   16 +-
 lib/line.tcl                 |    7 +-
 lib/merge.tcl                |   27 +-
 lib/mergetool.tcl            |    8 +-
 lib/option.tcl               |   72 +-
 lib/remote.tcl               |   10 +-
 lib/remote_add.tcl           |   28 +-
 lib/remote_branch_delete.tcl |   46 +-
 lib/search.tcl               |   13 +-
 lib/shortcut.tcl             |   14 +-
 lib/sshkey.tcl               |   28 +-
 lib/status_bar.tcl           |   13 +-
 lib/themed.tcl               |  110 +-
 lib/tools.tcl                |    7 +-
 lib/tools_dlg.tcl            |   66 +-
 lib/transport.tcl            |   40 +-
 lib/win32.tcl                |    9 +-
 po/bg.po                     | 3608 +++++++++++++++++++++---------------------
 37 files changed, 2592 insertions(+), 3366 deletions(-)

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2025-07-22 17:45 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-03 17:02 [ANNOUNCE] Git v2.50.0-rc1 Junio C Hamano
2025-06-03 22:33 ` [ANNOUNCE] Git v2.50.0-rc1 - Test Failed rsbecker
2025-06-03 22:45   ` rsbecker
2025-06-04 13:51     ` Todd Zullinger
2025-06-04 15:17       ` Junio C Hamano
2025-06-04 19:25         ` Johannes Sixt
2025-06-05  8:09           ` rsbecker
2025-06-05  8:56             ` Patrick Steinhardt
2025-06-05 20:27               ` rsbecker
2025-06-05 21:11                 ` Johannes Sixt
2025-06-05 21:33                   ` Junio C Hamano
2025-06-06  5:57                     ` [GIT PULL] git-gui: fix for: " Johannes Sixt
2025-07-22 17:45                     ` [GIT PULL] git-gui: Sync with 2.50.1, Tcl >= 8.6, git >= 2.36 Johannes Sixt
2025-06-05 21:44                   ` [ANNOUNCE] Git v2.50.0-rc1 - Test Failed rsbecker
2025-06-05 22:06                     ` Junio C Hamano
2025-06-05 23:38                       ` 'Todd Zullinger'
2025-06-06  7:20                         ` rsbecker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).