Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

"this operation is only valid for push"

Ouverte
#1,188 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
git, python
Domaine
backend, networking

Piste de recherche

Commencez par reproduire les deux séquences d’appels avec remote.ls_remotes(), remote.fetch() et remote.push(), puis examinez connect_or_reset_options() et le chemin de git_remote_push() décrit dans l’issue. Le travail est terminé lorsque le push direct après ls_remotes() réussit sans l’erreur GIT_ERROR_NET, avec une couverture de régression pour cette séquence.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

The sequence of calls

remote.ls_remotes(...)
remote.fetch(...)
remote.push(...)

works, while

remote.ls_remotes(...)
remote.push(...)

doesn't, producing the GIT_ERROR_NET / "this operation is only valid for push" error.

I think this is because ls_remotes() explicitly calls connect(..., GIT_DIRECTION_FETCH), and fetch() implicitly calls disconnect() (within git_remote_fetch()). If fetch() is not called between ls_remotes() and push(), git_remote_push() encounters an existing connection with FETCH direction, and returns an error (from git_smart__get_push_stream()).

This could be addressed in several ways: either by disconnecting explicitly in ls_remotes(), or maybe by changing the implementation of connect_or_reset_options() and the functions it calls to handle the case where direction is changing.

Langage dominant
Python
Étoiles
1.7k
Forks
408
Merge moyen
2 j 57 min
PR mergées (30 j)
7

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de libgit2/pygit2

Toutes les issues de libgit2/pygit2

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.