Я пытаюсь использовать php для запуска команд git, и он работает очень хорошо, но у меня странная проблема мерзавец.
$auth = 'https://' . $txtusername . ':' . $txtpassword . '@' . $gitrepo;
$txtbranch = 'master';
shell_exec ("2>&1 git pull $auth $txtbranch");
From https://gitlab.companyname.com/testperson/git-bootcamp
* branch HEAD -> FETCH_HEAD
Already up-to-date.
Я получаю вывод, что все обновлено, но на самом деле есть файлы, которые еще не были извлечены. Удивительно, что работает следующее, но не описанное выше (напрямую добавлена статическая строка в код)
shell_exec ("2>&1 git pull http://testperson:tes%[email protected] master");
From https://gitlab.companyname.com/testperson/git-bootcamp
* branch HEAD -> FETCH_HEAD
Updating ee30924..c92f020
Fast-forward
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Что-то я делаю не так? пожалуйста, вы можете помочь мне в этом.
Сервер: линукс
, PHP: 7.0
, Gitlab (частное)
заранее спасибо.
$ auth становится URL без некоторого экранирования (не вижу его), но в работающем примере используется экранированный URL.
Других решений пока нет …