Intereting Posts
Все ли файлы в рамках проекта C #, необходимые для управления версиями? Как раздавить репозиторий Git для одного коммита и уничтожить все остальное? Перемещение патчей в репозитории git с другой структурой каталогов SVN diff – опция '–summarize' Должна ли добавлена ​​папка .gradle для контроля версий? SVN (исходный код) Каталог установки в Linux (Ubuntu 16.04) Фиксирование удаления файлов в svn-репозиторий, игнорируя некоторые другие локальные моды git reset vs git reset HEAD Невозможно установить плагины в проекте cordova Ошибка apr_memcache_add_server при попытке перезагрузки http Как я могу игнорировать только два определенных файла из проекта, обновляемую и совершенную форму, в Netbeans? Эффективное движение субмодуля Git TortoiseSVN зависает с файлом .vbproj при первоначальном импорте в репозиторий Ограничьте пользователей GitHub для объединения ветвей Как обращаться с развилкой, которая следует вверх по течению в Git / Mercurial?

PHP: несколько команд shell_exec

Поэтому я пытаюсь создать список измененных файлов между двумя командами git:

shell_exec(" git diff --name-only $remoteCommitId $localCommitId > diff && SET /p DIFF=<diff && git archive --output=$zipName HEAD %DIFF% "); 

Однако никакого zip-файла не создано. Я также попытался выделить команды с помощью & и ; , Если запускать эти команды в пакетном файле, все работает.

Я на окнах и причина, почему я делаю так, что здесь .

Я просто хочу создать zip-файл между двумя git- shell_exec через shell_exec поэтому любой другой метод, который работает через shell_exec , также приветствуется.

Обновить

Если я запускаю эти команды непосредственно на консоли:

 git diff --name-only 207b606c270fc14a7161647c2fbe8f9a7d8e05a1 17dcc2233678df4ce86c8713e0349d68e45c3c96 > diff&& SET /p DIFF=<diff&& git archive --output=deployment.zip HEAD %DIFF% 

Он создает файл deployment.zip, но проблема в том, что файл deployment.zip содержит только один файл корневого пути в нем не из другой папки (в данном случае поставщик):

Вот файл diff:

 composer.json vendor/anlutro/l4-settings/.gitignore vendor/anlutro/l4-settings/.travis.yml vendor/anlutro/l4-settings/CONTRIBUTING.md vendor/anlutro/l4-settings/LICENSE vendor/anlutro/l4-settings/README.md vendor/anlutro/l4-settings/composer.json vendor/anlutro/l4-settings/phpunit.xml vendor/anlutro/l4-settings/src/ArrayUtil.php vendor/anlutro/l4-settings/src/DatabaseSettingStore.php vendor/anlutro/l4-settings/src/Facade.php vendor/anlutro/l4-settings/src/JsonSettingStore.php vendor/anlutro/l4-settings/src/MemorySettingStore.php 

Но файл deployment.zip содержит только файл composer.json .

Попробуйте вместо этого:

  shell_exec("cmd /C \"ascript.bat\""); 

с ascript.bat скрипт, который перечисляет все необходимые команды.
См. « Как не открывать окно Cmd при запуске пакетного файла »