/ / git2go pobierz zdalne tagi - git, go, libgit2

git2go pobierz zdalne tagi - git, go, libgit2

Próbuję pobrać tagi z pilota za pomocą git2go (https://github.com/libgit2/git2go). Kiedy klonuję repozytorium, mogę wyświetlić wszystkie znaczniki za pomocą następującego kodu:

iter, err := repository.NewReferenceIterator()

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

ref, err = iter.Next()
}

Ale po pobraniu kodu z pilota nie aktualizuje tagów. Pobieram nowy kod z repozytorium przy pomocy:

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

To jest moja konfiguracja:

[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

Dodałem(Czy mogę określić w .git / config, aby pobrać wiele refspecs?):

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

Ale to nic nie robi.

Dodałem również tagi w refspec, ale to dało błąd: ref "refs / remote / origin / master" nie pasuje do miejsca docelowego

Odpowiedzi:

2 dla odpowiedzi № 1

Dokument z Remote.Fetch () metoda wspomina:

użyj pustej listy, aby użyć refspecs z konfiguracji.

The domyślny refspec nie importuje tagów.
(Nawet z regularnym git, potrzebujesz git fetch --tags).
Domyślnie:

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

Możesz albo:


gyre raporty w komentarzach mający ten kod praca do pewnego momentu:

aż do momentu, w którym potrzebuję PEEL tag: Peel jest gdzie git2go jakoś zwraca błędy, które nie mogą oderwać odwołania do znacznika.