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

[v3 PATCH 1/2] Honor "tagopt = --tags" configuration option

From
Samuel Tardieu <sam@rfc1149.net>
Date
Apr 19, 2010, 23:31 UTC
Message-ID
<20100419233125.3631.97051.stgit@localhost.localdomain>
In-Reply-To
<20100419233026.3631.67086.stgit@localhost.localdomain>

If the "tagopt = --tags" option of a remote is set, all tags will be fetched as in "git fetch --tags".

Signed-off-by: Samuel Tardieu <sam@rfc1149.net>
---
 Documentation/config.txt      |    4 +++-
 contrib/examples/git-fetch.sh |    4 +++-
 remote.c                      |    2 ++
 3 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/Documentation/config.txt b/Documentation/config.txt
index f45ae9c..8e7fd88 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -1587,7 +1587,9 @@ remote.<name>.uploadpack::
 
 remote.<name>.tagopt::
 	Setting this value to \--no-tags disables automatic tag following when
-	fetching from remote <name>
+	fetching from remote <name>. Setting it to \--tags will fetch every
+	tag from remote <name>, even if they are not reachable from remote
+	branch heads.
 
 remote.<name>.vcs::
 	Setting this to a value <vcs> will cause git to interact with
diff --git a/contrib/examples/git-fetch.sh b/contrib/examples/git-fetch.sh
index e44af2c..a314273 100755
--- a/contrib/examples/git-fetch.sh
+++ b/contrib/examples/git-fetch.sh
@@ -127,10 +127,12 @@ then
 	orig_head=$(git rev-parse --verify HEAD 2>/dev/null)
 fi
 
-# Allow --notags from remote.$1.tagopt
+# Allow --tags/--notags from remote.$1.tagopt
 case "$tags$no_tags" in
 '')
 	case "$(git config --get "remote.$1.tagopt")" in
+	--tags)
+		tags=t ;;
 	--no-tags)
 		no_tags=t ;;
 	esac
diff --git a/remote.c b/remote.c
index c70181c..0f073e0 100644
--- a/remote.c
+++ b/remote.c
@@ -443,6 +443,8 @@ static int handle_config(const char *key, const char *value, void *cb)
 	} else if (!strcmp(subkey, ".tagopt")) {
 		if (!strcmp(value, "--no-tags"))
 			remote->fetch_tags = -1;
+		else if (!strcmp(value, "--tags"))
+			remote->fetch_tags = 2;
 	} else if (!strcmp(subkey, ".proxy")) {
 		return git_config_string((const char **)&remote->http_proxy,
 					 key, value);
Previous: Samuel TardieuNext: Samuel Tardieu
Message 2 of 3 in “Add --tags/--no-tags options to "git add remote"”
  1. 0/2 Add --tags/--no-tags options to "git add remote"Samuel Tardieu, Apr 19, 2010
  2. 1/2 Honor "tagopt = --tags" configuration optionSamuel Tardieu, Apr 19, 2010
  3. 2/2 remote add: add a --no-tags (-n) optionSamuel Tardieu, Apr 19, 2010

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.