Git 2.22 (Q2 2019), git stash
переписано на C.
См. commit 7906af0 , commit 90a4627 , commit 8d8e9c2 (25 февраля 2019 г.) Йоханнес Шинделин (dscho
) .
См. коммит 40af146 , коммит 48ee24a , коммит ef0f0b4 , commit 64fe9c2 , commit 1ac528c , commit d553f53 , commit d4788af , commit 41e0dd5 , commit dc7bd38 , commit 130f269 , commit bef55dc , commit dac566c , commit ab8ad46 (25 февраля 2019) Пол-Себастьян Унгуряну (weekly-digest[bot]
) .
См. commit c4de61d , commit 577c199 , commit 4e2dd39 , commit 8a0fc8d (25 февраля 2019 г.) от Джоэл Тейхроеб (klusark
) .
(Объединено Junio C Hamano - gitster
- в commit e36adf7 , 22 апреля 2019 г.)
И ... "git stash show 23
" раньше работал, но не мопосле переписывания в C ;эта регрессия была исправлена в Git 2.23 (Q3 2019).
См. commit 63b50c8 (15 июня 2019) Thomas Gummerer (tgummerer
) .
(Объединено с Junio C Hamano - gitster
- в коммит 99af5be , 09 июля 2019 г.)
stash: исправление показа ссылки на хранилище индекса
При преобразовании 'stash show
' в C в dc7bd38 ("stash
: преобразование шоу во встроенное", 2019-02-25, Gitv2.22.0-rc0), 'git stash show <n>
', где n
- индекс поврежденного тайника, если n
не является файлом или верной версией.
'stash show
'принимает любой флаг' git diff
'принимает для изменения формата вывода.
Внутренне мы используем' setup_revisions()
'для разбора этих флагов командной строки.
В настоящее время мы передаем весь argv
через' setup_revisions()
', который включает в себя индекс хранилища.
Поскольку индекс хранилища не является действительной версией или файлом в рабочем дереве, в большинстве случаев, однако, это вызов setup_revisions()
(и, следовательно, вся команда) заканчивается неудачейесли мы используем эту форму 'git stash show
'.
Вместо того, чтобы передавать весь argv
в 'setup_revisions()
', пропускайте только флаги (и имя команды), исключая при этом ссылку на тайник.
Ссылка на тайник уже проанализирована (и проверена) в 'get_stash_info()
'.
Этот отдельный синтаксический анализ также означает, что в настоящее время мы производим правильный вывод, если команда выполнена успешно.