git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 07/31] refs.c: add repo_dwim_log()

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Feb 17, 2019, 10:08 UTC
Message-ID
<20190217100913.4127-8-pclouds@gmail.com>
In-Reply-To
<20190217100913.4127-1-pclouds@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 refs.c | 21 +++++++++++++++------
 refs.h |  1 +
 2 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/refs.c b/refs.c
index bd0fec5776..edea001446 100644
--- a/refs.c
+++ b/refs.c
@@ -603,9 +603,11 @@ int expand_ref(struct repository *repo, const char *str, int len,
 	return refs_found;
 }
 
-int dwim_log(const char *str, int len, struct object_id *oid, char **log)
+int repo_dwim_log(struct repository *r, const char *str, int len,
+		  struct object_id *oid, char **log)
 {
-	char *last_branch = substitute_branch_name(the_repository, &str, &len);
+	struct ref_store *refs = get_main_ref_store(r);
+	char *last_branch = substitute_branch_name(r, &str, &len);
 	const char **p;
 	int logs_found = 0;
 	struct strbuf path = STRBUF_INIT;
@@ -617,13 +619,15 @@ int dwim_log(const char *str, int len, struct object_id *oid, char **log)
 
 		strbuf_reset(&path);
 		strbuf_addf(&path, *p, len, str);
-		ref = resolve_ref_unsafe(path.buf, RESOLVE_REF_READING,
-					 &hash, NULL);
+		ref = refs_resolve_ref_unsafe(refs, path.buf,
+					      RESOLVE_REF_READING,
+					      &hash, NULL);
 		if (!ref)
 			continue;
-		if (reflog_exists(path.buf))
+		if (refs_reflog_exists(refs, path.buf))
 			it = path.buf;
-		else if (strcmp(ref, path.buf) && reflog_exists(ref))
+		else if (strcmp(ref, path.buf) &&
+			 refs_reflog_exists(refs, ref))
 			it = ref;
 		else
 			continue;
@@ -639,6 +643,11 @@ int dwim_log(const char *str, int len, struct object_id *oid, char **log)
 	return logs_found;
 }
 
+int dwim_log(const char *str, int len, struct object_id *oid, char **log)
+{
+	return repo_dwim_log(the_repository, str, len, oid, log);
+}
+
 static int is_per_worktree_ref(const char *refname)
 {
 	return !strcmp(refname, "HEAD") ||
diff --git a/refs.h b/refs.h
index fd3dc1d0f4..859dffe691 100644
--- a/refs.h
+++ b/refs.h
@@ -150,6 +150,7 @@ void expand_ref_prefix(struct argv_array *prefixes, const char *prefix);
 
 int expand_ref(struct repository *r, const char *str, int len, struct object_id *oid, char **ref);
 int repo_dwim_ref(struct repository *r, const char *str, int len, struct object_id *oid, char **ref);
+int repo_dwim_log(struct repository *r, const char *str, int len, struct object_id *oid, char **ref);
 int dwim_ref(const char *str, int len, struct object_id *oid, char **ref);
 int dwim_log(const char *str, int len, struct object_id *oid, char **ref);
 
-- 
2.21.0.rc0.328.g0e39304f8d
Previous: Nguyễn Thái Ngọc DuyNext: Nguyễn Thái Ngọc Duy
Message 8 of 32 in “Kill the_repository in sha1-name.c”
  1. 00/31 Kill the_repository in sha1-name.cNguyễn Thái Ngọc Duy, Feb 17, 2019
  2. 01/31 packfile.c: add repo_approximate_object_count()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  3. 02/31 refs.c: add refs_ref_exists()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  4. 03/31 refs.c: add refs_shorten_unambiguous_ref()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  5. 04/31 refs.c: remove the_repo from substitute_branch_name()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  6. 05/31 refs.c: remove the_repo from expand_ref()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  7. 06/31 refs.c: add repo_dwim_ref()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  8. 07/31 refs.c: add repo_dwim_log()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  9. 08/31 refs.c: remove the_repo from read_ref_at()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  10. 09/31 commit.c: add repo_get_commit_tree()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  11. 10/31 sha1-name.c: remove the_repo from sort_ambiguous()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  12. 11/31 sha1-name.c: remove the_repo from find_abbrev_len_packed()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  13. 12/31 sha1-name.c: add repo_find_unique_abbrev_r()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  14. 13/31 sha1-name.c: store and use repo in struct disambiguate_stateNguyễn Thái Ngọc Duy, Feb 17, 2019
  15. 14/31 sha1-name.c: add repo_for_each_abbrev()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  16. 15/31 sha1-name.c: remove the_repo from get_short_oid()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  17. 16/31 sha1-name.c: remove the_repo from interpret_nth_prior_checkout()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  18. 17/31 sha1-name.c: remove the_repo from interpret_branch_mark()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  19. 18/31 sha1-name.c: add repo_interpret_branch_name()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  20. 19/31 sha1-name.c: remove the_repo from get_oid_oneline()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  21. 20/31 sha1-name.c: remove the_repo from get_describe_name()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  22. 21/31 sha1-name.c: remove the_repo from get_oid_basic()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  23. 23/31 sha1-name.c: remove the_repo from handle_one_ref()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  24. 22/31 sha1-name.c: remove the_repo from get_oid_1()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  25. 24/31 sha1-name.c: remove the_repo from diagnose_invalid_index_path()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  26. 25/31 sha1-name.c: remove the_repo from resolve_relative_path()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  27. 26/31 sha1-name.c: remove the_repo from get_oid_with_context_1()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  28. 27/31 sha1-name.c: add repo_get_oid()Nguyễn Thái Ngọc Duy, Feb 17, 2019
  29. 28/31 submodule-config.c: use repo_get_oid for reading .gitmodulesNguyễn Thái Ngọc Duy, Feb 17, 2019
  30. 29/31 sha1-name.c: remove the_repo from maybe_die_on_misspelt_object_nameNguyễn Thái Ngọc Duy, Feb 17, 2019
  31. 30/31 sha1-name.c: remove the_repo from other get_oid_*Nguyễn Thái Ngọc Duy, Feb 17, 2019
  32. 31/31 sha1-name.c: remove the_repo from get_oid_mb()Nguyễn Thái Ngọc Duy, Feb 17, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.