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

Re: [PATCH v2 4/4] remote show: list tracked remote branches with -n

From
OMOlivier Marin <dkr+ml.git@free.fr>
Date
Jun 10, 2008, 22:54 UTC
Message-ID
<484F0639.4060307@free.fr>
In-Reply-To
<7vod69cder.fsf@gitster.siamese.dyndns.org>
From: Olivier Marin <dkr@freesurf.fr>
Signed-off-by: Olivier Marin <dkr@freesurf.fr>
---
Junio C Hamano a écrit :
Show 17 quoted lines
> Olivier Marin <dkr+ml.git@free.fr> writes:
> 
>> +static int append_ref_to_tracked_list(const char *refname,
>> +	const unsigned char *sha1, int flags, void *cb_data)
>> +{
>> +	struct ref_states *states = cb_data;
>> +	struct strbuf buf;
>> +
>> +	strbuf_init(&buf, 0);
>> +	strbuf_addf(&buf, "%s/", states->remote->name);
>> +	if (strncmp(buf.buf, refname, buf.len)) {
>> +		strbuf_release(&buf);
>> +		return 0;
>> +	}
> 
> Doesn't this have the same issue Shawn fixed in 7ad2458 (Make "git-remote
> rm" delete refs acccording to fetch specs, 2008-06-01)?
You are right. This version should fix this.
 builtin-remote.c  |   22 ++++++++++++++++++++--
 t/t5505-remote.sh |    2 ++
 2 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/builtin-remote.c b/builtin-remote.c
index 851bdde..d55d320 100644
--- a/builtin-remote.c
+++ b/builtin-remote.c
@@ -444,6 +444,22 @@ static int get_remote_ref_states(const char *name,
 	return 0;
 }
 
+static int append_ref_to_tracked_list(const char *refname,
+	const unsigned char *sha1, int flags, void *cb_data)
+{
+	struct ref_states *states = cb_data;
+	struct refspec refspec;
+
+	memset(&refspec, 0, sizeof(refspec));
+	refspec.dst = (char *)refname;
+	if (!remote_find_tracking(states->remote, &refspec)) {
+		path_list_append(skip_prefix(refspec.src, "refs/heads/"),
+			&states->tracked);
+	}
+
+	return 0;
+}
+
 static int show(int argc, const char **argv)
 {
 	int no_query = 0, result = 0;
@@ -494,10 +510,12 @@ static int show(int argc, const char **argv)
 			strbuf_release(&buf);
 			show_list("  Stale tracking branch%s (use 'git remote "
 				"prune')", &states.stale);
-			show_list("  Tracked remote branch%s",
-				&states.tracked);
 		}
 
+		if (no_query)
+			for_each_ref(append_ref_to_tracked_list, &states);
+		show_list("  Tracked remote branch%s", &states.tracked);
+
 		if (states.remote->push_refspec_nr) {
 			printf("  Local branch%s pushed with 'git push'\n   ",
 				states.remote->push_refspec_nr > 1 ?
diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh
index c27cfad..fbf0d30 100755
--- a/t/t5505-remote.sh
+++ b/t/t5505-remote.sh
@@ -143,6 +143,8 @@ cat > test/expect << EOF
   URL: $(pwd)/one/.git
   Remote branch merged with 'git pull' while on branch master
     master
+  Tracked remote branches
+    master side
   Local branches pushed with 'git push'
     master:upstream +refs/tags/lastbackup
 EOF
Previous: Junio C HamanoNext: Jakub Narebski
Message 33 of 36 in “remote show/prune: strange -n(--dry-run) option.”
  1. Olivier MarinJun 8, 2008
  2. Documentation/git-remote.txt: remove description for useless -n optionOlivier Marin, Jun 8, 2008
  3. Documentation/git-remote.txt: remove description for useless -n optiondkr+ml.git@free.fr, Jun 8, 2008
  4. Junio C HamanoJun 8, 2008
  5. Olivier MarinJun 9, 2008
  6. remote show: fix the -n optionOlivier Marin, Jun 9, 2008
  7. Johannes SchindelinJun 9, 2008
  8. Olivier MarinJun 9, 2008
  9. Johannes SchindelinJun 9, 2008
  10. Olivier MarinJun 9, 2008
  11. Johannes SchindelinJun 9, 2008
  12. Olivier MarinJun 9, 2008
  13. Olivier MarinJun 9, 2008
  14. Johannes SchindelinJun 9, 2008
  15. remote show: fix the -n optionOlivier Marin, Jun 9, 2008
  16. Johannes SchindelinJun 9, 2008
  17. Olivier MarinJun 9, 2008
  18. Johannes SchindelinJun 9, 2008
  19. Olivier MarinJun 9, 2008
  20. builtin-remote: make reuse of code easier by not die()ingJohannes Schindelin, Jun 9, 2008
  21. Olivier MarinJun 9, 2008
  22. Junio C HamanoJun 10, 2008
  23. Shawn O. PearceJun 10, 2008
  24. Johannes SchindelinJun 10, 2008
  25. 0/4 remote show/prune improvementOlivier Marin, Jun 10, 2008
  26. 1/4 remote show: fix the -n optionOlivier Marin, Jun 10, 2008
  27. 2/4 builtin-remote: split show_or_prune() in two separate functionsOlivier Marin, Jun 10, 2008
  28. 3/4 remote prune: print the list of pruned branchesOlivier Marin, Jun 10, 2008
  29. Junio C HamanoJun 12, 2008
  30. Olivier MarinJun 12, 2008
  31. 4/4 remote show: list tracked remote branches with -nOlivier Marin, Jun 10, 2008
  32. Junio C HamanoJun 10, 2008
  33. Olivier MarinJun 10, 2008
  34. Jakub NarebskiJun 10, 2008
  35. Olivier MarinJun 10, 2008
  36. Jakub NarebskiJun 10, 2008

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.