Захват текущего коммита проекта и его отображение

#javascript #php #jquery #git #git-commit

#javascript #php #jquery #git #git-фиксация

Вопрос:

Проблема

Я работал над проектом, в котором QAs сообщают об ошибках, которые уже исправлены. Так часто оказывается, что у QAs нет нашего последнего кода.


Решение

Теперь я думаю захватить текущую фиксацию и отобразить ее на console или на другой странице для ссылок между нами, QA, и разработчиками.


Пробовал

В CLI, чтобы получить последнюю фиксацию, я просто делаю это

 git rev-parse --verify HEAD
  

Я попытался создать функцию PHP и вызвать ее.

 public function info(){
    return str_replace('n','', json_encode(shell_exec('git rev-parse --verify HEAD')));
}
  

Результат

Он отлично работает на моем Mac, но при моей настройке контроля качества они получили null .


Вопросы

Что я сделал не так?

Есть ли другой способ сделать это?

На данный момент я открыт для любых предложений. 🙂

Ответ №1:

git ожидается, что он будет вызван из дерева рабочих каталогов Git, как, предположительно, это было, когда вы выполняли его из командной строки. PHP-скрипты изначально устанавливают PWD переменную среды родительского рабочего каталога в каталог, в котором находится скрипт, и это то же самое для выполнения команды (exec, shell_exec, system, passthru). Вы можете изменить каталог из PHP с помощью chdir или изменить команду на

 cd /path/to/git/repo amp;amp; git rev-parse --verify HEAD