Repository.resolve_refish does not return a commit if given annotated tag SHA
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 52/100
Piste de recherche
Commencez dans pygit2/repository.py, au niveau de l’implémentation de resolve_refish référencée dans l’issue. Reproduisez le cas d’un SHA de tag annoté avec le script fourni, puis suivez l’objet renvoyé et son target. C’est terminé lorsque le premier élément du tuple est un objet commit pour ce cas et que le comportement existant reste intact pour les autres entrées refish.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
The repository.resolve_refish function is meant to return a commit object as the first element of the tuple ( source ).
However, if given a SHA of an annotated tag, it returns a tag object instead, which causes problems downstream.
The SHA of the target commit is available under result.target (see below)
How to reproduce:
Execute the following (clone the pygit2 repo into a temporary dir, create an annotated tag):
import pygit2
from pathlib import Path
import tempfile
repo_dir = tempfile.TemporaryDirectory()
repo_path = Path(repo_dir.name)
repo = pygit2.clone_repository("https://github.com/libgit2/pygit2.git", repo_path)
head_sha = repo.head.peel().id
old = repo.create_tag(
'test_annotated_tag',
head_sha,
pygit2.GIT_OBJ_COMMIT,
pygit2.Signature('John Doe', 'jdoe@example.com', 12347, 0),
'message'
)
commit, ref = repo.resolve_refish(str(old))
Then we can investigate the results:
In [2]: commit # not really a commit!
Out[2]: <pygit2.Object{tag:66986bf4eb1e47c3049f5a146609f0aa7b64757d}>
In [3]: commit.target
Out[3]: e2c0fdbfbd7f84374f8c7a3df256547b7ea99192
In [4]: head_sha
Out[4]: e2c0fdbfbd7f84374f8c7a3df256547b7ea99192
- Langage dominant
- Python
- Étoiles
- 1.7k
- Forks
- 408
- Merge moyen
- 2 j 57 min
- PR mergées (30 j)
- 7
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de libgit2/pygit2
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
-
Feature Request: Support app-level temporary config overrides using libgit2's backend supprt Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 48/100
-
merge_bases not wrapped Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
Toutes les issues de libgit2/pygit2
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
anthropics/skills#1811 · 1 commentaire ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
speaches-ai/speaches#678 ·
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
datalayer/mcp-compose#42 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
conda-forge/spacy-feedstock#177 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
UKGovernmentBEIS/inspect_evals#2523 ·