/ / git2go récupère les tags distants - git, go, libgit2

git2go récupère les tags distants - git, go, libgit2

J'essaie de récupérer les tags d'une télécommande avec git2go (https://github.com/libgit2/git2go). Lorsque je clone le référentiel, je peux répertorier toutes les balises avec le code suivant:

iter, err := repository.NewReferenceIterator()

ref, err := iter.Next()
for err == nil {
if ref.IsTag() {
fmt.Println(ref.Name())
}

ref, err = iter.Next()
}

Mais quand je récupère le code de la télécommande, il ne met pas à jour les balises. Je récupère le nouveau code du référentiel avec:

remote, err := p.repository.LoadRemote("origin")
remote.Fetch([]string{}, nil, "")

Ceci est ma config:

[core]
bare = false
repositoryformatversion = 0
filemode = true
logallrefupdates = true
[remote "origin"]
url = file:///home/testrepo

fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master

J'ai ajouté(Puis-je spécifier dans .git / config pour récupérer plusieurs refspecs?):

fetch = refs/tags/*:refs/tags/*

Mais ça ne fait rien.

J'ai aussi ajouté les tags dans la refspec mais cela a donné l'erreur: ref "refs / remotes / origin / master" ne correspond pas à la destination

Réponses:

2 pour la réponse № 1

Le doc du Remote.Fetch () la méthode mentionne:

utilisez une liste vide pour utiliser les refspecs de la configuration.

le refspec par défaut n'importe pas les balises.
(Même avec git régulier, vous auriez besoin d'un git fetch --tags).
Par défaut:

[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*

Tu peux soit:


gyre rapports dans les commentaires ayant ce code travailler jusqu'à un certain point:

jusqu'au point où j'ai besoin de peindre l'étiquette: Peel est où git2go retourne en quelque sorte des erreurs qu'il ne "peut pas décoller la référence dans la balise.