commit 4c63d3a5b747a6acb4786af9c9e24d422feff00b from: Stefan Sperling via: Thomas Adam date: Tue Feb 07 20:14:55 2023 UTC only fetch the work tree's branch by default if it is inside "refs/heads/" ok jamsek commit - 84073f62fdfec793493251a7adbb339cd265a45b commit + 4c63d3a5b747a6acb4786af9c9e24d422feff00b blob - cef221ebbdea2d52cf20a1587dd1beb5354edd9c blob + 6e5b65aa69900bbf246ac029c6cd4c455abe1b84 --- got/got.c +++ got/got.c @@ -2297,6 +2297,7 @@ cmd_fetch(int argc, char *argv[]) int verbosity = 0, fetch_all_branches = 0, list_refs_only = 0; int delete_refs = 0, replace_tags = 0, delete_remote = 0; int *pack_fds = NULL, have_bflag = 0; + const char *worktree_branch = NULL; TAILQ_INIT(&refs); TAILQ_INIT(&symrefs); @@ -2537,7 +2538,15 @@ cmd_fetch(int argc, char *argv[]) server_path, verbosity); if (error) goto done; + + if (worktree && !have_bflag) { + const char *refname; + refname = got_worktree_get_head_ref_name(worktree); + if (strncmp(refname, "refs/heads/", 11) == 0) + worktree_branch = refname; + } + fpa.last_scaled_size[0] = '\0'; fpa.last_p_indexed = -1; fpa.last_p_resolved = -1; @@ -2549,9 +2558,7 @@ cmd_fetch(int argc, char *argv[]) error = got_fetch_pack(&pack_hash, &refs, &symrefs, remote->name, remote->mirror_references, fetch_all_branches, &wanted_branches, &wanted_refs, list_refs_only, verbosity, fetchfd, repo, - (worktree != NULL && !have_bflag) ? - got_worktree_get_head_ref_name(worktree) : NULL, - fetch_progress, &fpa); + worktree_branch, fetch_progress, &fpa); if (error) goto done;