From: "Elijah Newren via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Kristoffer Haugsbakk <kristofferhaugsbakk@fastmail.com>,
Patrick Steinhardt <ps@pks.im>, Elijah Newren <newren@gmail.com>,
Elijah Newren <newren@gmail.com>,
Elijah Newren <newren@gmail.com>
Subject: [PATCH v2 3/6] merge-ort: replace the_repository with opt->repo
Date: Fri, 20 Feb 2026 01:59:45 +0000 [thread overview]
Message-ID: <68af47ed187ea1bdd1b83ad8aae8d7be60a469c8.1771552788.git.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.2048.v2.git.1771552788.gitgitgadget@gmail.com>
From: Elijah Newren <newren@gmail.com>
We have a perfectly valid repository available and do not need to use
the_repository, except for one location in
prefetch_for_content_merges().
Signed-off-by: Elijah Newren <newren@gmail.com>
---
merge-ort.c | 44 ++++++++++++++++++++++----------------------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/merge-ort.c b/merge-ort.c
index 3535fc676f..9b6a4c312e 100644
--- a/merge-ort.c
+++ b/merge-ort.c
@@ -1732,9 +1732,9 @@ static int collect_merge_info(struct merge_options *opt,
info.data = opt;
info.show_all_errors = 1;
- if (repo_parse_tree(the_repository, merge_base) < 0 ||
- repo_parse_tree(the_repository, side1) < 0 ||
- repo_parse_tree(the_repository, side2) < 0)
+ if (repo_parse_tree(opt->repo, merge_base) < 0 ||
+ repo_parse_tree(opt->repo, side1) < 0 ||
+ repo_parse_tree(opt->repo, side2) < 0)
return -1;
init_tree_desc(t + 0, &merge_base->object.oid,
merge_base->buffer, merge_base->size);
@@ -2136,9 +2136,9 @@ static int merge_3way(struct merge_options *opt,
name2 = mkpathdup("%s:%s", opt->branch2, pathnames[2]);
}
- read_mmblob(&orig, the_repository->objects, o);
- read_mmblob(&src1, the_repository->objects, a);
- read_mmblob(&src2, the_repository->objects, b);
+ read_mmblob(&orig, opt->repo->objects, o);
+ read_mmblob(&src1, opt->repo->objects, a);
+ read_mmblob(&src2, opt->repo->objects, b);
merge_status = ll_merge(result_buf, path, &orig, base,
&src1, name1, &src2, name2,
@@ -2254,7 +2254,7 @@ static int handle_content_merge(struct merge_options *opt,
}
if (!ret && record_object &&
- odb_write_object(the_repository->objects, result_buf.ptr, result_buf.size,
+ odb_write_object(opt->repo->objects, result_buf.ptr, result_buf.size,
OBJ_BLOB, &result->oid)) {
path_msg(opt, ERROR_OBJECT_WRITE_FAILED, 0,
pathnames[0], pathnames[1], pathnames[2], NULL,
@@ -3713,7 +3713,7 @@ static int read_oid_strbuf(struct merge_options *opt,
void *buf;
enum object_type type;
unsigned long size;
- buf = odb_read_object(the_repository->objects, oid, &type, &size);
+ buf = odb_read_object(opt->repo->objects, oid, &type, &size);
if (!buf) {
path_msg(opt, ERROR_OBJECT_READ_FAILED, 0,
path, NULL, NULL, NULL,
@@ -4439,7 +4439,7 @@ static void prefetch_for_content_merges(struct merge_options *opt,
struct string_list_item *e;
struct oid_array to_fetch = OID_ARRAY_INIT;
- if (!repo_has_promisor_remote(the_repository))
+ if (!repo_has_promisor_remote(opt->repo))
return;
for (e = &plist->items[plist->nr-1]; e >= plist->items; --e) {
@@ -4619,10 +4619,10 @@ static int checkout(struct merge_options *opt,
unpack_opts.verbose_update = (opt->verbosity > 2);
unpack_opts.fn = twoway_merge;
unpack_opts.preserve_ignored = 0; /* FIXME: !opts->overwrite_ignore */
- if (repo_parse_tree(the_repository, prev) < 0)
+ if (repo_parse_tree(opt->repo, prev) < 0)
return -1;
init_tree_desc(&trees[0], &prev->object.oid, prev->buffer, prev->size);
- if (repo_parse_tree(the_repository, next) < 0)
+ if (repo_parse_tree(opt->repo, next) < 0)
return -1;
init_tree_desc(&trees[1], &next->object.oid, next->buffer, next->size);
@@ -5280,7 +5280,7 @@ redo:
if (result->clean >= 0) {
if (!opt->mergeability_only) {
- result->tree = repo_parse_tree_indirect(the_repository,
+ result->tree = repo_parse_tree_indirect(opt->repo,
&working_tree_oid);
if (!result->tree)
die(_("unable to read tree (%s)"),
@@ -5309,7 +5309,7 @@ static void merge_ort_internal(struct merge_options *opt,
struct strbuf merge_base_abbrev = STRBUF_INIT;
if (!merge_bases) {
- if (repo_get_merge_bases(the_repository, h1, h2,
+ if (repo_get_merge_bases(opt->repo, h1, h2,
&merge_bases) < 0) {
result->clean = -1;
goto out;
@@ -5440,20 +5440,20 @@ static void merge_recursive_config(struct merge_options *opt, int ui)
{
char *value = NULL;
int renormalize = 0;
- repo_config_get_int(the_repository, "merge.verbosity", &opt->verbosity);
- repo_config_get_int(the_repository, "diff.renamelimit", &opt->rename_limit);
- repo_config_get_int(the_repository, "merge.renamelimit", &opt->rename_limit);
- repo_config_get_bool(the_repository, "merge.renormalize", &renormalize);
+ repo_config_get_int(opt->repo, "merge.verbosity", &opt->verbosity);
+ repo_config_get_int(opt->repo, "diff.renamelimit", &opt->rename_limit);
+ repo_config_get_int(opt->repo, "merge.renamelimit", &opt->rename_limit);
+ repo_config_get_bool(opt->repo, "merge.renormalize", &renormalize);
opt->renormalize = renormalize;
- if (!repo_config_get_string(the_repository, "diff.renames", &value)) {
+ if (!repo_config_get_string(opt->repo, "diff.renames", &value)) {
opt->detect_renames = git_config_rename("diff.renames", value);
free(value);
}
- if (!repo_config_get_string(the_repository, "merge.renames", &value)) {
+ if (!repo_config_get_string(opt->repo, "merge.renames", &value)) {
opt->detect_renames = git_config_rename("merge.renames", value);
free(value);
}
- if (!repo_config_get_string(the_repository, "merge.directoryrenames", &value)) {
+ if (!repo_config_get_string(opt->repo, "merge.directoryrenames", &value)) {
int boolval = git_parse_maybe_bool(value);
if (0 <= boolval) {
opt->detect_directory_renames = boolval ?
@@ -5466,7 +5466,7 @@ static void merge_recursive_config(struct merge_options *opt, int ui)
free(value);
}
if (ui) {
- if (!repo_config_get_string(the_repository, "diff.algorithm", &value)) {
+ if (!repo_config_get_string(opt->repo, "diff.algorithm", &value)) {
long diff_algorithm = parse_algorithm_value(value);
if (diff_algorithm < 0)
die(_("unknown value for config '%s': %s"), "diff.algorithm", value);
@@ -5474,7 +5474,7 @@ static void merge_recursive_config(struct merge_options *opt, int ui)
free(value);
}
}
- repo_config(the_repository, git_xmerge_config, NULL);
+ repo_config(opt->repo, git_xmerge_config, NULL);
}
static void init_merge_options(struct merge_options *opt,
--
gitgitgadget
next prev parent reply other threads:[~2026-02-20 1:59 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-18 9:15 [PATCH 0/5] Avoid the_repository in merge-ort and replay Elijah Newren via GitGitGadget
2026-02-18 9:15 ` [PATCH 1/5] merge-ort: pass repository to write_tree() Elijah Newren via GitGitGadget
2026-02-18 9:15 ` [PATCH 2/5] merge-ort: replace the_repository with opt->repo Elijah Newren via GitGitGadget
2026-02-18 9:15 ` [PATCH 3/5] merge-ort: replace the_hash_algo with opt->repo->hash_algo Elijah Newren via GitGitGadget
2026-02-19 15:27 ` Patrick Steinhardt
2026-02-19 17:54 ` Elijah Newren
2026-02-18 9:15 ` [PATCH 4/5] merge-ort: prevent the_repository from coming back Elijah Newren via GitGitGadget
2026-02-19 9:48 ` Kristoffer Haugsbakk
2026-02-19 16:00 ` Elijah Newren
2026-02-19 15:27 ` Patrick Steinhardt
2026-02-19 18:42 ` Elijah Newren
2026-02-19 20:30 ` Junio C Hamano
2026-02-19 20:53 ` Elijah Newren
2026-02-18 9:15 ` [PATCH 5/5] replay: " Elijah Newren via GitGitGadget
2026-02-19 15:27 ` Patrick Steinhardt
2026-02-20 1:59 ` [PATCH v2 0/6] Avoid the_repository in merge-ort and replay Elijah Newren via GitGitGadget
2026-02-20 1:59 ` [PATCH v2 1/6] merge,diff: remove the_repository check before prefetching blobs Elijah Newren via GitGitGadget
2026-02-20 8:19 ` Patrick Steinhardt
2026-02-20 18:51 ` Elijah Newren
2026-02-20 1:59 ` [PATCH v2 2/6] merge-ort: pass repository to write_tree() Elijah Newren via GitGitGadget
2026-02-20 1:59 ` Elijah Newren via GitGitGadget [this message]
2026-02-20 1:59 ` [PATCH v2 4/6] merge-ort: replace the_hash_algo with opt->repo->hash_algo Elijah Newren via GitGitGadget
2026-02-20 1:59 ` [PATCH v2 5/6] merge-ort: prevent the_repository from coming back Elijah Newren via GitGitGadget
2026-02-20 1:59 ` [PATCH v2 6/6] replay: " Elijah Newren via GitGitGadget
2026-02-21 23:59 ` [PATCH v3 0/6] Avoid the_repository in merge-ort and replay Elijah Newren via GitGitGadget
2026-02-21 23:59 ` [PATCH v3 1/6] merge,diff: remove the_repository check before prefetching blobs Elijah Newren via GitGitGadget
2026-02-21 23:59 ` [PATCH v3 2/6] merge-ort: pass repository to write_tree() Elijah Newren via GitGitGadget
2026-02-21 23:59 ` [PATCH v3 3/6] merge-ort: replace the_repository with opt->repo Elijah Newren via GitGitGadget
2026-02-21 23:59 ` [PATCH v3 4/6] merge-ort: replace the_hash_algo with opt->repo->hash_algo Elijah Newren via GitGitGadget
2026-02-21 23:59 ` [PATCH v3 5/6] merge-ort: prevent the_repository from coming back Elijah Newren via GitGitGadget
2026-02-22 2:38 ` [PATCH v3 0/6] Avoid the_repository in merge-ort and replay Junio C Hamano
2026-02-22 5:03 ` Elijah Newren
2026-02-23 0:42 ` Derrick Stolee
2026-02-24 10:00 ` Patrick Steinhardt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=68af47ed187ea1bdd1b83ad8aae8d7be60a469c8.1771552788.git.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=git@vger.kernel.org \
--cc=kristofferhaugsbakk@fastmail.com \
--cc=newren@gmail.com \
--cc=ps@pks.im \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.