Skip to content

index.html: replace outdated FAQ link #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 19, 2025

Conversation

dscho
Copy link
Member

@dscho dscho commented Mar 19, 2025

Git for Windows' wiki pages were moved as part of
git-for-windows/git-for-windows.github.io#59.
Let's adjust the FAQ URL that pointed to the wiki.

Signed-off-by: Johannes Schindelin <[email protected]>
@dscho dscho requested a review from mjcheetham March 19, 2025 11:16
@dscho dscho self-assigned this Mar 19, 2025
@dscho dscho merged commit a3d75ea into gh-pages Mar 19, 2025
@dscho dscho deleted the no-more-wiki-in-git-snapshots branch March 19, 2025 11:22
gitforwindowshelper bot pushed a commit that referenced this pull request Jun 3, 2025
The GitHub's CI workflow uses 'actions/checkout@v4' to checkout the
repository. This action defaults to using the GitHub REST API to obtain
the repository if the `git` executable isn't available.

The step to build Git in the GitHub workflow can be summarized as:

  ...
  - uses: actions/checkout@v4 #1
  - run: ci/install-dependencies.sh #2
  ...
  - run: sudo --preserve-env --set-home --user=builder ci/run-build-and-tests.sh git-for-windows#3
  ...

Step #1, clones the repository, since the `git` executable isn't present
at this step, it uses GitHub's REST API to obtain a tar of the
repository.

Step #2, installs all dependencies, which includes the `git` executable.

Step git-for-windows#3, sets up the build, which includes setting up meson in the meson
job. At this point the `git` executable is present.

This means while the `git` executable is present, the repository doesn't
contain the '.git' folder. To keep both the CI's (GitLab and GitHub)
behavior consistent and to ensure that the build is performed on a
real-world scenario, install `git` before the repository is checked out.
This ensures that 'actions/checkout@v4' will clone the repository
instead of using a tarball. We also update the package cache while
installing `git`, this is because some distros will fail to locate the
package without updating the cache.

Helped-by: Phillip Wood <[email protected]>
Signed-off-by: Karthik Nayak <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
gitforwindowshelper bot pushed a commit that referenced this pull request Aug 5, 2025
find_cfg_ent() allocates a struct reflog_expire_entry_option via
FLEX_ALLOC_MEM and inserts it into a linked list in the
reflog_expire_options structure. The entries in this list are never
freed, resulting in a leak in cmd_reflog_expire and the gc reflog expire
maintenance task:

Direct leak of 39 byte(s) in 1 object(s) allocated from:
    #0 0x7ff975ee6883 in calloc (/lib64/libasan.so.8+0xe6883)
    #1 0x0000010edada in xcalloc ../wrapper.c:154
    #2 0x000000df0898 in find_cfg_ent ../reflog.c:28
    git-for-windows#3 0x000000df0898 in reflog_expire_config ../reflog.c:70
    git-for-windows#4 0x00000095c451 in configset_iter ../config.c:2116
    git-for-windows#5 0x0000006d29e7 in git_config ../config.h:724
    git-for-windows#6 0x0000006d29e7 in cmd_reflog_expire ../builtin/reflog.c:205
    git-for-windows#7 0x0000006d504c in cmd_reflog ../builtin/reflog.c:419
    git-for-windows#8 0x0000007e4054 in run_builtin ../git.c:480
    git-for-windows#9 0x0000007e4054 in handle_builtin ../git.c:746
    git-for-windows#10 0x0000007e8a35 in run_argv ../git.c:813
    git-for-windows#11 0x0000007e8a35 in cmd_main ../git.c:953
    git-for-windows#12 0x000000441e8f in main ../common-main.c:9
    git-for-windows#13 0x7ff9754115f4 in __libc_start_call_main (/lib64/libc.so.6+0x35f4)
    git-for-windows#14 0x7ff9754116a7 in __libc_start_main@@GLIBC_2.34 (/lib64/libc.so.6+0x36a7)
    git-for-windows#15 0x000000444184 in _start (/home/jekeller/libexec/git-core/git+0x444184)

Close this leak by adding a reflog_clear_expire_config() function which
iterates the linked list and frees its elements. Call it upon exit of
cmd_reflog_expire() and reflog_expire_condition().

Add a basic test which covers this leak. While at it, cover the
functionality from commit commit 3cb22b8 (Per-ref reflog expiry
configuration, 2008-06-15). We've had this support for years, but lacked
any tests.

Co-developed-by: Jeff King <[email protected]>
Signed-off-by: Jacob Keller <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants