Skip to content

Commit 44e5ebd

Browse files
dschoGit for Windows Build Agent
authored and
Git for Windows Build Agent
committed
Skip linking the "dashed" git-<command>s for built-ins (#4252)
It is merely a historical wart that, say, `git-commit` exists in the `libexec/git-core/` directory, a tribute to the original idea to let Git be essentially a bunch of Unix shell scripts revolving around very few "plumbing" (AKA low-level) commands. Git has evolved a lot from there. These days, most of Git's functionality is contained within the `git` executable, in the form of "built-in" commands. To accommodate for scripts that use the "dashed" form of Git commands, even today, Git provides hard-links that make the `git` executable available as, say, `git-commit`, just in case that an old script has not been updated to invoke `git commit`. Those hard-links do not come cheap: they take about half a minute for every build of Git on Windows, they are mistaken for taking up huge amounts of space by some Windows Explorer versions that do not understand hard-links, and therefore many a "bug" report had to be addressed. The "dashed form" has been officially deprecated in Git version 1.5.4, which was released on February 2nd, 2008, i.e. a very long time ago. This deprecation was never finalized by skipping these hard-links, but we can start the process now, in Git for Windows. This addresses the concern raised in #4185 (comment)
2 parents 1b9c71d + 4c4f7e8 commit 44e5ebd

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

config.mak.uname

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,7 @@ ifeq ($(uname_S),Windows)
480480
NO_POSIX_GOODIES = UnfortunatelyYes
481481
NATIVE_CRLF = YesPlease
482482
DEFAULT_HELP_FORMAT = html
483+
SKIP_DASHED_BUILT_INS = YabbaDabbaDoo
483484
ifeq (/mingw64,$(subst 32,64,$(prefix)))
484485
# Move system config into top-level /etc/
485486
ETC_GITCONFIG = ../etc/gitconfig
@@ -659,6 +660,7 @@ ifeq ($(uname_S),MINGW)
659660
FSMONITOR_DAEMON_BACKEND = win32
660661
FSMONITOR_OS_SETTINGS = win32
661662

663+
SKIP_DASHED_BUILT_INS = YabbaDabbaDoo
662664
RUNTIME_PREFIX = YesPlease
663665
HAVE_WPGMPTR = YesWeDo
664666
NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease

0 commit comments

Comments
 (0)