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

Re: [PATCH 0/3] git remote update: Check args and fallback to remotes

From
Jeff King <peff@peff.net>
Date
Apr 6, 2009, 20:18 UTC
Message-ID
<20090406201823.GD28120@coredump.intra.peff.net>
In-Reply-To
<1239025262-16960-1-git-send-email-finnag@pvv.org>
On Mon, Apr 06, 2009 at 03:40:59PM +0200, Finn Arne Gangstad wrote:
Show 5 quoted lines
> This series is on top of next.
> 
> git remote update <non-existing> would previously silently do nothing.
> With this patch series, it will (with 1/3) error out when non-existing groups
> are given, and with 2/3 & 3/3 it will use a remote if a group cannot be found.

Great, this was on my todo list so I am happy that procrastination saved me some work. :)

The patches look fine to me, except that there are no tests. The patch below adds a "remote groups" test script. There is a slight bit of overlap with the update tests from t5505, but I don't think it is a problem.

It is intended to be applied before your series. Your 1/3 would switch t5506.3 from expect_failure to expect_success, and 3/3 would switch t5506.6 from failure to success.

-- >8 --
Subject: [PATCH] add tests for remote groups

This tries to systematically cover existing behavior, and also mark some expect_failure cases for desired behavior.

Signed-off-by: Jeff King <peff@peff.net>
---
 t/t5506-remote-groups.sh |   81 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 81 insertions(+), 0 deletions(-)
 create mode 100755 t/t5506-remote-groups.sh
diff --git a/t/t5506-remote-groups.sh b/t/t5506-remote-groups.sh
new file mode 100755
index 0000000..6653a9c
--- /dev/null
+++ b/t/t5506-remote-groups.sh
@@ -0,0 +1,81 @@
+#!/bin/sh
+
+test_description='git remote group handling'
+. ./test-lib.sh
+
+mark() {
+	echo "$1" >mark
+}
+
+update_repo() {
+	(cd $1 &&
+	echo content >>file &&
+	git add file &&
+	git commit -F ../mark)
+}
+
+update_repos() {
+	update_repo one $1 &&
+	update_repo two $1
+}
+
+repo_fetched() {
+	if test "`git log -1 --pretty=format:%s $1 --`" = "`cat mark`"; then
+		echo >&2 "repo was fetched: $1"
+		return 0
+	fi
+	echo >&2 "repo was not fetched: $1"
+	return 1
+}
+
+test_expect_success 'setup' '
+	mkdir one && (cd one && git init) &&
+	mkdir two && (cd two && git init) &&
+	git remote add -m master one one &&
+	git remote add -m master two two
+'
+
+test_expect_success 'no group updates all' '
+	mark update-all &&
+	update_repos &&
+	git remote update &&
+	repo_fetched one &&
+	repo_fetched two
+'
+
+test_expect_failure 'nonexistant group produces error' '
+	mark nonexistant &&
+	update_repos &&
+	test_must_fail git remote update nonexistant &&
+	! repo_fetched one &&
+	! repo_fetched two
+'
+
+test_expect_success 'updating group updates all members' '
+	mark group-all &&
+	update_repos &&
+	git config --add remotes.all one &&
+	git config --add remotes.all two &&
+	git remote update all &&
+	repo_fetched one &&
+	repo_fetched two
+'
+
+test_expect_success 'updating group does not update non-members' '
+	mark group-some &&
+	update_repos &&
+	git config --add remotes.some one &&
+	git remote update some &&
+	repo_fetched one &&
+	! repo_fetched two
+'
+
+test_expect_failure 'updating remote name updates that remote' '
+	mark remote-name &&
+	update_repos &&
+	git remote update one &&
+	repo_fetched one &&
+	! repo_fetched two
+'
+
+test_done
-- 
1.6.2.2.585.g1e067
Previous: Finn Arne Gangstad
Message 10 of 10 in “git remote update: Check args and fallback to remotes”
  1. 0/3 git remote update: Check args and fallback to remotesFinn Arne Gangstad, Apr 6, 2009
  2. 1/3 git remote update: Report error for non-existing groupsFinn Arne Gangstad, Apr 6, 2009
  3. Junio C HamanoApr 8, 2009
  4. Finn Arne GangstadApr 8, 2009
  5. Junio C HamanoApr 8, 2009
  6. Jeff KingApr 8, 2009
  7. Junio C HamanoApr 8, 2009
  8. 2/3 remote: New function remote_is_configured()Finn Arne Gangstad, Apr 6, 2009
  9. 3/3 git remote update: Fallback to remote if group does not existFinn Arne Gangstad, Apr 6, 2009
  10. Jeff KingApr 6, 2009

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.