gitui-org / gitui-org/gitui

Doesn't appear to push to multiple remotes, unlike `git push`

Đang mở
#1,306 7 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug help wanted
Ngôn ngữ chính
Rust
Star
22.5k
Fork
773
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

**Describe the bug**
I have multiple git remotes, as described in https://seirdy.one/posts/2020/11/18/git-workflow-1/

The repo in question is https://git.sr.ht/~skyfaller/twentyeleven-skyfaller

My `.git/config` looks like this:

```
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@git.sr.ht:~skyfaller/twentyeleven-skyfaller
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@codeberg.org:skyfaller/twentyeleven-skyfaller.git
url = git@github.com:skyfaller/twentyeleven-skyfaller.git
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "gh_mirror"]
url = git@github.com:skyfaller/twentyeleven-skyfaller.git
fetch = +refs/heads/*:refs/remotes/gh_mirror/*
[remote "cb_mirror"]
url = git@codeberg.org:skyfaller/twentyeleven-skyfaller.git
fetch = +refs/heads/*:refs/remotes/cb_mirror/*
```
When I make changes to my git repo, and use gitui to `Push [p]`, it only pushes to one remote, in this case GitHub / `gh_mirror`.

It appears it pushes to the remote which is listed last. This doesn't parallel git's behavior, git prioritizes the URL that is listed first when pulling:

```
> git pull origin -v
From git.sr.ht:~skyfaller/twentyeleven-skyfaller
= [up to date] master -> origin/master
= [up to date] static -> origin/static
Already up to date.
```
But since gitui should push to all of the URLs rather than picking one anyway, this isn't important.

When I use `git push` after using gitui to push, I see:

```
> git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 468 bytes | 468.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
To git.sr.ht:~skyfaller/twentyeleven-skyfaller
e714d73..0370dee master -> master
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 468 bytes | 468.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: . Processing 1 references
remote: Processed 1 references in total
To codeberg.org:skyfaller/twentyeleven-skyfaller.git
e714d73..0370dee master -> master
Everything up-to-date
```
As you can see, `git push` is successfully pushing to the other remotes that `gitui` did not.

**Expected behavior**
I expect the behavior of `git push` and gitui's "Push" function to be identical.

**Context (please complete the following information):**
- OS/Distro + Version: Fedora Linux 36 (Workstation Edition) x86_64
- GitUI Version: gitui 0.21.0 (installed from Linuxbrew)

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Start by reproducing the report with the provided .git/config, multiple remotes, and the GitUI 0.21.0 Push action, then compare it with `git push`. Trace the push entry point and existing tests for remote handling; done means one push sends updates to all configured push URLs as Git does.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
git, rust
Lĩnh vực
cli
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.