diff options
author | zeripath <art27@cantab.net> | 2022-12-14 13:45:33 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-14 21:45:33 +0800 |
commit | cdc43454a49f97b663f885e18d0adc12253597a3 (patch) | |
tree | c6a110937dc72bf67d73d738cb587f42b57e43ff /services | |
parent | 1b32ed014a61216b75d80643df53e120606ca763 (diff) | |
download | gitea-cdc43454a49f97b663f885e18d0adc12253597a3.tar.gz gitea-cdc43454a49f97b663f885e18d0adc12253597a3.zip |
Correctly handle moved files in apply patch (#22118)
Moved files in a patch will result in git apply returning:
```
error: {filename}: No such file or directory
```
This wasn't handled by the git apply patch code. This PR adds handling
for this.
Fix #22083
Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'services')
-rw-r--r-- | services/pull/patch.go | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/services/pull/patch.go b/services/pull/patch.go index 809b75e6b4..e0da410c4d 100644 --- a/services/pull/patch.go +++ b/services/pull/patch.go @@ -53,6 +53,8 @@ var patchErrorSuffices = []string{ ": patch does not apply", ": already exists in working directory", "unrecognized input", + ": No such file or directory", + ": does not exist in index", } // TestPatch will test whether a simple patch will apply @@ -416,6 +418,7 @@ func checkConflicts(ctx context.Context, pr *issues_model.PullRequest, gitRepo * scanner := bufio.NewScanner(stderrReader) for scanner.Scan() { line := scanner.Text() + log.Trace("PullRequest[%d].testPatch: stderr: %s", pr.ID, line) if strings.HasPrefix(line, prefix) { conflict = true filepath := strings.TrimSpace(strings.Split(line[len(prefix):], ":")[0]) |