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

[PATCH] git fetch one tag only

From
cheng renquan <crquan@gmail.com>
Date
Jun 7, 2012, 01:40 UTC
Message-ID
<CAH5vBdK_M+7Hjk=juVeP7Phqvs2+npknFD-=45OVR032k5S-0A@mail.gmail.com>
Someone maybe like me is working in the way of following one central
git repository
while sometimes need to fetch some code or tags from a 3rd git repo,
but unfortunately the 3rd repo may contain a lot of tags not all I want
to fetch to mess up my local repo, at this time I want to fetch only one tag
from the 3rd repo, but the syntax of
  `git fetch 3rd-repo the-tag-name`

really fetched the code of the-tag-name from 3rd-repo, but forgot the tag itself; this patch enhanced the above syntax to create the tag itself;

 builtin/fetch.c |    8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/builtin/fetch.c b/builtin/fetch.c
index bb9a074..9a3ec4a 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -439,6 +439,14 @@ static int store_updated_refs(const char
*raw_url, const char *remote_name,
 			else if (!prefixcmp(rm->name, "refs/tags/")) {
 				kind = "tag";
 				what = rm->name + 10;
+				if (!ref) {
+					unsigned char sha1[20];
+					ref = alloc_ref(rm->name);
+					hashcpy(ref->new_sha1, rm->old_sha1);
+					if (!get_sha1(rm->name, sha1))
+						hashcpy(ref->old_sha1, sha1);
+				}
 			}
 			else if (!prefixcmp(rm->name, "refs/remotes/")) {
 				kind = "remote-tracking branch";
-- 
cheng renquan (程任全)
Next: Junio C Hamano
Message 1 of 9 in “git fetch one tag only”
  1. git fetch one tag onlycheng renquan, Jun 7, 2012
  2. Junio C HamanoJun 7, 2012
  3. cheng renquanJun 7, 2012
  4. Junio C HamanoJun 7, 2012
  5. cheng renquanJun 7, 2012
  6. cheng renquanJun 7, 2012
  7. Junio C HamanoJun 7, 2012
  8. cheng renquanJun 8, 2012
  9. Junio C HamanoJun 8, 2012

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.