summaryrefslogtreecommitdiff
path: root/notes-merge.c
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2025-02-07 12:03:37 +0100
committerJunio C Hamano <gitster@pobox.com>2025-02-28 13:54:11 -0800
commit88dd321cfedc6ee190dfafe4670a83ea33cdf4a3 (patch)
tree0e94e96531181af8d226066182f92e8ae90da1ab /notes-merge.c
parent8ee018d863e521f32a9cb92db66c25e848b5e0d0 (diff)
path: drop `git_path()` in favor of `repo_git_path()`
Remove `git_path()` in favor of the `repo_git_path()` family of functions, which makes the implicit dependency on `the_repository` go away. Note that `git_path()` returned a string allocated via `get_pathname()`, which uses a rotating set of statically allocated buffers. Consequently, callers didn't have to free the returned string. The same isn't true for `repo_common_path()`, so we also have to add logic to free the returned strings. This refactoring also allows us to remove `repo_common_pathv()` as well as `get_pathname()` from the public interface. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'notes-merge.c')
-rw-r--r--notes-merge.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/notes-merge.c b/notes-merge.c
index 8c22a171c1..67a472020d 100644
--- a/notes-merge.c
+++ b/notes-merge.c
@@ -275,34 +275,38 @@ static void diff_tree_local(struct notes_merge_options *o,
static void check_notes_merge_worktree(struct notes_merge_options *o)
{
+ struct strbuf buf = STRBUF_INIT;
+
if (!o->has_worktree) {
/*
* Must establish NOTES_MERGE_WORKTREE.
* Abort if NOTES_MERGE_WORKTREE already exists
*/
- if (file_exists(git_path(NOTES_MERGE_WORKTREE)) &&
- !is_empty_dir(git_path(NOTES_MERGE_WORKTREE))) {
+ if (file_exists(repo_git_path_replace(the_repository, &buf, NOTES_MERGE_WORKTREE)) &&
+ !is_empty_dir(repo_git_path_replace(the_repository, &buf, NOTES_MERGE_WORKTREE))) {
if (advice_enabled(ADVICE_RESOLVE_CONFLICT))
die(_("You have not concluded your previous "
"notes merge (%s exists).\nPlease, use "
"'git notes merge --commit' or 'git notes "
"merge --abort' to commit/abort the "
"previous merge before you start a new "
- "notes merge."), git_path("NOTES_MERGE_*"));
+ "notes merge."), repo_git_path_replace(the_repository, &buf, "NOTES_MERGE_*"));
else
die(_("You have not concluded your notes merge "
- "(%s exists)."), git_path("NOTES_MERGE_*"));
+ "(%s exists)."), repo_git_path_replace(the_repository, &buf, "NOTES_MERGE_*"));
}
- if (safe_create_leading_directories_const(git_path(
+ if (safe_create_leading_directories_const(repo_git_path_replace(the_repository, &buf,
NOTES_MERGE_WORKTREE "/.test")))
die_errno("unable to create directory %s",
- git_path(NOTES_MERGE_WORKTREE));
+ repo_git_path_replace(the_repository, &buf, NOTES_MERGE_WORKTREE));
o->has_worktree = 1;
- } else if (!file_exists(git_path(NOTES_MERGE_WORKTREE)))
+ } else if (!file_exists(repo_git_path_replace(the_repository, &buf, NOTES_MERGE_WORKTREE)))
/* NOTES_MERGE_WORKTREE should already be established */
die("missing '%s'. This should not happen",
- git_path(NOTES_MERGE_WORKTREE));
+ repo_git_path_replace(the_repository, &buf, NOTES_MERGE_WORKTREE));
+
+ strbuf_release(&buf);
}
static void write_buf_to_worktree(const struct object_id *obj,