Hi Alban,
what an incredible amount of careful work. Thank you for doing this.
A few minor comments:
On Tue, 9 Aug 2022, Alban Gruin wrote:
quoted hunk ↗ jump to hunk
diff --git a/builtin/merge-one-file.c b/builtin/merge-one-file.c
new file mode 100644
index 0000000000..ec718cc1c9
--- /dev/null
+++ b/builtin/merge-one-file.c
@@ -0,0 +1,92 @@
+/*
+ * Builtin "git merge-one-file"
+ *
+ * Copyright (c) 2020 Alban Gruin
There have been claims that it is still March 2020 (see e.g.
https://ismarchoveryet.com/), but I believe that those are jokes and that
we're really in the year 2022 now. It should be safe to adjust the text
accordingly.
:-)
[...]
+int merge_three_way(struct index_state *istate,
+ const struct object_id *orig_blob,
+ const struct object_id *our_blob,
+ const struct object_id *their_blob, const char *path,
+ unsigned int orig_mode, unsigned int our_mode, unsigned int their_mode)
+{
[...]
+}
+
+int merge_one_file_func(struct index_state *istate,
+ const struct object_id *orig_blob,
+ const struct object_id *our_blob,
+ const struct object_id *their_blob, const char *path,
+ unsigned int orig_mode, unsigned int our_mode, unsigned int their_mode,
+ void *data)
+{
+ return merge_three_way(istate,
+ orig_blob, our_blob, their_blob, path,
+ orig_mode, our_mode, their_mode);
+}
I have only read the patch series until this point (and plan on continuing
with the remaining patches tomorrow), so I might be wrong, but... is there
any other user of `merge_three_way()` left? If not (and I suspect this is
the case), then the `merge_three_way()` code could be moved into
`merge_one_file_func()`.
quoted hunk ↗ jump to hunk
[...]
diff --git a/t/t6060-merge-index.sh b/t/t6060-merge-index.sh
index 3845a9d3cc..9976996c80 100755
--- a/t/t6060-merge-index.sh
+++ b/t/t6060-merge-index.sh
@@ -70,7 +70,7 @@ test_expect_success 'merge-one-file fails without a work tree' '
(cd bare.git &&
GIT_INDEX_FILE=$PWD/merge.index &&
export GIT_INDEX_FILE &&
- test_must_fail git merge-index git-merge-one-file -a
+ test_must_fail git merge-index --use=merge-one-file -a
This hunk probably wanted to live in [PATCH v8 05/14] merge-index: add a
new way to invoke `git-merge-one-file', but as I pointed out in my reply
to that patch: I do not think that we have to introduce that `--use=<...>`
option at all.
quoted hunk ↗ jump to hunk
)
'
diff --git a/t/t6415-merge-dir-to-symlink.sh b/t/t6415-merge-dir-to-symlink.sh
index 2655e295f5..10bc5eb8c4 100755
--- a/t/t6415-merge-dir-to-symlink.sh
+++ b/t/t6415-merge-dir-to-symlink.sh
@@ -99,7 +99,7 @@ test_expect_success SYMLINKS 'a/b was resolved as symlink' '
test -h a/b
'
-test_expect_failure 'do not lose untracked in merge (resolve)' '
+test_expect_success 'do not lose untracked in merge (resolve)' '
Very, very nice.
Thank you!
Dscho
git reset --hard &&
git checkout baseline^0 &&
>a/b/c/e &&
--
2.37.1.412.gcfdce49ffd