It's good to hear that the bug could get a fix! Looking forward to it! The documentation does not say the expected behavior of that, so it's under-specified whether it's a feature or a bug. On Mon, Sep 9, 2024 at 9:13 PM Phillip Wood <phillip.wood123@xxxxxxxxx> wrote: > > On 05/09/2024 23:24, Han Jiang wrote: > > A way to get into the state is `git remote set-branches <remote>` > > (followed by zero <branch>es), which removes `remote.server.fetch` > > configuration variable. > > Oh, I wonder if that is a feature or a bug? I see we don't sanity check > the branch name either so we'll happily create refspecs containing any > old rubbish. I'll send a patch series that fixes the original bug and > checks the branch names later this week. > > Best Wishes > > Phillip > > > After that, `git remote set-branches <remote> > > <branch>…` does not work. (But `git remote set-branches --add` can be > > used to get out of the corrupted state.) > > > > Shortened version of the example: > > git remote add server git@xxxxxxxxxxx > > git config list --local > > git remote set-branches server > > git config list --local > > git remote set-branches server branch1 branch2 > > git config list --local > > > > On Thu, Sep 5, 2024 at 9:07 PM Phillip Wood <phillip.wood123@xxxxxxxxx> wrote: > >> > >> On 03/09/2024 11:37, Han Jiang wrote: > >>> Thank you for filling out a Git bug report! > >>> Please answer the following questions to help us understand your issue. > >>> > >>> What did you do before the bug happened? (Steps to reproduce your issue) > >> > >> It is always helpful to show how to reproduce a bug but please try and > >> aim for a minimal reproduction recipe. It is much easier to follow if > >> you show which output lines come from which command. In this case one > >> can reproduce the issue with > >> > >> $ git remote add test git@xxxxxxxxxxx > >> $ git config --get-all remote.test.fetch > >> +refs/heads/*:refs/remotes/test/* > >> $ git config --unset-all remote.test.fetch > >> $ git config --get-all remote.test.fetch > >> $ git remote set-branches test main topic > >> $ git config --get-all remote.test.fetch > >> > >> I haven't looked into what causes this. I wonder how likely users are to > >> be affected - how did you get into a state where there was no fetch > >> refspec set for your remote? > >> > >> Best Wishes > >> > >> Phillip > >> > >>> cd '/'; cd '/'; rm --force --recursive -- './test_git'; mkdir "$_"; cd "$_"; > >>> mkdir --parents -- './server' './client'; > >>> git -C './client' init './repo' > >>> git -C './client/repo' remote --verbose > >>> git -C './client/repo' config list --local --show-scope --show-origin > >>> git -C './client/repo' remote add server 'file://'"$(realpath > >>> './server/repo.git')" > >>> git -C './client/repo' remote --verbose > >>> git -C './client/repo' config list --local --show-scope --show-origin > >>> git -C './client/repo' remote set-branches server branch1 branch2 > >>> git -C './client/repo' config list --local --show-scope --show-origin > >>> git -C './client/repo' remote set-branches --add server branch3 branch4 > >>> git -C './client/repo' config list --local --show-scope --show-origin > >>> git -C './client/repo' remote set-branches --add server branch3 branch4 > >>> git -C './client/repo' config list --local --show-scope --show-origin > >>> git -C './client/repo' remote set-branches server > >>> git -C './client/repo' config list --local --show-scope --show-origin > >>> git -C './client/repo' remote set-branches server branch1 branch2 > >>> git -C './client/repo' config list --local --show-scope --show-origin > >>> git -C './client/repo' remote set-branches --add server branch3 branch4 > >>> git -C './client/repo' config list --local --show-scope --show-origin > >>> git -C './client/repo' remote set-branches --add server branch3 branch4 > >>> git -C './client/repo' config list --local --show-scope --show-origin > >>> > >>> What did you expect to happen? (Expected behavior) > >>> > >>> (local config has branch1 and branch2:) > >>> remote.server.fetch=+refs/heads/branch1:refs/remotes/server/branch1 > >>> remote.server.fetch=+refs/heads/branch2:refs/remotes/server/branch2 > >>> remote.server.fetch=+refs/heads/branch3:refs/remotes/server/branch3 > >>> remote.server.fetch=+refs/heads/branch4:refs/remotes/server/branch4 > >>> remote.server.fetch=+refs/heads/branch3:refs/remotes/server/branch3 > >>> remote.server.fetch=+refs/heads/branch4:refs/remotes/server/branch4 > >>> > >>> What happened instead? (Actual behavior) > >>> > >>> (local config does not have branch1 and branch2:) > >>> remote.server.fetch=+refs/heads/branch3:refs/remotes/server/branch3 > >>> remote.server.fetch=+refs/heads/branch4:refs/remotes/server/branch4 > >>> remote.server.fetch=+refs/heads/branch3:refs/remotes/server/branch3 > >>> remote.server.fetch=+refs/heads/branch4:refs/remotes/server/branch4 > >>> > >>> What's different between what you expected and what actually happened? > >>> > >>> Anything else you want to add: > >>> > >>> Please review the rest of the bug report below. > >>> You can delete any lines you don't wish to share. > >>> > >>> > >>> [System Info] > >>> git version: > >>> git version 2.46.0.windows.1 > >>> cpu: x86_64 > >>> built from commit: 2e6a859ffc0471f60f79c1256f766042b0d5d17d > >>> sizeof-long: 4 > >>> sizeof-size_t: 8 > >>> shell-path: D:/git-sdk-64-build-installers/usr/bin/sh > >>> feature: fsmonitor--daemon > >>> libcurl: 8.9.0 > >>> OpenSSL: OpenSSL 3.2.2 4 Jun 2024 > >>> zlib: 1.3.1 > >>> uname: Windows 10.0 22631 > >>> compiler info: gnuc: 14.1 > >>> libc info: no libc information available > >>> $SHELL (typically, interactive shell): C:\Program Files\Git\usr\bin\bash.exe > >>> > >>> > >>> [Enabled Hooks] > >>> not run from a git repository - no hooks to show > >>>