Как снять фиксацию с файла в git?

Это была ошибка (регрессия), введенная в 1999 г. , которая изменила и теперь исправлена ​​( это изменение ( commit ))

В основном, в:

(cmd1; cmd2)

zsh разветвляет дочерний процесс для подоболочки, затем другой процесс для cmd1 . Но для cmd2 , учитывая, что это последняя команда в подоболочке, zsh оптимизирует вилку. Это как если бы мы сделали:

(cmd1; exec cmd2)

Или, другими словами, zsh выполняет здесь неявный / fake exec .

Теперь ошибка заключалась в том, что в этом случае zsh забыл , что мы были в подоболочке, и предположил, что неявный exec на самом деле завершал оболочку (заменяя ее на cmd2 ), а затем уменьшал $ SHLVL , поскольку родительский элемент cmd2 не был zsh больше.

Однако здесь мы находимся в подоболочке, так что неявный exec не завершает оболочку.

Спасибо, что подняли этот вопрос. Это позволило исправить это и найти связанные ошибки в bash и tcsh .

1
30.07.2015, 11:29
0 ответов

Теги

Похожие вопросы