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

[PATCH v3 0/4] git remote improvements

From
Thomas Gummerer <t.gummerer@gmail.com>
Date
Feb 16, 2016, 09:47 UTC
Message-ID
<1455616072-20838-1-git-send-email-t.gummerer@gmail.com>
In-Reply-To
<1455575984-24348-1-git-send-email-t.gummerer@gmail.com>

Previous rounds are at $gmane/286214 and $gmane/286278. Thanks to Peff and Eric for the reviews on the previous round.

This version changes two checks in [1/4], and uses test_config in the tests instead of calling git config directly.

Interdiff below:
diff --git a/remote.c b/remote.c
index d10ae00..f001681 100644
--- a/remote.c
+++ b/remote.c
@@ -358,17 +358,17 @@ static int handle_config(const char *key, const char *value, void *cb)
 		return 0;
 
 	/* Handle remote.* variables */
-	if (!strcmp(subkey, "pushdefault"))
+	if (!name && !strcmp(subkey, "pushdefault"))
 		return git_config_string(&pushremote_name, key, value);
 
+	if (!name)
+		return 0;
 	/* Handle remote.<name>.* variables */
-	if (*(name ? name : subkey) == '/') {
+	if (*name == '/') {
 		warning("Config remote shorthand cannot begin with '/': %s",
-			name ? name : subkey);
+			name);
 		return 0;
 	}
-	if (!name)
-		return 0;
 	remote = make_remote(name, namelen);
 	remote->origin = REMOTE_CONFIG;
 	if (!strcmp(subkey, "mirror"))
diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh
index 142ae62..94079a0 100755
--- a/t/t5505-remote.sh
+++ b/t/t5505-remote.sh
@@ -158,18 +158,15 @@ test_expect_success 'rename errors out early when deleting non-existent branch'
 '
 
 test_expect_success 'add existing foreign_vcs remote' '
-	git config --add remote.foo.vcs "bar" &&
-	test_when_finished git remote rm foo &&
+	test_config remote.foo.vcs bar &&
 	echo "fatal: remote foo already exists." >expect &&
 	test_must_fail git remote add foo bar 2>actual &&
 	test_i18ncmp expect actual
 '
 
 test_expect_success 'add existing foreign_vcs remote' '
-	git config --add remote.foo.vcs "bar" &&
-	git config --add remote.bar.vcs "bar" &&
-	test_when_finished git remote rm foo &&
-	test_when_finished git remote rm bar &&
+	test_config remote.foo.vcs bar &&
+	test_config remote.bar.vcs bar &&
 	echo "fatal: remote bar already exists." >expect &&
 	test_must_fail git remote rename foo bar 2>actual &&
 	test_i18ncmp expect actual


Thomas Gummerer (4):
  remote: use parse_config_key
  remote: simplify remote_is_configured()
  remote: actually check if remote exits
  remote: use remote_is_configured() for add and rename

 builtin/fetch.c   |  5 ++--
 builtin/remote.c  | 23 +++++++---------
 remote.c          | 82 +++++++++++++++++++++++--------------------------------
 remote.h          |  3 +-
 t/t5505-remote.sh | 33 ++++++++++++++++++++++
 5 files changed, 81 insertions(+), 65 deletions(-)
-- 
2.7.1.410.g6faf27b
Previous: Thomas GummererNext: Thomas Gummerer
Message 11 of 17 in “git remote improvements”
  1. 0/4 git remote improvementsThomas Gummerer, Feb 15, 2016
  2. 1/4 remote: use parse_config_keyThomas Gummerer, Feb 15, 2016
  3. Jeff KingFeb 15, 2016
  4. Thomas GummererFeb 16, 2016
  5. 2/4 remote: simplify remote_is_configured()Thomas Gummerer, Feb 15, 2016
  6. 3/4 remote: actually check if remote exitsThomas Gummerer, Feb 15, 2016
  7. 4/4 remote: use remote_is_configured() for add and renameThomas Gummerer, Feb 15, 2016
  8. Eric SunshineFeb 15, 2016
  9. Jeff KingFeb 15, 2016
  10. Thomas GummererFeb 16, 2016
  11. 0/4 git remote improvementsThomas Gummerer, Feb 16, 2016
  12. 1/4 remote: use parse_config_keyThomas Gummerer, Feb 16, 2016
  13. 2/4 remote: simplify remote_is_configured()Thomas Gummerer, Feb 16, 2016
  14. 3/4 remote: actually check if remote exitsThomas Gummerer, Feb 16, 2016
  15. 4/4 remote: use remote_is_configured() for add and renameThomas Gummerer, Feb 16, 2016
  16. Jeff KingFeb 16, 2016
  17. Junio C HamanoFeb 16, 2016

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.