Nie działa dodanie taga do gita z poziomu php za pomocą exec

0

Z poziomu PHP chcę zmienić położenie istniejącego już taga na HEAD. Wykonuję więc exec('git tag -af istniejacy_tag -m ""'); Wynikiem jest jednak pusty string i tag nie zmienia swojego miejsca. Wykonanie tej komendy z konsoli działa jak trzeba. Inne komendy gita z poziomu PHP także działają. Problem jest tylko z tą.
Zastanawiam się, czy przy uruchamianiu konsoli przez funkcję exec coś nie jest wycinane z komendy np. -m "" i git wtedy czeka na wiadomość, ale PHP już działa dalej i zwraca pusty wynik. Teoretycznie od wersji git 2.11 pominięcie parametru -m powinno skopiować wiadomość z już istniejącego taga. Jednak jak sprawdzałem w konsoli (mam 2.18), to 'git tag -af istniejacy_tag` wrzuca okienko z prośbą o wpisanie wiadomości. Stąd pomysł, że tu może być coś podobnego.

Ktoś się z tym spotkał już u siebie? Może dla windowsa trzeba jakoś wrapować te cudzysłowy?

2

Użyj jakieś sprawdzonej libki do tego
https://github.com/czproject/git-php
Czy czegoś podobnego, odpalanie execa powinno być ostatecznościa.

0

Czemu exec ma być ostatecznością? Tego typu klasy to po prostu wrappery, które budują komendę i finalnie sprowadzają się właśnie do odpalenia execa.
W każdym razie dzięki za link. Przyjrzę się jej, gdy będę jakoś bardziej zaawansowanie korzystał z gita spod php.

W moim przypadku chodziło o zmianę kolejności parametrów. Komenda powinna wyglądać tak: exec('git tag -afm "" "istniejacy_tag");

1 użytkowników online, w tym zalogowanych: 0, gości: 1