"GOT", but the "O" is a cute, smiling pufferfish. Index | Thread | Search

From:
Stefan Sperling <stsp@stsp.name>
Subject:
improve got fetch error reporting
To:
gameoftrees@openbsd.org
Date:
Sat, 4 Feb 2023 17:34:21 +0100

Download raw body.

Thread
With the new 'got fetch' default behaviour it can be a bit
unclear why the fetch operation is failing:

$ got fetch
got-fetch-pack: could not find any branches to fetch
got: could not find any branches to fetch
$ got branch
fetch-verify


With the patch below:

$ got fetch
got-fetch-pack: branch "refs/heads/fetch-verify" not found on server: could not find any branches to fetch
got: could not find any branches to fetch
$

ok?

diff /home/stsp/src/got
commit - 4ba151fd9e5cc3e537a47f063a95c894a6c5bed7
path + /home/stsp/src/got
blob - 77ba914fb971f5e412b57bd1633bda6ee0e1f26d
file + libexec/got-fetch-pack/got-fetch-pack.c
--- libexec/got-fetch-pack/got-fetch-pack.c
+++ libexec/got-fetch-pack/got-fetch-pack.c
@@ -484,6 +484,24 @@ fetch_pack(int fd, int packfd, uint8_t *pack_sha1,
 
 	/* Abort if we haven't found any branch to fetch. */
 	if (!found_branch) {
+		struct got_pathlist_entry *pe;
+
+		pe = TAILQ_FIRST(wanted_branches);
+		if (pe) {
+			err = got_error_fmt(GOT_ERR_FETCH_NO_BRANCH,
+			    "branch \"%s\" not found on server",
+			    pe->path);
+			goto done;
+		}
+
+		pe = TAILQ_FIRST(wanted_refs);
+		if (pe) {
+			err = got_error_fmt(GOT_ERR_FETCH_NO_BRANCH,
+			    "reference \"%s\" not found on server",
+			    pe->path);
+			goto done;
+		}
+
 		err = got_error(GOT_ERR_FETCH_NO_BRANCH);
 		goto done;
 	}