diff options
author | Johannes Schindelin <johannes.schindelin@gmx.de> | 2022-09-28 10:29:21 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-09-28 18:49:27 +0300 |
commit | 0b55d930a69692c7f4e7b90e35fa41f6c46df4bc (patch) | |
tree | a0f5e2bed339d234b2d3f609b3221d7a29bc36a6 /t/t4301-merge-tree-write-tree.sh | |
parent | 1b3d6e17fe83eb6f79ffbac2f2c61bbf1eaef5f8 (diff) |
merge-ort: fix segmentation fault in read-only repositories
If the blob/tree objects cannot be written, we really need the merge
operations to fail, and not to continue (and then try to access the tree
object which is however still set to `NULL`).
Let's stop ignoring the return value of `write_object_file()` and
`write_tree()` and set `clean = -1` in the error case.
Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t4301-merge-tree-write-tree.sh')
-rwxr-xr-x | t/t4301-merge-tree-write-tree.sh | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/t/t4301-merge-tree-write-tree.sh b/t/t4301-merge-tree-write-tree.sh index 28ca5c38bb..013b77144b 100755 --- a/t/t4301-merge-tree-write-tree.sh +++ b/t/t4301-merge-tree-write-tree.sh @@ -810,4 +810,13 @@ test_expect_success 'can override merge of unrelated histories' ' test_cmp expect actual ' +test_expect_success SANITY 'merge-ort fails gracefully in a read-only repository' ' + git init --bare read-only && + git push read-only side1 side2 side3 && + test_when_finished "chmod -R u+w read-only" && + chmod -R a-w read-only && + test_must_fail git -C read-only merge-tree side1 side3 && + test_must_fail git -C read-only merge-tree side1 side2 +' + test_done |