2015-03-21 14 views
0

я установил (извлеченный) msysgit portable (PortableGit-1.9.5-preview20150319.7z)msysgit большого размера установки

Сжатый архив 23 Мб, но когда экстрагировал содержимые занимают 262 Мб. Это в основном из-за двоичных команд команды git (в разделе «libexec \ git-core»). Почти все двоичные файлы идентичны, у них просто разные имена.

Почему разработчики построили проект следующим образом? Я полагаю, им нужна исполняемая команда для каждой команды для поддержки CLI на windows cmd.exe.

Но нет ли способа избежать наличия ~ 100 идентичных двоичных файлов, каждый размером 1,5 МБ (например: с использованием пакетных файлов)?

+0

почему downvote? Пожалуйста, объясни. BTW Меня не интересует размер установки. Я просто пытаюсь понять мотивацию разработчиков. – bouvierr

ответ

1

Почему разработчики построили проект следующим образом? Полагаю, что нужен исполняемый файл для каждой команды для поддержки CLI на окнах cmd.exe.

Под unixoid операционки, вы можете иметь символические ссылки на другой файл, который ведет себя точно как исходный файл; если вы сделаете это для своего исполняемого файла, ваш исполняемый файл может посмотреть в argv[0], чтобы узнать, как он был вызван. Это очень распространенный трюк для многих программ.

В Windows, и особенно без инсталляторов, это (насколько мне известно) невозможно получить такое же поведение из вашей файловой системы - нет эквивалента символической ссылки. Особенно, если учесть, что программы, предназначенные для запуска с USB-накопителей, должны справляться с такими древними файловыми системами, как FAT32!

Таким образом, исполняемые файлы просто были скопированы. Такая же функциональность, больший объем памяти. Тем не менее, на современной машине, на которой вы будете запускать окна, вам действительно не нужно давать 200 МБ для такого универсального инструмента, такого как git.

В заключение: у разработчиков не было выбора здесь; поскольку окна (хотя и имеют некоторый слой абстракции posix) не имеют надлежащей поддержки файловой системы для символических ссылок, это был единственный хороший способ портировать эту программу, создающую unix. Вы либо не должны заботиться, либо использовать ОС, которая ведет себя лучше в этом отношении. Я бы рекомендовал последнее, но выбор OS часто не производится свободно ...

+0

Windows Vista и поддержка символических ссылок, но вам нужно запустить как admin (исправьте меня, если я ошибаюсь). И это все равно останется без Windows XP. – bouvierr

+0

И может подорвать идею приложения «портативным», т. Е. не нуждаясь ни в каких привилегиях администратора. Кроме того, чтобы подчеркнуть, что FAT32, как все еще часто встречается на USB-накопителях, не поддерживает символические ссылки. –

+0

Возможно ли иметь 100 крошечных идентичных exe, которые просто свяжутся с одной большой DLL? Таким образом, вы можете назвать exe иначе, а 'argv [0]' будет работать так, как ожидалось. – bouvierr