msysgit 大安装尺寸

msysgit large installation size

我安装(提取)msysgit portable(PortableGit-1.9.5-preview20150319.7z)

压缩后的存档是 23 MB,但解压后内容占用 262 MB。这主要是由于 git 命令二进制文件(在 'libexec\git-core' 下)。几乎所有的二进制文件都是相同的,只是名称不同。

开发人员为什么要这样构建项目?我想他们需要每个命令的可执行文件来支持 windows cmd.exe 上的 CLI。

但是有没有办法避免拥有大约 100 个相同的二进制文件,每个大小为 1.5 MB(例如:使用批处理文件)?

Why did the developers build the project like this? I suppose they need an executable for each command to support the CLI on windows cmd.exe.

在 unixoid OSes 下,您可以将符号 links 指向另一个文件,其行为 完全 与原始文件相同;如果你为你的可执行文件这样做,你的可执行文件可以查看 argv[0] 来找出它是如何被调用的。对于许多程序来说,这是一个非常常见的技巧。

在 Windows 下,尤其是在没有安装程序的情况下,(据我所知)不可能从您的文件系统中获得相同的行为——只是没有符号 link 等价物。尤其是当您考虑到要从 USB 驱动器 运行 运行的程序必须处理 FAT32 等古老的文件系统时!

因此,可执行文件只是被复制了过来。相同的功能,更多的存储空间。然而,在您 运行 windows 的现代机器上,您真的不关心像 git 这样的多功能工具需要 200MB 的空间。

总而言之:开发商别无选择;由于 windows(虽然有一些 posix 抽象层)没有适当的文件系统支持符号 links,这是移植这个 unix 起源程序的唯一好方法。您要么不关心,要么使用在这方面表现更好的 OS 。我会推荐后者,但 OS 选择往往不是自由的...