Как Powershell изменил способ обработки ошибок из собственных команд? - PullRequest
1 голос
/ 21 мая 2019

Между Powershell 5.1, сборкой 17134 (Windows Версии 1803) и Powershell версии 5.1, сборкой 17763 (Windows Версии 1809) кое-что изменилось в том, как Powershell обрабатывает ошибки от собственных команд, и я пытаюсь понять, что изменилось.

У меня есть скрипт powershell, работающий в конвейере Azure на локальных компьютерах с Windows.Этот сценарий содержит команду git checkout origin/master.

Начиная с версии Windows 1809, это начало сбой.Я получил бы следующую ошибку:

##[error]git : HEAD is now at b1e379d
##[error]At line:1 char:1
+ git checkout origin/master
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (HEAD is now at b1e379d) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

##[error]PowerShell exited with code '1'.code

Здесь происходит то, что сообщение HEAD is now at b1e379d отправляется в STDERR, и это вызывает NativeCommandError.Это достаточно легко обойти.Мне просто нужно позвонить git checkout origin/master --quiet.

Но что я действительно хотел бы понять, так это то, что изменилось.Почему он не потерпел неудачу раньше, и почему он терпит неудачу сейчас?Каковы другие последствия этого изменения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...