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

[PATCH 4/6] Allow "git notes merge" to use refs/remote-notes/ as a source.

From
YDYann Dirson <ydirson@free.fr>
Date
Jun 18, 2011, 21:06 UTC
Message-ID
<1308431208-13353-5-git-send-email-ydirson@free.fr>
In-Reply-To
<1308431208-13353-1-git-send-email-ydirson@free.fr>
Signed-off-by: Yann Dirson <ydirson@free.fr>
---
 Documentation/git-notes.txt |    5 +++++
 builtin/notes.c             |    4 ++--
 notes.c                     |    5 +++--
 notes.h                     |    2 +-
 revision.c                  |    2 +-
 5 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/Documentation/git-notes.txt b/Documentation/git-notes.txt
index 6a187f2..7ce8a24 100644
--- a/Documentation/git-notes.txt
+++ b/Documentation/git-notes.txt
@@ -104,6 +104,11 @@ and instructs the user to manually resolve the conflicts there.
 When done, the user can either finalize the merge with
 'git notes merge --commit', or abort the merge with
 'git notes merge --abort'.
++
+In addition to `refs/notes/`, the remote notes ref is accepted
+from the `refs/remote-notes/` namespace.  This is intended to
+provide notes with support for a workflow similar to the one used
+for heads references.
 
 remove::
 	Remove the notes for given objects (defaults to HEAD). When
diff --git a/builtin/notes.c b/builtin/notes.c
index ae89d38..6bff44f 100644
--- a/builtin/notes.c
+++ b/builtin/notes.c
@@ -905,7 +905,7 @@ static int merge(int argc, const char **argv, const char *prefix)
 
 	o.local_ref = default_notes_ref();
 	strbuf_addstr(&remote_ref, argv[0]);
-	expand_notes_ref(&remote_ref);
+	expand_notes_ref(&remote_ref, 1);
 	o.remote_ref = remote_ref.buf;
 
 	if (strategy) {
@@ -1075,7 +1075,7 @@ int cmd_notes(int argc, const char **argv, const char *prefix)
 	if (override_notes_ref) {
 		struct strbuf sb = STRBUF_INIT;
 		strbuf_addstr(&sb, override_notes_ref);
-		expand_notes_ref(&sb);
+		expand_notes_ref(&sb, 0);
 		setenv("GIT_NOTES_REF", sb.buf, 1);
 		strbuf_release(&sb);
 	}
diff --git a/notes.c b/notes.c
index 1a5676a..12afc02 100644
--- a/notes.c
+++ b/notes.c
@@ -1282,9 +1282,10 @@ int copy_note(struct notes_tree *t,
 	return 0;
 }
 
-void expand_notes_ref(struct strbuf *sb)
+void expand_notes_ref(struct strbuf *sb, int allow_remotes)
 {
-	if (!prefixcmp(sb->buf, "refs/notes/"))
+	if (!prefixcmp(sb->buf, "refs/notes/") ||
+	    (allow_remotes && !prefixcmp(sb->buf, "refs/remote-notes/")))
 		return; /* we're happy */
 	else if (!prefixcmp(sb->buf, "notes/"))
 		strbuf_insert(sb, 0, "refs/", 5);
diff --git a/notes.h b/notes.h
index d8ae29d..80219ec 100644
--- a/notes.h
+++ b/notes.h
@@ -317,6 +317,6 @@ void string_list_add_refs_from_colon_sep(struct string_list *list,
 					 const char *globs);
 
 /* Expand inplace a note ref like "foo" or "notes/foo" into "refs/notes/foo" */
-void expand_notes_ref(struct strbuf *sb);
+void expand_notes_ref(struct strbuf *sb, int allow_remotes);
 
 #endif
diff --git a/revision.c b/revision.c
index c46cfaa..b482314 100644
--- a/revision.c
+++ b/revision.c
@@ -1393,7 +1393,7 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
 		}
 		else
 			strbuf_addstr(&buf, arg+8);
-		expand_notes_ref(&buf);
+		expand_notes_ref(&buf, 1);
 		string_list_append(&revs->notes_opt.extra_notes_refs,
 				   strbuf_detach(&buf, NULL));
 	} else if (!strcmp(arg, "--no-notes")) {
-- 
1.7.5.3
Previous: Yann DirsonNext: Johan Herland
Message 19 of 27 in “Commit notes workflow”
  1. Yann DirsonJun 13, 2011
  2. Johan HerlandJun 14, 2011
  3. ydirson@free.frJun 15, 2011
  4. Johan HerlandJun 15, 2011
  5. ydirson@free.frJun 15, 2011
  6. Johan HerlandJun 15, 2011
  7. 0/6 Small notes usability improvementsYann Dirson, Jun 18, 2011
  8. 1/6 Bring notes.c template handling in line with commit.c.Yann Dirson, Jun 18, 2011
  9. Johan HerlandJun 19, 2011
  10. Junio C HamanoJun 19, 2011
  11. Johan HerlandJun 20, 2011
  12. Yann DirsonJun 20, 2011
  13. Yann DirsonJun 21, 2011
  14. 2/6 Factorize shortening of notes refname for display.Yann Dirson, Jun 18, 2011
  15. Johan HerlandJun 19, 2011
  16. Junio C HamanoJun 19, 2011
  17. Yann DirsonJun 20, 2011
  18. 3/6 Include name of notes ref in template when creating/editing notes.Yann Dirson, Jun 18, 2011
  19. 4/6 Allow "git notes merge" to use refs/remote-notes/ as a source.Yann Dirson, Jun 18, 2011
  20. Johan HerlandJun 19, 2011
  21. 5/6 Assume a note ref starting with refs must not be prepended refs/notes/.Yann Dirson, Jun 18, 2011
  22. 6/6 RFC - Notes merge: die when asked to merge a non-existent ref.Yann Dirson, Jun 18, 2011
  23. Johan HerlandJun 19, 2011
  24. Jeff KingJun 20, 2011
  25. Johan HerlandJun 20, 2011
  26. Johan HerlandJun 19, 2011
  27. Johan HerlandJun 14, 2011

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.