git-for-windows / git

A fork of Git containing Windows-specific patches.
http://gitforwindows.org/
Other
8.34k stars 2.53k forks source link

Some files is not hardlink on installation #477

Closed yfdyh000 closed 8 years ago

yfdyh000 commented 9 years ago

I don't know if it has any reason, but I guess maybe they can be.

Based on Git-2.6.1-64-bit.exe. Duplicate files (exclude hardlinks): https://gist.github.com/yfdyh000/045ba8a10c02f29540c6

dscho commented 9 years ago

Let's not send readers elsewhere.

Name                         Size         Path
bash.exe                     96.0 KB      (3 Files)
  bash.exe                   32.0 KB      ...\Git\bin\
  compat-bash.exe            32.0 KB      ...\Git\mingw64\share\git\
  sh.exe                     32.0 KB      ...\Git\bin\
bash.exe                     4,024.9 KB   (2 Files)
  bash.exe                   2,012.5 KB   ...\Git\usr\bin\
  sh.exe                     2,012.5 KB   ...\Git\usr\bin\
bzcat.exe                    142.8 KB     (3 Files)
  bunzip2.exe                47.6 KB      ...\Git\mingw64\bin\
  bzcat.exe                  47.6 KB      ...\Git\mingw64\bin\
  bzip2.exe                  47.6 KB      ...\Git\mingw64\bin\
bzcmp                        8.3 KB       (4 Files)
  bzcmp                      2.1 KB       ...\Git\mingw64\bin\
  bzcmp                      2.1 KB       ...\Git\usr\bin\
  bzdiff                     2.1 KB       ...\Git\mingw64\bin\
  bzdiff                     2.1 KB       ...\Git\usr\bin\
bzfgrep                      21.3 KB      (6 Files)
  bzegrep                    3.6 KB       ...\Git\usr\bin\
  bzegrep                    3.6 KB       ...\Git\mingw64\bin\
  bzfgrep                    3.6 KB       ...\Git\mingw64\bin\
  bzfgrep                    3.6 KB       ...\Git\usr\bin\
  bzgrep                     3.6 KB       ...\Git\mingw64\bin\
  bzgrep                     3.6 KB       ...\Git\usr\bin\
bzip2.exe                    262.6 KB     (3 Files)
  bunzip2.exe                87.5 KB      ...\Git\usr\bin\
  bzcat.exe                  87.5 KB      ...\Git\usr\bin\
  bzip2.exe                  87.5 KB      ...\Git\usr\bin\
bzless                       5.1 KB       (4 Files)
  bzless                     1.3 KB       ...\Git\mingw64\bin\
  bzless                     1.3 KB       ...\Git\usr\bin\
  bzmore                     1.3 KB       ...\Git\usr\bin\
  bzmore                     1.3 KB       ...\Git\mingw64\bin\
ca-bundle.crt                735.6 KB     (3 Files)
  ca-bundle.crt              245.2 KB     ...\Git\mingw64\ssl\certs\
  cert.pem                   245.2 KB     ...\Git\mingw64\ssl\
  tls-ca-bundle.pem          245.2 KB     ...\Git\mingw64\etc\pki\ca-trust\extracted\pem\
ca-bundle.trust.crt          706.0 KB     (2 Files)
  ca-bundle.trust.crt        353.0 KB     ...\Git\mingw64\etc\pki\ca-trust\extracted\openssl\
  ca-bundle.trust.crt        353.0 KB     ...\Git\mingw64\ssl\certs\
ca-bundle.trust.crt          714.8 KB     (2 Files)
  ca-bundle.trust.crt        357.4 KB     ...\Git\etc\pki\ca-trust\extracted\openssl\
  ca-bundle.trust.crt        357.4 KB     ...\Git\usr\ssl\certs\
cdrdaoconf.vim               1.1 KB       (3 Files)
  cdrdaoconf.vim             0.4 KB       ...\Git\usr\share\vim\vim74\ftplugin\
  denyhosts.vim              0.4 KB       ...\Git\usr\share\vim\vim74\ftplugin\
  hostconf.vim               0.4 KB       ...\Git\usr\share\vim\vim74\ftplugin\
cert.pem                     799.2 KB     (3 Files)
  ca-bundle.crt              266.4 KB     ...\Git\usr\ssl\certs\
  cert.pem                   266.4 KB     ...\Git\usr\ssl\
  tls-ca-bundle.pem          266.4 KB     ...\Git\etc\pki\ca-trust\extracted\pem\
COPYING                      2.4 KB       (2 Files)
  COPYING                    1.2 KB       ...\Git\usr\share\licenses\expat\
  COPYING                    1.2 KB       ...\Git\mingw64\share\licenses\expat\
COPYING                      2.9 KB       (2 Files)
  COPYING                    1.5 KB       ...\Git\mingw64\share\licenses\gettext\gettext-tools\gnulib-lib\libxml\
  COPYING                    1.5 KB       ...\Git\mingw64\share\licenses\gettext\gnulib-local\lib\libxml\
COPYING.LIB                  49.4 KB      (2 Files)
  COPYING.LIB                24.7 KB      ...\Git\mingw64\share\licenses\libiconv\libcharset\
  COPYING.LIB                24.7 KB      ...\Git\mingw64\share\licenses\libiconv\
COPYING.LIB                  51.8 KB      (2 Files)
  COPYING.LIB                25.9 KB      ...\Git\mingw64\share\licenses\gettext\gettext-runtime\intl\
  COPYING.LIB                25.9 KB      ...\Git\mingw64\share\licenses\gettext\gettext-runtime\libasprintf\
COPYING.RUNTIME              6.5 KB       (2 Files)
  COPYING.RUNTIME            3.2 KB       ...\Git\mingw64\share\licenses\gcc-libs\
  RUNTIME.LIBRARY.EXCEPTION  3.2 KB       ...\Git\usr\share\licenses\gcc-libs\
cygwin                       3.0 KB       (2 Files)
  cygwin                     1.5 KB       ...\Git\usr\share\terminfo\63\
  cygwin                     1.5 KB       ...\Git\usr\lib\terminfo\63\
dos2unix.exe                 144.3 KB     (3 Files)
  d2u.exe                    48.1 KB      ...\Git\usr\bin\
  dos2unix.exe               48.1 KB      ...\Git\usr\bin\
  mac2unix.exe               48.1 KB      ...\Git\usr\bin\
dumb                         0.6 KB       (2 Files)
  dumb                       0.3 KB       ...\Git\usr\lib\terminfo\64\
  dumb                       0.3 KB       ...\Git\usr\share\terminfo\64\
euc-cn.enc                   167.1 KB     (2 Files)
  euc-cn.enc                 83.6 KB      ...\Git\mingw64\lib\tcl8.6\encoding\
  gb2312.enc                 83.6 KB      ...\Git\mingw64\lib\tcl8.6\encoding\
gawk-4.1.3.exe               1,135.6 KB   (2 Files)
  gawk.exe                   567.8 KB     ...\Git\usr\bin\
  gawk-4.1.3.exe             567.8 KB     ...\Git\usr\bin\
git.exe                      274.0 KB     (2 Files)
  git.exe                    137.0 KB     ...\Git\bin\
  git.exe                    137.0 KB     ...\Git\cmd\
git-citool                   1.3 KB       (2 Files)
  git-citool                 0.7 KB       ...\Git\mingw64\libexec\git-core\
  git-gui                    0.7 KB       ...\Git\mingw64\libexec\git-core\
git-cvsserver                317.3 KB     (2 Files)
  git-cvsserver              158.6 KB     ...\Git\mingw64\bin\
  git-cvsserver              158.6 KB     ...\Git\mingw64\libexec\git-core\
gitk.exe                     274.0 KB     (2 Files)
  git-gui.exe                137.0 KB     ...\Git\cmd\
  gitk.exe                   137.0 KB     ...\Git\cmd\
git-remote-http.exe          4,130.5 KB   (4 Files)
  git-remote-ftp.exe         1,032.6 KB   ...\Git\mingw64\libexec\git-core\
  git-remote-ftps.exe        1,032.6 KB   ...\Git\mingw64\libexec\git-core\
  git-remote-http.exe        1,032.6 KB   ...\Git\mingw64\libexec\git-core\
  git-remote-https.exe       1,032.6 KB   ...\Git\mingw64\libexec\git-core\
gunzip                       4.5 KB       (2 Files)
  gunzip                     2.3 KB       ...\Git\usr\bin\
  uncompress                 2.3 KB       ...\Git\usr\bin\
gvimdiff3                    0.1 KB       (5 Files)
  gvimdiff                   0.0 KB       ...\Git\mingw64\libexec\git-core\mergetools\
  gvimdiff2                  0.0 KB       ...\Git\mingw64\libexec\git-core\mergetools\
  gvimdiff3                  0.0 KB       ...\Git\mingw64\libexec\git-core\mergetools\
  vimdiff2                   0.0 KB       ...\Git\mingw64\libexec\git-core\mergetools\
  vimdiff3                   0.0 KB       ...\Git\mingw64\libexec\git-core\mergetools\
index.html                   174.4 KB     (2 Files)
  git.html                   87.2 KB      ...\Git\mingw64\share\doc\git-doc\
  index.html                 87.2 KB      ...\Git\mingw64\share\doc\git-doc\
infotocap.exe                207.6 KB     (3 Files)
  captoinfo.exe              69.2 KB      ...\Git\usr\bin\
  infotocap.exe              69.2 KB      ...\Git\usr\bin\
  tic.exe                    69.2 KB      ...\Git\usr\bin\
LICENSE                      2.2 KB       (2 Files)
  LICENSE                    1.1 KB       ...\Git\mingw64\share\licenses\libffi\
  LICENSE                    1.1 KB       ...\Git\usr\share\licenses\libffi\
LICENSE                      2.4 KB       (2 Files)
  LICENSE                    1.2 KB       ...\Git\mingw64\share\licenses\zlib\
  LICENSE                    1.2 KB       ...\Git\usr\share\licenses\zlib\
LICENSE                      3.7 KB       (2 Files)
  LICENSE                    1.8 KB       ...\Git\mingw64\share\licenses\libssh2\
  LICENSE                    1.8 KB       ...\Git\usr\share\licenses\libssh2\
LICENSE                      12.3 KB      (2 Files)
  LICENSE                    6.1 KB       ...\Git\mingw64\share\licenses\openssl\
  LICENSE                    6.1 KB       ...\Git\usr\share\licenses\openssl\
LICENSE                      171.6 KB     (5 Files)
  COPYING                    34.3 KB      ...\Git\mingw64\share\licenses\gettext\
  COPYING                    34.3 KB      ...\Git\mingw64\share\licenses\libiconv\
  COPYING3                   34.3 KB      ...\Git\mingw64\share\licenses\gcc-libs\
  LICENSE                    34.3 KB      ...\Git\mingw64\share\licenses\libtasn1\
  LICENSE                    34.3 KB      ...\Git\usr\share\licenses\mintty\
msys-perl5_22.dll            3,434.0 KB   (2 Files)
  msys-perl5_22.dll          1,717.0 KB   ...\Git\usr\bin\
  msys-perl5_22.dll          1,717.0 KB   ...\Git\usr\lib\perl5\core_perl\CORE\
p11-kit-extract-trust        2.0 KB       (2 Files)
  p11-kit-extract-trust      1.0 KB       ...\Git\usr\lib\p11-kit\
  update-ca-trust            1.0 KB       ...\Git\usr\bin\
p11-kit-extract-trust        2.0 KB       (2 Files)
  p11-kit-extract-trust      1.0 KB       ...\Git\mingw64\lib\p11-kit\
  update-ca-trust            1.0 KB       ...\Git\mingw64\bin\
perlbug                      88.6 KB      (2 Files)
  perlbug                    44.3 KB      ...\Git\usr\bin\core_perl\
  perlthanks                 44.3 KB      ...\Git\usr\bin\core_perl\
pstruct                      71.5 KB      (2 Files)
  c2ph                       35.7 KB      ...\Git\usr\bin\core_perl\
  pstruct                    35.7 KB      ...\Git\usr\bin\core_perl\
reset.exe                    40.0 KB      (2 Files)
  reset.exe                  20.0 KB      ...\Git\usr\bin\
  tset.exe                   20.0 KB      ...\Git\usr\bin\
slogin.exe                   1,245.6 KB   (2 Files)
  slogin.exe                 622.8 KB     ...\Git\usr\bin\
  ssh.exe                    622.8 KB     ...\Git\usr\bin\
svnsync                      311.1 KB     (7 Files)
  subversion                 44.4 KB      ...\Git\usr\share\bash-completion\completions\
  svn                        44.4 KB      ...\Git\usr\share\bash-completion\completions\
  svnadmin                   44.4 KB      ...\Git\usr\share\bash-completion\completions\
  svndumpfilter              44.4 KB      ...\Git\usr\share\bash-completion\completions\
  svnlook                    44.4 KB      ...\Git\usr\share\bash-completion\completions\
  svnsync                    44.4 KB      ...\Git\usr\share\bash-completion\completions\
  svnversion                 44.4 KB      ...\Git\usr\share\bash-completion\completions\
tclConfig.sh                 13.4 KB      (2 Files)
  tclConfig.sh               6.7 KB       ...\Git\mingw64\lib\
  tclConfig.sh               6.7 KB       ...\Git\mingw64\lib\tcl8\
tcllogo.gif                  4.6 KB       (2 Files)
  logo100.gif                2.3 KB       ...\Git\mingw64\lib\tk8.6\images\
  tcllogo.gif                2.3 KB       ...\Git\mingw64\lib\tk8.6\demos\images\
tclsh86.exe                  157.9 KB     (2 Files)
  tclsh.exe                  79.0 KB      ...\Git\mingw64\bin\
  tclsh86.exe                79.0 KB      ...\Git\mingw64\bin\
trust-extract-compat         2.3 KB       (2 Files)
  trust-extract-compat       1.1 KB       ...\Git\mingw64\lib\p11-kit\
  trust-extract-compat       1.1 KB       ...\Git\usr\lib\p11-kit\
tutor                        64.9 KB      (2 Files)
  tutor                      32.5 KB      ...\Git\usr\share\vim\vim74\tutor\
  tutor.utf-8                32.5 KB      ...\Git\usr\share\vim\vim74\tutor\
tutor.hu                     53.1 KB      (2 Files)
  tutor.hu                   26.6 KB      ...\Git\usr\share\vim\vim74\tutor\
  tutor.hu.cp1250            26.6 KB      ...\Git\usr\share\vim\vim74\tutor\
tutor.no                     67.6 KB      (2 Files)
  tutor.nb                   33.8 KB      ...\Git\usr\share\vim\vim74\tutor\
  tutor.no                   33.8 KB      ...\Git\usr\share\vim\vim74\tutor\
tutor.no.utf-8               69.2 KB      (2 Files)
  tutor.nb.utf-8             34.6 KB      ...\Git\usr\share\vim\vim74\tutor\
  tutor.no.utf-8             34.6 KB      ...\Git\usr\share\vim\vim74\tutor\
tutor.zh_tw.utf-8            61.3 KB      (2 Files)
  tutor.zh.utf-8             30.7 KB      ...\Git\usr\share\vim\vim74\tutor\
  tutor.zh_tw.utf-8          30.7 KB      ...\Git\usr\share\vim\vim74\tutor\
uganda.txt                   27.4 KB      (2 Files)
  license.txt                13.7 KB      ...\Git\usr\share\licenses\vim\
  uganda.txt                 13.7 KB      ...\Git\usr\share\vim\vim74\doc\
unix2mac.exe                 142.8 KB     (3 Files)
  u2d.exe                    47.6 KB      ...\Git\usr\bin\
  unix2dos.exe               47.6 KB      ...\Git\usr\bin\
  unix2mac.exe               47.6 KB      ...\Git\usr\bin\
unzip.exe                    339.3 KB     (2 Files)
  unzip.exe                  169.6 KB     ...\Git\usr\bin\
  zipinfo.exe                169.6 KB     ...\Git\usr\bin\
view.exe                     10,919.9 KB  (5 Files)
  rview.exe                  2,184.0 KB   ...\Git\usr\bin\
  rvim.exe                   2,184.0 KB   ...\Git\usr\bin\
  view.exe                   2,184.0 KB   ...\Git\usr\bin\
  vim.exe                    2,184.0 KB   ...\Git\usr\bin\
  vimdiff.exe                2,184.0 KB   ...\Git\usr\bin\
wish86.exe                   140.6 KB     (2 Files)
  wish.exe                   70.3 KB      ...\Git\mingw64\bin\
  wish86.exe                 70.3 KB      ...\Git\mingw64\bin\
xterm                        6.7 KB       (2 Files)
  xterm                      3.3 KB       ...\Git\usr\lib\terminfo\78\
  xterm                      3.3 KB       ...\Git\usr\share\terminfo\78\
xterm+88color                2.1 KB       (2 Files)
  xterm+88color              1.0 KB       ...\Git\usr\share\terminfo\78\
  xterm+88color              1.0 KB       ...\Git\usr\lib\terminfo\78\
xterm+256color               2.1 KB       (2 Files)
  xterm+256color             1.0 KB       ...\Git\usr\lib\terminfo\78\
  xterm+256color             1.0 KB       ...\Git\usr\share\terminfo\78\
xterm+256setaf               1.8 KB       (2 Files)
  xterm+256setaf             0.9 KB       ...\Git\usr\lib\terminfo\78\
  xterm+256setaf             0.9 KB       ...\Git\usr\share\terminfo\78\
xterm+app                    0.8 KB       (2 Files)
  xterm+app                  0.4 KB       ...\Git\usr\share\terminfo\78\
  xterm+app                  0.4 KB       ...\Git\usr\lib\terminfo\78\
xterm+edit                   0.8 KB       (2 Files)
  xterm+edit                 0.4 KB       ...\Git\usr\share\terminfo\78\
  xterm+edit                 0.4 KB       ...\Git\usr\lib\terminfo\78\
xterm+kbs                    0.3 KB       (2 Files)
  xterm+kbs                  0.2 KB       ...\Git\usr\lib\terminfo\78\
  xterm+kbs                  0.2 KB       ...\Git\usr\share\terminfo\78\
xterm+noapp                  0.8 KB       (2 Files)
  xterm+noapp                0.4 KB       ...\Git\usr\lib\terminfo\78\
  xterm+noapp                0.4 KB       ...\Git\usr\share\terminfo\78\
xterm+pc+edit                0.8 KB       (2 Files)
  xterm+pc+edit              0.4 KB       ...\Git\usr\lib\terminfo\78\
  xterm+pc+edit              0.4 KB       ...\Git\usr\share\terminfo\78\
xterm+pcc0                   2.3 KB       (2 Files)
  xterm+pcc0                 1.1 KB       ...\Git\usr\lib\terminfo\78\
  xterm+pcc0                 1.1 KB       ...\Git\usr\share\terminfo\78\
xterm+pcc1                   1.6 KB       (2 Files)
  xterm+pcc1                 0.8 KB       ...\Git\usr\lib\terminfo\78\
  xterm+pcc1                 0.8 KB       ...\Git\usr\share\terminfo\78\
xterm+pcc2                   2.4 KB       (2 Files)
  xterm+pcc2                 1.2 KB       ...\Git\usr\lib\terminfo\78\
  xterm+pcc2                 1.2 KB       ...\Git\usr\share\terminfo\78\
xterm+pcc3                   1.8 KB       (2 Files)
  xterm+pcc3                 0.9 KB       ...\Git\usr\lib\terminfo\78\
  xterm+pcc3                 0.9 KB       ...\Git\usr\share\terminfo\78\
xterm+pce2                   2.6 KB       (2 Files)
  xterm+pce2                 1.3 KB       ...\Git\usr\lib\terminfo\78\
  xterm+pce2                 1.3 KB       ...\Git\usr\share\terminfo\78\
xterm+pcf0                   2.0 KB       (2 Files)
  xterm+pcf0                 1.0 KB       ...\Git\usr\share\terminfo\78\
  xterm+pcf0                 1.0 KB       ...\Git\usr\lib\terminfo\78\
xterm+pcf2                   2.0 KB       (2 Files)
  xterm+pcf2                 1.0 KB       ...\Git\usr\share\terminfo\78\
  xterm+pcf2                 1.0 KB       ...\Git\usr\lib\terminfo\78\
xterm+pcfkeys                4.2 KB       (2 Files)
  xterm+pcfkeys              2.1 KB       ...\Git\usr\lib\terminfo\78\
  xterm+pcfkeys              2.1 KB       ...\Git\usr\share\terminfo\78\
xterm+r6f2                   2.1 KB       (2 Files)
  xterm+r6f2                 1.1 KB       ...\Git\usr\share\terminfo\78\
  xterm+r6f2                 1.1 KB       ...\Git\usr\lib\terminfo\78\
xterm+sl                     0.8 KB       (2 Files)
  xterm+sl                   0.4 KB       ...\Git\usr\lib\terminfo\78\
  xterm+sl                   0.4 KB       ...\Git\usr\share\terminfo\78\
xterm+sl-twm                 0.8 KB       (2 Files)
  xterm+sl-twm               0.4 KB       ...\Git\usr\lib\terminfo\78\
  xterm+sl-twm               0.4 KB       ...\Git\usr\share\terminfo\78\
xterm+sm+1002                2.8 KB       (2 Files)
  xterm+sm+1002              1.4 KB       ...\Git\usr\share\terminfo\78\
  xterm+sm+1002              1.4 KB       ...\Git\usr\lib\terminfo\78\
xterm+sm+1003                2.8 KB       (2 Files)
  xterm+sm+1003              1.4 KB       ...\Git\usr\lib\terminfo\78\
  xterm+sm+1003              1.4 KB       ...\Git\usr\share\terminfo\78\
xterm+sm+1005                2.9 KB       (2 Files)
  xterm+sm+1005              1.4 KB       ...\Git\usr\share\terminfo\78\
  xterm+sm+1005              1.4 KB       ...\Git\usr\lib\terminfo\78\
xterm+sm+1006                2.8 KB       (2 Files)
  xterm+sm+1006              1.4 KB       ...\Git\usr\lib\terminfo\78\
  xterm+sm+1006              1.4 KB       ...\Git\usr\share\terminfo\78\
xterm+tmux                   0.5 KB       (2 Files)
  xterm+tmux                 0.2 KB       ...\Git\usr\share\terminfo\78\
  xterm+tmux                 0.2 KB       ...\Git\usr\lib\terminfo\78\
xterm+vt+edit                0.9 KB       (2 Files)
  xterm+vt+edit              0.5 KB       ...\Git\usr\lib\terminfo\78\
  xterm+vt+edit              0.5 KB       ...\Git\usr\share\terminfo\78\
xterm+x10mouse               2.9 KB       (2 Files)
  xterm+x10mouse             1.4 KB       ...\Git\usr\share\terminfo\78\
  xterm+x10mouse             1.4 KB       ...\Git\usr\lib\terminfo\78\
xterm+x11hilite              1.8 KB       (2 Files)
  xterm+x11hilite            0.9 KB       ...\Git\usr\lib\terminfo\78\
  xterm+x11hilite            0.9 KB       ...\Git\usr\share\terminfo\78\
xterm+x11mouse               2.9 KB       (2 Files)
  xterm+x11mouse             1.4 KB       ...\Git\usr\share\terminfo\78\
  xterm+x11mouse             1.4 KB       ...\Git\usr\lib\terminfo\78\
xterm1                       6.7 KB       (2 Files)
  xterm1                     3.3 KB       ...\Git\usr\share\terminfo\78\
  xterm1                     3.3 KB       ...\Git\usr\lib\terminfo\78\
xterm-8bit                   3.8 KB       (2 Files)
  xterm-8bit                 1.9 KB       ...\Git\usr\share\terminfo\78\
  xterm-8bit                 1.9 KB       ...\Git\usr\lib\terminfo\78\
xterm-16color                7.1 KB       (2 Files)
  xterm-16color              3.6 KB       ...\Git\usr\share\terminfo\78\
  xterm-16color              3.6 KB       ...\Git\usr\lib\terminfo\78\
xterm-88color                6.8 KB       (2 Files)
  xterm-88color              3.4 KB       ...\Git\usr\share\terminfo\78\
  xterm-88color              3.4 KB       ...\Git\usr\lib\terminfo\78\
xterm-256color               6.8 KB       (2 Files)
  xterm-256color             3.4 KB       ...\Git\usr\lib\terminfo\78\
  xterm-256color             3.4 KB       ...\Git\usr\share\terminfo\78\
xterm-1002                   6.7 KB       (2 Files)
  xterm-1002                 3.4 KB       ...\Git\usr\share\terminfo\78\
  xterm-1002                 3.4 KB       ...\Git\usr\lib\terminfo\78\
xterm-1003                   6.7 KB       (2 Files)
  xterm-1003                 3.3 KB       ...\Git\usr\lib\terminfo\78\
  xterm-1003                 3.3 KB       ...\Git\usr\share\terminfo\78\
xterm-1005                   6.8 KB       (2 Files)
  xterm-1005                 3.4 KB       ...\Git\usr\lib\terminfo\78\
  xterm-1005                 3.4 KB       ...\Git\usr\share\terminfo\78\
xterm-1006                   6.8 KB       (2 Files)
  xterm-1006                 3.4 KB       ...\Git\usr\lib\terminfo\78\
  xterm-1006                 3.4 KB       ...\Git\usr\share\terminfo\78\
xterm-basic                  3.6 KB       (2 Files)
  xterm-basic                1.8 KB       ...\Git\usr\lib\terminfo\78\
  xterm-basic                1.8 KB       ...\Git\usr\share\terminfo\78\
xterm-bold                   3.1 KB       (2 Files)
  xterm-bold                 1.6 KB       ...\Git\usr\lib\terminfo\78\
  xterm-bold                 1.6 KB       ...\Git\usr\share\terminfo\78\
xtermc                       3.1 KB       (2 Files)
  xtermc                     1.6 KB       ...\Git\usr\share\terminfo\78\
  xtermc                     1.6 KB       ...\Git\usr\lib\terminfo\78\
xterm-color                  3.0 KB       (2 Files)
  xterm-color                1.5 KB       ...\Git\usr\lib\terminfo\78\
  xterm-color                1.5 KB       ...\Git\usr\share\terminfo\78\
xterm-hp                     3.7 KB       (2 Files)
  xterm-hp                   1.8 KB       ...\Git\usr\share\terminfo\78\
  xterm-hp                   1.8 KB       ...\Git\usr\lib\terminfo\78\
xtermm                       2.8 KB       (2 Files)
  xtermm                     1.4 KB       ...\Git\usr\lib\terminfo\78\
  xtermm                     1.4 KB       ...\Git\usr\share\terminfo\78\
xterm-new                    6.7 KB       (2 Files)
  xterm-new                  3.3 KB       ...\Git\usr\share\terminfo\78\
  xterm-new                  3.3 KB       ...\Git\usr\lib\terminfo\78\
xterm-nic                    6.7 KB       (2 Files)
  xterm-nic                  3.3 KB       ...\Git\usr\share\terminfo\78\
  xterm-nic                  3.3 KB       ...\Git\usr\lib\terminfo\78\
xterm-noapp                  6.6 KB       (2 Files)
  xterm-noapp                3.3 KB       ...\Git\usr\share\terminfo\78\
  xterm-noapp                3.3 KB       ...\Git\usr\lib\terminfo\78\
xterm-old                    2.9 KB       (2 Files)
  xterm-old                  1.5 KB       ...\Git\usr\share\terminfo\78\
  xterm-old                  1.5 KB       ...\Git\usr\lib\terminfo\78\
xterm-pcolor                 3.4 KB       (2 Files)
  xterm-pcolor               1.7 KB       ...\Git\usr\lib\terminfo\78\
  xterm-pcolor               1.7 KB       ...\Git\usr\share\terminfo\78\
xterm-r5                     2.5 KB       (2 Files)
  xterm-r5                   1.3 KB       ...\Git\usr\share\terminfo\78\
  xterm-r5                   1.3 KB       ...\Git\usr\lib\terminfo\78\
xterm-r6                     2.9 KB       (2 Files)
  xterm-r6                   1.5 KB       ...\Git\usr\share\terminfo\78\
  xterm-r6                   1.5 KB       ...\Git\usr\lib\terminfo\78\
xterms                       6.0 KB       (4 Files)
  xterm-24                   1.5 KB       ...\Git\usr\share\terminfo\78\
  xterm-24                   1.5 KB       ...\Git\usr\lib\terminfo\78\
  xterms                     1.5 KB       ...\Git\usr\lib\terminfo\78\
  xterms                     1.5 KB       ...\Git\usr\share\terminfo\78\
xterm-sco                    4.0 KB       (2 Files)
  xterm-sco                  2.0 KB       ...\Git\usr\share\terminfo\78\
  xterm-sco                  2.0 KB       ...\Git\usr\lib\terminfo\78\
xterms-sun                   4.2 KB       (2 Files)
  xterms-sun                 2.1 KB       ...\Git\usr\share\terminfo\78\
  xterms-sun                 2.1 KB       ...\Git\usr\lib\terminfo\78\
xterm-sun                    4.2 KB       (2 Files)
  xterm-sun                  2.1 KB       ...\Git\usr\share\terminfo\78\
  xterm-sun                  2.1 KB       ...\Git\usr\lib\terminfo\78\
xterm-utf8                   6.7 KB       (2 Files)
  xterm-utf8                 3.3 KB       ...\Git\usr\lib\terminfo\78\
  xterm-utf8                 3.3 KB       ...\Git\usr\share\terminfo\78\
xterm-vt52                   0.9 KB       (2 Files)
  xterm-vt52                 0.5 KB       ...\Git\usr\share\terminfo\78\
  xterm-vt52                 0.5 KB       ...\Git\usr\lib\terminfo\78\
xterm-vt220                  4.0 KB       (2 Files)
  xterm-vt220                2.0 KB       ...\Git\usr\lib\terminfo\78\
  xterm-vt220                2.0 KB       ...\Git\usr\share\terminfo\78\
xterm-x10mouse               6.8 KB       (2 Files)
  xterm-x10mouse             3.4 KB       ...\Git\usr\lib\terminfo\78\
  xterm-x10mouse             3.4 KB       ...\Git\usr\share\terminfo\78\
xterm-x11hilite              6.8 KB       (2 Files)
  xterm-x11hilite            3.4 KB       ...\Git\usr\share\terminfo\78\
  xterm-x11hilite            3.4 KB       ...\Git\usr\lib\terminfo\78\
xterm-x11mouse               6.8 KB       (2 Files)
  xterm-x11mouse             3.4 KB       ...\Git\usr\share\terminfo\78\
  xterm-x11mouse             3.4 KB       ...\Git\usr\lib\terminfo\78\
xterm-xf86-v32               3.9 KB       (2 Files)
  xterm-xf86-v32             2.0 KB       ...\Git\usr\share\terminfo\78\
  xterm-xf86-v32             2.0 KB       ...\Git\usr\lib\terminfo\78\
xterm-xf86-v33               3.9 KB       (2 Files)
  xterm-xf86-v33             1.9 KB       ...\Git\usr\share\terminfo\78\
  xterm-xf86-v33             1.9 KB       ...\Git\usr\lib\terminfo\78\
xterm-xf86-v40               4.3 KB       (2 Files)
  xterm-xf86-v40             2.2 KB       ...\Git\usr\lib\terminfo\78\
  xterm-xf86-v40             2.2 KB       ...\Git\usr\share\terminfo\78\
xterm-xf86-v43               4.3 KB       (2 Files)
  xterm-xf86-v43             2.2 KB       ...\Git\usr\lib\terminfo\78\
  xterm-xf86-v43             2.2 KB       ...\Git\usr\share\terminfo\78\
xterm-xf86-v44               4.4 KB       (2 Files)
  xterm-xf86-v44             2.2 KB       ...\Git\usr\share\terminfo\78\
  xterm-xf86-v44             2.2 KB       ...\Git\usr\lib\terminfo\78\
xterm-xf86-v333              3.9 KB       (2 Files)
  xterm-xf86-v333            2.0 KB       ...\Git\usr\share\terminfo\78\
  xterm-xf86-v333            2.0 KB       ...\Git\usr\lib\terminfo\78\
xterm-xfree86                4.4 KB       (2 Files)
  xterm-xfree86              2.2 KB       ...\Git\usr\share\terminfo\78\
  xterm-xfree86              2.2 KB       ...\Git\usr\lib\terminfo\78\
xterm-xi                     3.9 KB       (2 Files)
  xterm-xi                   1.9 KB       ...\Git\usr\share\terminfo\78\
  xterm-xi                   1.9 KB       ...\Git\usr\lib\terminfo\78\
dscho commented 9 years ago

So I guess (after having to think longer than I care, it would have been a real nice courtesy to provide a concise and helpful description, pity) that

bzcat.exe                    142.8 KB     (3 Files)
  bunzip2.exe                47.6 KB      ...\Git\mingw64\bin\
  bzcat.exe                  47.6 KB      ...\Git\mingw64\bin\
  bzip2.exe                  47.6 KB      ...\Git\mingw64\bin\

wants to tell me that 142.8kB are used instead of 47.6kB by the bunzip2.exe, bzcat.exe and bzip2.exe files in /mingw64/bin/.

I would agree, but what to do about this issue?

dscho commented 9 years ago

I just verified that there is no convenient way in InnoSetup to auto-detect copies and replace them by hardlinks. That is all I can contribute to this ticket, I am afraid.

uecasm commented 9 years ago

It's possible to tell Inno to make hardlinks (but you must identify them specifically, it won't do this automatically because that's rarely the intended action).

In this case, since we're talking about 95 kB here, I think it's simply not worth time or effort even thinking about it. (Actually, wait, I misread that, there's more cases that add up a bit more. Still, unless we start talking >100 MB "wasted" I doubt most people would even notice.)

There might be some motivation for decreasing the installer size, though. Inno does have duplicate detection and will not store two copies of the exact same file in the installer itself, although I'm not 100% sure if this works based purely on file contents or whether they have to have the same Source to be detected as duplicates (which might not apply if you're using a wildcard to pick them up).

dscho commented 9 years ago

Inno does have duplicate detection and will not store two copies of the exact same file in the installer itself

This is actually a feature of the LZMA compression: it sorts the files by size first, and then detects huge blocks of identical byte sequences.

we're talking about 95 kB here

Are we?

Somehow I doubt that, see e.g.

view.exe                     10,919.9 KB  (5 Files)
uecasm commented 9 years ago

This is actually a feature of the LZMA compression: it sorts the files by size first, and then detects huge blocks of identical byte sequences.

No, Inno doesn't compress files like that, unless you have SolidCompression enabled -- by default each file is a separate compression stream. (Even with solid compression it defaults to storing the files in the specified order, although you can tweak that a bit with flags if you're using wildcards.) And de-duplication was a feature before it started using LZMA compression.

Are we? Somehow I doubt that

Yes, I admitted to misreading the followup message. But even so, that's just 32 MB (including original copies, so shave a bit off that for only duplicate copies). I doubt anyone would realistically care about that.

But if you really want to do something about it, you could install only one copy of each and then call CreateHardLink from an AfterInstall handler for each group, or in a CurStepChanged(ssPostInstall) for the installation as a whole. And have some fallback if you're installing onto a non-NTFS system, since they don't support hard links. And you'll have to make sure that if you're picking up the files with wildcards, that the "extra" versions are not present in your source filesystem, or you must explicitly Exclude them. (And I reiterate my point of it not being worth it.)

dscho commented 9 years ago

Inno doesn't compress files like that, unless you have SolidCompression enabled -- by default each file is a separate compression stream.

Sorry, I thought it was clear that I meant that the files are compressed individually, but by compressing likely identical files (same file size) next to each other, the tree of sequences can be exploited optimally so that only a handful bytes are used for identical copies.

that's just 32 MB

Is it? That's is just another guess on your part, isn't it?

But if you really want to do something about it, you could install only one copy of each and then call CreateHardLink from an AfterInstall handler for each group

Oh, you mean what we already do when we need to hard link or copy .dll files? Yes, I agree, but talking about it won't make it happen :stuck_out_tongue_winking_eye:

uecasm commented 9 years ago

Is it? That's is just another guess on your part, isn't it?

No, I copied what you had above into a spreadsheet and added it all up. So if that was comprehensive, then it's about 32 MB (not all of which is "waste", since that includes the originals).

(My previous "95 kB" size wasn't a guess either; that's just what you listed in the second comment, because I saw that first and didn't notice the original list until later.)

Yes, I agree, but talking about it won't make it happen :stuck_out_tongue_winking_eye:

Sure, but I thought I made it clear that I think making it happen is a waste of time. But whatever, I just got linked to this issue due to Inno-relatedness, but I don't really care and I'll stop cluttering it up now.

yfdyh000 commented 9 years ago

It indeed just save 20.3MB/31.3MB. But since we already have the relevant mechanisms, I hope it to be completed by the addition of some paths. Because, perhaps just some omissions or outdated.

dscho commented 9 years ago

@yfdyh000 feel free to work on it!

yfdyh000 commented 9 years ago

I've studied it before, and find some clues, but without success, so I submit this issue.

I guess these may be relevant: https://github.com/git-for-windows/build-extra/search?q=MaybeHardlinkDLLFiles&type=Code https://github.com/git-for-windows/build-extra/search?q=file-list.iss&type=Code https://github.com/git-for-windows/build-extra/blob/master/make-file-list.sh

dscho commented 9 years ago

@yfdyh000 the first thing would be to adjust installer/release.sh so that it identifies the duplicate files in the output of make-file-list.sh. It would then have to keep the first path as-is and build a list of files that need to be hard-linked. This list would then need to be printed into a new file, preferably as a procedure ready for consumption by InnoSetup. Something like this:

procedure HardLinkDuplicateFiles(AppDir:String);
begin
    ...
    HardLinkOrCopy(AppDir+'\usr\bin\rvim.exe',AppDir+'\usr\bin\rview.exe');
    HardLinkOrCopy(AppDir+'\usr\bin\view.exe',AppDir+'\usr\bin\rview.exe');
    HardLinkOrCopy(AppDir+'\usr\bin\vim.exe',AppDir+'\usr\bin\rview.exe');
    ...
end;

The trick will be to make all of this performant. You do not want me having to spend a long time when building the installers just for the sake of identifying the files that can be hard linked instead of copied.

So here are a couple of ideas to make this cheaper for me:

dscho commented 8 years ago

@yfdyh000 so... any progress in the meantime? I spent a substantial amount of time to give you all the correct hints to address this issue. It would be quite okay indeed if you would reciprocate that effort.

yfdyh000 commented 8 years ago

@dscho I'm really sorry for that. If the issue relates to rewrite the script, I did not have experience enough to finish it. I have not set up an build environment, as well as I ever expect it to filelist changes only...

dscho commented 8 years ago

If the issue relates to rewrite the script, I did not have experience enough to finish it.

I did not have any experience with InnoSetup until very recently. It's easy to get into.

I have not set up an build environment

That is only a simple download away...