1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2025-07-24 12:09:39 +02:00
forgejo/modules/git
Gusted 772bb20875 feat: improve checking if diffs differ (#8451)
This change is very similar to what was done in forgejo/forgejo#7727. When a PR is updated, `checkIfPRContentChanged` is called to check if the diff changed - this is done on a temporary repository. This change improves this checking by doing this operation on the bare repository. The change is split into several commits.

The following changes were made (in this exact order)

1. Update the `getTestPatchCtx` function that was introduced in forgejo/forgejo#7727 so it can be used outside the context of conflict checking. This is a simple change by making the caller determine if it can use a bare repository or not.

2. Do a small refactor of `ValidatePullRequest` to avoid indentation hell in this function, this is purely a refactor but necessary to not blow my brain while working on this function.

3. The first enhancement, introduce `testPatchCtx` in `ValidatePullRequest` to get diverging commits via the bare repository.

4. The main enhancement, do a refactor to move the function to be part of the repository struct and do a rename as this fits as a general purpose function. This refactoring includes it no longer being specific to a temporary repository and works on a bare repository.

5. Add extensive units tests, integration tests are added in forgejo/forgejo#8450 it checks that both calls to `CheckIfDiffDiffers` work. Because it also fixes a bug I sent it as a different PR.

6. Extend the integration test to check for diffs with commits from different repositories, to demonstrate that `getTestPatchCtx` works (specifically the `env` variable).

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8451
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Gusted <postmaster@gusted.xyz>
Co-committed-by: Gusted <postmaster@gusted.xyz>
2025-07-16 18:19:27 +02:00
..
foreachref chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
internal Refactor git command package to improve security and maintainability (#22678) 2023-02-04 10:30:43 +08:00
pipeline feat: bump the minimum required Git version from 2.0.0 to 2.34.1 (#8328) 2025-06-29 00:44:18 +02:00
pushoptions feat: AGit push options starting with {base64} are decoded (#8479) 2025-07-10 17:51:19 +02:00
tests/repos feat: introduce global merge message templates (#8347) 2025-07-12 16:00:42 +02:00
url Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
batch.go [PORT] Refactor the usage of batch catfile (gitea#31754) 2024-08-26 03:48:51 +02:00
batch_reader.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
blame.go feat: bump the minimum required Git version from 2.0.0 to 2.34.1 (#8328) 2025-06-29 00:44:18 +02:00
blame_sha256_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v1.64.6 (forgejo) (#7118) 2025-03-04 21:38:35 +00:00
blame_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v1.64.6 (forgejo) (#7118) 2025-03-04 21:38:35 +00:00
blob.go feat: detect Interlisp sources as text (#8377) 2025-07-02 07:38:46 +02:00
blob_test.go git/blob: GetContentBase64 with fewer allocations and no goroutine (#8297) 2025-06-27 11:22:10 +02:00
command.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
command_race_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
command_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
commit.go git/commit: re-implement submodules file reader (#8438) 2025-07-15 00:20:00 +02:00
commit_info.go git/commit: re-implement submodules file reader (#8438) 2025-07-15 00:20:00 +02:00
commit_info_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v1.64.6 (forgejo) (#7118) 2025-03-04 21:38:35 +00:00
commit_reader.go fix: parse change-id in the git commit header (#7884) 2025-05-16 21:14:41 +00:00
commit_sha256_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
commit_test.go git/commit: re-implement submodules file reader (#8438) 2025-07-15 00:20:00 +02:00
diff.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
diff_compare.go feat: improve checking if diffs differ (#8451) 2025-07-16 18:19:27 +02:00
diff_compare_test.go feat: improve checking if diffs differ (#8451) 2025-07-16 18:19:27 +02:00
diff_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
error.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
git.go feat: bump the minimum required Git version from 2.0.0 to 2.34.1 (#8328) 2025-06-29 00:44:18 +02:00
git_test.go feat: bump the minimum required Git version from 2.0.0 to 2.34.1 (#8328) 2025-06-29 00:44:18 +02:00
grep.go fix: make test suite run on older git version (#8188) 2025-06-14 19:50:58 +02:00
grep_test.go fix: make test suite run on older git version (#8188) 2025-06-14 19:50:58 +02:00
hook.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
last_commit_cache.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
log_name_status.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
notes.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
notes_test.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
object_format.go Enable unparam linter (#31277) 2024-06-16 13:42:58 +02:00
object_id.go chore: fix typos identified by mispell 2024-05-25 09:43:50 +02:00
object_id_test.go fix: hook post-receive for sha256 repos 2024-05-15 16:43:16 +02:00
object_signature.go Rename CommitGPGSignature to ObjectSignature 2024-03-26 08:09:36 +00:00
parse.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
parse_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
README.md move code.gitea.io/git to code.gitea.io/gitea/modules/git (#6364) 2019-03-27 17:33:00 +08:00
ref.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
ref_test.go Fix mirror bug (#33224) 2025-01-19 09:42:57 +01:00
remote.go feat: bump the minimum required Git version from 2.0.0 to 2.34.1 (#8328) 2025-06-29 00:44:18 +02:00
repo.go feat: improved performances when checking for conflicts on pull requests (#7727) 2025-05-16 12:40:38 +00:00
repo_archive.go Fix archive creating LFS hooks and breaking pull requests (#28848) 2024-01-19 05:49:18 +00:00
repo_attribute.go chore(cleanup): replaces unnecessary calls to formatting functions by non-formatting equivalents (#7994) 2025-05-29 17:34:29 +02:00
repo_attribute_test.go chore: use standard library function (#8334) 2025-06-29 08:06:38 +02:00
repo_base.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
repo_base_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
repo_blame.go chore: refactor LineBlame (#8419) 2025-07-05 16:31:53 +02:00
repo_blame_test.go chore: refactor LineBlame (#8419) 2025-07-05 16:31:53 +02:00
repo_blob_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
repo_branch.go chore: Refactor Is{Reference,Branch}Exist (#8425) 2025-07-06 07:16:43 +02:00
repo_branch_test.go chore: Refactor Is{Reference,Branch}Exist (#8425) 2025-07-06 07:16:43 +02:00
repo_commit.go feat: bump the minimum required Git version from 2.0.0 to 2.34.1 (#8328) 2025-06-29 00:44:18 +02:00
repo_commit_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
repo_commitgraph.go feat: bump the minimum required Git version from 2.0.0 to 2.34.1 (#8328) 2025-06-29 00:44:18 +02:00
repo_compare.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
repo_compare_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
repo_gpg.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
repo_hook.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo_index.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
repo_language_stats.go fix: use linguist-generated for language stats (#7685) 2025-04-27 23:29:21 +00:00
repo_language_stats_test.go fix: use linguist-generated for language stats (#7685) 2025-04-27 23:29:21 +00:00
repo_object.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
repo_ref.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
repo_ref_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
repo_stats.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
repo_stats_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
repo_tag.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
repo_tag_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
repo_test.go feat: improved performances when checking for conflicts on pull requests (#7727) 2025-05-16 12:40:38 +00:00
repo_tree.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
signature.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
signature_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
submodule.go git/commit: re-implement submodules file reader (#8438) 2025-07-15 00:20:00 +02:00
submodule_test.go git/commit: re-implement submodules file reader (#8438) 2025-07-15 00:20:00 +02:00
tag.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
tag_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
tree.go Use gitrepo.GetTreePathLatestCommit to get file lastest commit instead from latest commit cache (#32987) 2025-01-05 12:13:48 +00:00
tree_blob.go git/commit: re-implement submodules file reader (#8438) 2025-07-15 00:20:00 +02:00
tree_entry.go git/commit: re-implement submodules file reader (#8438) 2025-07-15 00:20:00 +02:00
tree_entry_mode.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
tree_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
utils.go chore: Remove LimitedReaderCloser 2025-01-31 10:43:29 +01:00
utils_test.go [CHORE] Drop go-git support 2024-08-12 19:11:09 +02:00

Git Module

This module is merged from https://github.com/go-gitea/git which is a Go module to access Git through shell commands. Now it's a part of gitea's main repository for easier pull request.