2013-05-09 3 views
5

Nie mogę przesłać znacznika z adnotacjami do mojego zdalnego repozytorium git. Wszystkie uprawnienia dostępu zostały udostępnione w gerrit. na przykład. [Bibl/*]Nie można przekazać znaczników w Git

tworzę tag za pomocą poniższego polecenia

git tag -a v1.0 -m 'Base Version' 712d77e 

Gdy próbuję naciskać korzystając z poniższych poleceń

git push origin v1.0 

lub

git push origin --tags 

I uzyskać następujący błąd.

Counting objects: 1, done. 
Writing objects: 100% (1/1), 157 bytes, done. 
Total 1 (delta 0), reused 0 (delta 0) 
remote: Processing changes: refs: 1, done 
To ssh://... 
! [remote rejected] v1.0 -> v1.0 (prohibited by Gerrit) 
error: failed to push some refs to 'ssh://...' 

Proszę dać mi znać, jak powinienem móc przekazywać znaczniki w repozytorium.

dzięki ....

+0

Dlaczego po prostu nie spróbować po prostu z terminalu? Jeśli to działa, możesz zawęzić problem do gerrit – noMAD

Odpowiedz

2

Linia ta daje wskazówkę:

! [remote rejected] v1.0 -> v1.0 (prohibited by Gerrit) 

Gerrit zabronione push jako Twój użytkownik nie znajduje się w grupie z "Push Annotated Tag" prawej.

+0

, dodając tożsamość autora forge i tożsamość forge commiter pomógł nam wcisnąć zaniżone tagi – user265950

15

Jest to ogólny komunikat o błędzie, który jest zwracany przez Gerrit, jeśli naciśnięcie jest niedozwolone, np. ponieważ użytkownik pchający nie ma wystarczających uprawnień.

W szczególności pojawia się ten błąd:

  1. Jeśli naciśniesz commit dla przeglądu kodu do oddziału, dla którego nie masz uprawnień wysyłania (prawa dostępu push na refs/for/refs/heads/*)

  2. jeśli pomijasz przegląd kodu bez dostępu Push bezpośrednio pod numerem refs/heads/*

  3. jeśli naciśniesz adnotowaną etykietę bez naciśnięcia przycisku Adnotacja znacznika tuż przy refs/tags/*

  4. jeśli push podpisaną tag bez wypychania Signed dostępu tagów tuż refs/tags/*

  5. jeśli push lekki tag bez prawa dostępu Tworzenie odniesienia dla nazwy odniesienia refs/tags/*

  6. jeśli push tag z kimś innym jako Tagger i nie masz prawa dostępu Forge committer dla nazwy odniesienia refs/tags/*

  7. jeśli push projektu, który jest w stanie tylko do odczytu

Dla nowych użytkowników często zdarza się, że próbują obejść przegląd kodu. Wówczas push nie powiedzie się z komunikatem o błędzie zabronionym przez Gerrit, ponieważ projekt nie pozwolił na obejście recenzji kodu. Pomijanie przeglądu kodu odbywa się poprzez bezpośrednie przejście do refs/heads/* (np. refs/heads/master) zamiast przesuwania do refs/for/* (na przykład refs/for/master).

skopiowane z prohibited by Gerrit

więcej Opis: Mam ten sam problem z nowej instalacji gerrit 2,7 szukał i znalazł to stackoverflow pytanie, ale mój przypadek był numer 5 tego opisu (znaczniki lekkie), więc dodaje Utwórz referencyjne pozwolenie na refs/tags/* i problem rozwiązany.

+0

Zagłosowano z powodu dobrego źródła. – Trismegistos

+0

Nie mogę znaleźć w moim Gerrit żadnej zgody o nazwie "Wciśnij opisywany znacznik". Czy chodziło Ci o "Utwórz znacznik z adnotacjami"? (Rozumiem, że odpowiedź jest stara, może nazwa pozwolenia się zmieniła?) – Jolta

3

Trzeba dodać uprawnienia następujący projekt dla [bibl/tagów/*]:

  • Create Reference: aby utworzyć nowy tag.
  • Tożsamość Forge Committer: zezwala na przesyłanie innego tagu (ciebie) do oryginalnego taggera.
  • Forge Author Identity: umożliwia obsługę commitów należących do innych użytkowników.

Patrz Gerrit access controls szczegółowe informacje

0

Tworzenie adnotacjami i sprawdź Gerrit. Musisz być w prawej grupie, która może tworzyć adnotacje

Jeśli tworzysz proste tagi, gerrit może odrzucić te informacje, ale znowu może zależeć od konfiguracji gerrit.

tworzyć uwagami tag:

 
git tag -a -m "Some message" 

pchania wszystkie swoje tagi:

 
git push --tags 

znaczniki wyboru są tworzone w zdalnej:

 
git ls-remote --tags 
0

"zabronionych przez Gerrit" - czyli to musi pozwolić na prawa.

Najpierw wybierz swój projekt i przejdź do "Dostęp". Następnie "Edytuj" i z menu rozwijanego "dodaj pozwolenie". Następnie trzeba dodać trzy uprawnienia do zdjęcia za pomocą strzałek.


enter image description here


niż można użyć w terminalu:

git push origin --tags 

!!! WAŻNE Zauważ, że prawa są dla refs/tags/*