threads / discuss / 59292

Get rid of `warning: refs/remotes/origin/master usually tracks refs/heads/master, not refs/remotes/origin/master`

Subject: Get rid of `warning: refs/remotes/origin/master usually tracks refs/heads/master, not refs/remotes/origin/master`

## tl;dr

2 messages between Feb 23, 2023 and Feb 25, 2023.

replies: 1people: 1as markdown or json

Andry· Feb 23, 2023, 03:21 UTC · lore
Hello Git,
Found this issue and could find a solution.
Repro steps:
1. create a simple repo with only the master branch.
2. `git pull origin *:*` to allocate all refs (no warnings)
If try to mirror the repo into the same remote:
1. `git push origin --mirror`
Then the remote counter part falls into the mirror state and reports the warning:
1. `git pull origin *:*`

``` warning: refs/remotes/origin/master usually tracks refs/heads/master, not refs/remotes/origin/master Already up to date. ```

Tried to delete all refs in the local and remote. But didn't work. Somehow the remove remember the state.
Is there a way to unmirror the remote repository back?
Andry· Feb 25, 2023, 21:48 UTC · re: Andry · lore

Re: Get rid of `warning: refs/remotes/origin/master usually tracks refs/heads/master, not refs/remotes/origin/master`

Hello Git,
Thursday, February 23, 2023, 6:21:01 AM, you wrote:
A> Found this issue and could find a solution.
A> ...
A> Is there a way to unmirror the remote repository back?
Seems the problem was in the logic of the push algorithm.
There was 2 fors (pseudocode):
```python
for remote in remotes:
  for branch in branches:
    git_push([remote, ':refs/remotes/' + remote + '/' + branch])
```
Instead of 3 fors:
```python
for remote in remotes:
  for ref_remote in remotes:
    for branch in branches:
      git_push([remote, ':refs/remotes/' + ref_remote + '/' + branch])
```
Because each remote has `num(refs) = num(branches) x num(remotes)` after the mirror.

← back to recent threads