Skip to content
Snippets Groups Projects
This project is mirrored from https://*****:*****@gitlab.com/git-scm/git.git. Pull mirroring updated .
  1. Feb 18, 2025
    • Junio C Hamano's avatar
      Merge branch 'ds/backfill' · e565f375
      Junio C Hamano authored
      Lazy-loading missing files in a blobless clone on demand is costly
      as it tends to be one-blob-at-a-time.  "git backfill" is introduced
      to help bulk-download necessary files beforehand.
      
      * ds/backfill:
        backfill: assume --sparse when sparse-checkout is enabled
        backfill: add --sparse option
        backfill: add --min-batch-size=<n> option
        backfill: basic functionality and tests
        backfill: add builtin boilerplate
      e565f375
  2. Feb 15, 2025
    • Junio C Hamano's avatar
      The eleventh batch · 03944513
      Junio C Hamano authored
      
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      03944513
    • Junio C Hamano's avatar
      Merge branch 'ps/doc-http-upload-archive-service' · 60cb8e79
      Junio C Hamano authored
      Doc update.
      
      * ps/doc-http-upload-archive-service:
        doc: documentation for http.uploadarchive config option
      60cb8e79
    • Junio C Hamano's avatar
      Merge branch 'kn/reflog-migration-fix-followup' · 82522a9e
      Junio C Hamano authored
      Code clean-up.
      
      * kn/reflog-migration-fix-followup:
        reftable: prevent 'update_index' changes after adding records
        refs: use 'uint64_t' for 'ref_update.index'
        refs: mark `ref_transaction_update_reflog()` as static
      82522a9e
    • Junio C Hamano's avatar
      Merge branch 'bf/fetch-set-head-fix' · c3fffcfe
      Junio C Hamano authored
      Fetching into a bare repository incorrectly assumed it always used
      a mirror layout when deciding to update remote-tracking HEAD, which
      has been corrected.
      
      * bf/fetch-set-head-fix:
        fetch set_head: fix non-mirror remotes in bare repositories
        fetch set_head: refactor to use remote directly
      c3fffcfe
    • Junio C Hamano's avatar
      Merge branch 'op/worktree-is-main-bare-fix' · 09e74b06
      Junio C Hamano authored
      Going into a secondary worktree and asking "is the main worktree
      bare?" did not work correctly when per-worktree configuration
      option was in use, which has been corrected.
      
      * op/worktree-is-main-bare-fix:
        worktree: detect from secondary worktree if main worktree is bare
      09e74b06
    • Junio C Hamano's avatar
      Merge branch 'tc/clone-single-revision' · 5785d914
      Junio C Hamano authored
      "git clone" learned to make a shallow clone for a single commit
      that is not necessarily be at the tip of any branch.
      
      * tc/clone-single-revision:
        builtin/clone: teach git-clone(1) the --revision= option
        parse-options: introduce die_for_incompatible_opt2()
        clone: introduce struct clone_opts in builtin/clone.c
        clone: add tags refspec earlier to fetch refspec
        clone: refactor wanted_peer_refs()
        clone: make it possible to specify --tags
        clone: cut down on global variables in clone.c
      5785d914
    • Junio C Hamano's avatar
      Merge branch 'bc/doc-adoc-not-txt' · 0cc13007
      Junio C Hamano authored
      All the documentation .txt files have been renamed to .adoc to help
      content aware editors.
      
      * bc/doc-adoc-not-txt:
        Remove obsolete ".txt" extensions for AsciiDoc files
        doc: use .adoc extension for AsciiDoc files
        gitattributes: mark AsciiDoc files as LF-only
        editorconfig: add .adoc extension
        doc: update gitignore for .adoc extension
      0cc13007
  3. Feb 12, 2025
    • Junio C Hamano's avatar
      The tenth batch · e2067b49
      Junio C Hamano authored
      
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      e2067b49
    • Junio C Hamano's avatar
      Merge branch 'da/help-autocorrect-one-fix' · 2d7a8744
      Junio C Hamano authored
      "git -c help.autocorrect=0 psuh" shows the suggested typofix,
      unlike the previous attempt in the base topic.
      
      * da/help-autocorrect-one-fix:
        help: add "show" as a valid configuration value
        help: show the suggested command when help.autocorrect is false
      2d7a8744
    • Junio C Hamano's avatar
      Merge branch 'sc/help-autocorrect-one' · 39de0ffb
      Junio C Hamano authored
      "[help] autocorrect = 1" used to be a way to say "please wait for
      0.1 second after suggesting a typofix of the command name before
      running that command"; now it means "yes, if there is a plausible
      typofix for the command name, please run it immediately".
      
      * sc/help-autocorrect-one:
        help: interpret boolean string values for help.autocorrect
      39de0ffb
    • Junio C Hamano's avatar
      Merge branch 'ms/remote-valid-remote-name' · 0a99ffb4
      Junio C Hamano authored
      Code shuffling.
      
      * ms/remote-valid-remote-name:
        remote: relocate valid_remote_name
      0a99ffb4
    • Junio C Hamano's avatar
      Merge branch 'ms/refspec-cleanup' · 998c5f0c
      Junio C Hamano authored
      Code clean-up.  cf. <Z6G-toOJjMmK8iJG@pks.im>
      
      * ms/refspec-cleanup:
        refspec: relocate apply_refspecs and related funtions
        refspec: relocate matching related functions
        remote: rename query_refspecs functions
        refspec: relocate refname_matches_negative_refspec_item
        remote: rename function omit_name_by_refspec
      998c5f0c
    • Junio C Hamano's avatar
      Merge branch 'jp/doc-trailer-config' · 791677a5
      Junio C Hamano authored
      Documentaiton updates.
      
      * jp/doc-trailer-config:
        config.txt: add trailer.* variables
      791677a5
    • Junio C Hamano's avatar
      Merge branch 'zh/gc-expire-to' · 5b9d01bc
      Junio C Hamano authored
      "git gc" learned the "--expire-to" option and passes it down to
      underlying "git repack".
      
      * zh/gc-expire-to:
        gc: add `--expire-to` option
      5b9d01bc
    • Junio C Hamano's avatar
      Merge branch 'js/libgit-rust' · a4af0b62
      Junio C Hamano authored
      Foreign language interface for Rust into our code base has been added.
      
      * js/libgit-rust:
        libgit: add higher-level libgit crate
        libgit-sys: also export some config_set functions
        libgit-sys: introduce Rust wrapper for libgit.a
        common-main: split init and exit code into new files
      a4af0b62
    • Junio C Hamano's avatar
      Merge branch 'ac/t5401-use-test-path-is-file' · 3f3fd0f3
      Junio C Hamano authored
      Test clean-up.
      
      * ac/t5401-use-test-path-is-file:
        t5401: prefer test_path_is_* helper function
      3f3fd0f3
    • Junio C Hamano's avatar
      Merge branch 'ac/t6423-unhide-git-exit-status' · 9865ef24
      Junio C Hamano authored
      Test clean-up.
      
      * ac/t6423-unhide-git-exit-status:
        t6423: fix suppression of Git’s exit code in tests
      9865ef24
    • Junio C Hamano's avatar
      Merge branch 'ps/repack-keep-unreachable-in-unpacked-repo' · 07c401d3
      Junio C Hamano authored
      "git repack --keep-unreachable" to send unreachable objects to the
      main pack "git repack -ad" produces did not work when there is no
      existing packs, which has been corrected.
      
      * ps/repack-keep-unreachable-in-unpacked-repo:
        builtin/repack: fix `--keep-unreachable` when there are no packs
      07c401d3
    • Junio C Hamano's avatar
      Merge branch 'ds/name-hash-tweaks' · aae91a86
      Junio C Hamano authored
      "git pack-objects" and its wrapper "git repack" learned an option
      to use an alternative path-hash function to improve delta-base
      selection to produce a packfile with deeper history than window
      size.
      
      * ds/name-hash-tweaks:
        pack-objects: prevent name hash version change
        test-tool: add helper for name-hash values
        p5313: add size comparison test
        pack-objects: add GIT_TEST_NAME_HASH_VERSION
        repack: add --name-hash-version option
        pack-objects: add --name-hash-version option
        pack-objects: create new name-hash function version
      aae91a86
  4. Feb 10, 2025
    • Junio C Hamano's avatar
      The ninth batch · 388218fa
      Junio C Hamano authored
      
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      388218fa
    • Junio C Hamano's avatar
      Merge branch 'jk/ci-coverity-update' · 50e18215
      Junio C Hamano authored
      CI update to make Coverity job work again.
      
      * jk/ci-coverity-update:
        ci: set CI_JOB_IMAGE for coverity job
      50e18215
    • Junio C Hamano's avatar
      Merge branch 'sk/unit-tests-0130' · 6f0b7220
      Junio C Hamano authored
      Convert a handful of unit tests to work with the clar framework.
      
      * sk/unit-tests-0130:
        t/unit-tests: convert strcmp-offset test to use clar test framework
        t/unit-tests: convert strbuf test to use clar test framework
        t/unit-tests: adapt example decorate test to use clar test framework
        t/unit-tests: convert hashmap test to use clar test framework
      6f0b7220
    • Junio C Hamano's avatar
      Merge branch 'ps/hash-cleanup' · 246569bf
      Junio C Hamano authored
      Further code clean-up on the use of hash functions.  Now the
      context object knows what hash function it is working with.
      
      * ps/hash-cleanup:
        global: adapt callers to use generic hash context helpers
        hash: provide generic wrappers to update hash contexts
        hash: stop typedeffing the hash context
        hash: convert hashing context to a structure
      246569bf
    • Junio C Hamano's avatar
      Merge branch 'jt/gitlab-ci-base-fix' · 0ca6b46d
      Junio C Hamano authored
      Two CI tasks, whitespace check and style check, work on the
      difference from the base version and the version being checked, but
      the base was computed incorrectly in GitLab CI in some cases, which
      has been corrected.
      
      * jt/gitlab-ci-base-fix:
        ci: fix base commit fallback for check-whitespace and check-style
      0ca6b46d
    • Junio C Hamano's avatar
      Merge branch 'pw/apply-ulong-overflow-check' · 34736ff4
      Junio C Hamano authored
      "git apply" internally uses unsigned long for line numbers and uses
      strtoul() to parse numbers on the hunk headers.  It however forgot
      to check parse errors.
      
      * pw/apply-ulong-overflow-check:
        apply: detect overflow when parsing hunk header
      34736ff4
    • Junio C Hamano's avatar
      Merge branch 'ps/setup-reinit-fixes' · 442b7e00
      Junio C Hamano authored
      "git init" to reinitialize a repository that already exists cannot
      change the hash function and ref backends; such a request is
      silently ignored now.
      
      * ps/setup-reinit-fixes:
        setup: fix reinit of repos with incompatible GIT_DEFAULT_HASH
        setup: fix reinit of repos with incompatible GIT_DEFAULT_REF_FORMAT
        t0001: remove duplicate test
      442b7e00
  5. Feb 06, 2025
    • Junio C Hamano's avatar
      The eighth batch · 9520f7d9
      Junio C Hamano authored
      
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      9520f7d9
    • Junio C Hamano's avatar
      Merge branch 'ps/leakfixes-0129' · 5f338eae
      Junio C Hamano authored
      A few more leakfixes.
      
      * ps/leakfixes-0129:
        scalar: free result of `remote_default_branch()`
        unix-socket: fix memory leak when chdir(3p) fails
      5f338eae
    • Junio C Hamano's avatar
      Merge branch 'ps/zlib-ng' · 9d0e81e2
      Junio C Hamano authored
      The code paths to interact with zlib has been cleaned up in
      preparation for building with zlib-ng.
      
      * ps/zlib-ng:
        ci: make "linux-musl" job use zlib-ng
        ci: switch linux-musl to use Meson
        compat/zlib: allow use of zlib-ng as backend
        git-zlib: cast away potential constness of `next_in` pointer
        compat/zlib: provide stubs for `deflateSetHeader()`
        compat/zlib: provide `deflateBound()` shim centrally
        git-compat-util: move include of "compat/zlib.h" into "git-zlib.h"
        compat: introduce new "zlib.h" header
        git-compat-util: drop `z_const` define
        compat: drop `uncompress2()` compatibility shim
      9d0e81e2
    • Junio C Hamano's avatar
      Merge branch 'js/bundle-unbundle-fd-reuse-fix' · 9fad473f
      Junio C Hamano authored
      The code path used when "git fetch" fetches from a bundle file
      closed the same file descriptor twice, which sometimes broke things
      unexpectedly when the file descriptor was reused, which has been
      corrected.
      
      * js/bundle-unbundle-fd-reuse-fix:
        bundle: avoid closing file descriptor twice
      9fad473f
    • Junio C Hamano's avatar
      Merge branch 'ps/ci-misc-updates' · 2bf3c7fa
      Junio C Hamano authored
      CI updates (containerization, dropping stale ones, etc.).
      
      * ps/ci-misc-updates:
        ci: remove stale code for Azure Pipelines
        ci: use latest Ubuntu release
        ci: stop special-casing for Ubuntu 16.04
        gitlab-ci: add linux32 job testing against i386
        gitlab-ci: remove the "linux-old" job
        github: simplify computation of the job's distro
        github: convert all Linux jobs to be containerized
        github: adapt containerized jobs to be rootless
        t7422: fix flaky test caused by buffered stdout
        t0060: fix EBUSY in MinGW when setting up runtime prefix
      2bf3c7fa
    • pszlazak's avatar
      doc: documentation for http.uploadarchive config option · dd1eb665
      pszlazak authored and Junio C Hamano's avatar Junio C Hamano committed
      
      In Git v2.44.0 support for 'git archive' over HTTP protocol
      was added, but it was nowhere documented how it should be
      enabled in git-http-backend.
      
      Add missing documentation.
      
      Signed-off-by: default avatarPiotr Szlazak <piotr.szlazak@gmail.com>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      dd1eb665
    • to1ne's avatar
      builtin/clone: teach git-clone(1) the --revision= option · 33785562
      to1ne authored and Junio C Hamano's avatar Junio C Hamano committed
      
      The git-clone(1) command has the option `--branch` that allows the user
      to select the branch they want HEAD to point to. In a non-bare
      repository this also checks out that branch.
      
      Option `--branch` also accepts a tag. When a tag name is provided, the
      commit this tag points to is checked out and HEAD is detached. Thus
      `--branch` can be used to clone a repository and check out a ref kept
      under `refs/heads` or `refs/tags`. But some other refs might be in use
      as well. For example Git forges might use refs like `refs/pull/<id>` and
      `refs/merge-requests/<id>` to track pull/merge requests. These refs
      cannot be selected upon git-clone(1).
      
      Add option `--revision` to git-clone(1). This option accepts a fully
      qualified reference, or a hexadecimal commit ID. This enables the user
      to clone and check out any revision they want. `--revision` can be used
      in conjunction with `--depth` to do a minimal clone that only contains
      the blob and tree for a single revision. This can be useful for
      automated tests running in CI systems.
      
      Using option `--branch` and `--single-branch` together is a similar
      scenario, but serves a different purpose. Using these two options, a
      singlet remote tracking branch is created and the fetch refspec is set
      up so git-fetch(1) will receive updates on that branch from the remote.
      This allows the user work on that single branch.
      
      Option `--revision` on contrary detaches HEAD, creates no tracking
      branches, and writes no fetch refspec.
      
      Signed-off-by: default avatarToon Claes <toon@iotcl.com>
      Acked-by: default avatarPatrick Steinhardt <ps@pks.im>
      [jc: removed unnecessary TEST_PASSES_SANITIZE_LEAK from the test]
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      33785562
    • to1ne's avatar
      parse-options: introduce die_for_incompatible_opt2() · 9144b936
      to1ne authored and Junio C Hamano's avatar Junio C Hamano committed
      
      The functions die_for_incompatible_opt3() and
      die_for_incompatible_opt4() already exist to die whenever a user
      specifies three or four options respectively that are not compatible.
      
      Introduce die_for_incompatible_opt2() which dies when two options that
      are incompatible are set.
      
      Signed-off-by: default avatarToon Claes <toon@iotcl.com>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      9144b936
    • to1ne's avatar
      clone: introduce struct clone_opts in builtin/clone.c · 7a52a8c7
      to1ne authored and Junio C Hamano's avatar Junio C Hamano committed
      
      There is a lot of state stored in global variables in builtin/clone.c.
      In the long run we'd like to remove many of those.
      
      Introduce `struct clone_opts` in this file. This struct will be used to
      contain all details needed to perform the clone. The struct object can
      be thrown around to all the functions that need these details.
      
      The first field we're adding is `wants_head`. In some scenarios
      (specifically when both `--single-branch` and `--branch` are given) we
      are not interested in `HEAD` on the remote. The field `wants_head` in
      `struct clone_opts` will hold this information. We could have put
      `option_branch` and `option_single_branch` into that struct instead, but
      in a following commit we'll be using `wants_head` as well.
      
      Signed-off-by: default avatarToon Claes <toon@iotcl.com>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      7a52a8c7
    • to1ne's avatar
      clone: add tags refspec earlier to fetch refspec · 2ca67c6f
      to1ne authored and Junio C Hamano's avatar Junio C Hamano committed
      
      In clone.c we call refspec_ref_prefixes() to copy the fetch refspecs
      from the `remote->fetch` refspec into `ref_prefixes` of
      `transport_ls_refs_options`. Afterwards we add the tags prefix
      `refs/tags/` prefix as well. At a later point, in wanted_peer_refs() we
      process refs using both `remote->fetch` and `TAG_REFSPEC`.
      
      Simplify the code by appending `TAG_REFSPEC` to `remote->fetch` before
      calling refspec_ref_prefixes().
      
      To be able to do this, we set `option_tags` to 0 when --mirror is given.
      This is because --mirror mirrors (hence the name) all the refs,
      including tags and they do not need to be treated separately.
      
      Signed-off-by: default avatarToon Claes <toon@iotcl.com>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      2ca67c6f
    • to1ne's avatar
      clone: refactor wanted_peer_refs() · 879780f9
      to1ne authored and Junio C Hamano's avatar Junio C Hamano committed
      
      The function wanted_peer_refs() is used to map the refs returned by the
      server to refs we will save in our clone.
      
      Over time this function grown to be very complex. Refactor it.
      
      Previously, there was a separate code path for when
      `option_single_branch` was set. It resulted in duplicated code and
      deeper nested conditions. After this refactor the code path for when
      `option_single_branch` is truthy modifies `refs` and then falls through
      to the common code path. This approach relies on the `refspec` being set
      correctly and thus only mapping refs that are relevant.
      
      Signed-off-by: default avatarToon Claes <toon@iotcl.com>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      879780f9
    • to1ne's avatar
      clone: make it possible to specify --tags · bc26f769
      to1ne authored and Junio C Hamano's avatar Junio C Hamano committed
      Option --no-tags was added in 0dab2468 (clone: add a --no-tags option
      to clone without tags, 2017-04-26). At the time there was no need to
      support --tags as well, although there was some conversation about
      it[1].
      
      To simplify the code and to prepare for future commits, invert the flag
      internally. Functionally there is no change, because the flag is
      default-enabled passing `--tags` has no effect, so there's no need to
      add tests for this.
      
      [1]: https://lore.kernel.org/git/CAGZ79kbHuMpiavJ90kQLEL_AR0BEyArcZoEWAjPPhOFacN16YQ@mail.gmail.com/
      
      
      
      Signed-off-by: default avatarToon Claes <toon@iotcl.com>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      bc26f769
    • to1ne's avatar
      clone: cut down on global variables in clone.c · 7f420a6b
      to1ne authored and Junio C Hamano's avatar Junio C Hamano committed
      
      In clone.c the `struct option` which is used to parse the input options
      for git-clone(1) is a global variable. Due to this, many variables that
      are used to parse the value into, are also global.
      
      Make `builtin_clone_options` a local variable in cmd_clone() and carry
      along all variables that are only used in that function.
      
      Signed-off-by: default avatarToon Claes <toon@iotcl.com>
      Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
      7f420a6b
Loading