Я персональный расширен git-gui
для инструментов, работающих с несколькими файлами
В файле tools.tcl
добавьте следующие 2 строки
set env(GIT_GUITOOL) $fullname
set env(FILENAME) $current_diff_path
>> set env(FILENAMES) [array names selected_paths]
и:
unset env(GIT_GUITOOL)
unset env(FILENAME)
>> unset env(FILENAMES)
Используйте $FILENAMES
вместо $FILENAME
в вашем инструменте, и список файлов будет передаваться через пробел (очень полезно для создания такого инструмента, как: rm $FILENAMES
)
Примечание к $FILENAME
(и $FILENAMES
)
Механизм Git GUI не работает с файлами, содержащими пробелы
Я попытался процитировать каждый файл, написав
set env(FILENAMES) [string map { \{ \" \} \" } [array names selected_paths]]
Но Console::exec
, кажется, разделяет аргументы в пространстве и экранирует каждый аргумент.