๐Building Git on Windows
We build Git for Windows using an MSYS2 based Git for Windows SDK. This SDK can be installed via the SDK installer
๐Installing a build environment
- Just run the SDK installer.
๐Build Git
An initial
git cloneandmakeshould have already occurred when running the SDK installer.Open the Git for Windows SDK MinGW shell by double clicking either the Shortcut on the desktop
Git SDK 32-bit.lnkor by double clickingmingw32_shell.batin the install folder. That isGit SDK 64-bit.lnkandmingw64_shell.batfor the64bitSDK installer.Change directory to the initial clone:
cd /usr/src/git. If the directory is empty you may have themasterbranch checked out:git checkout main.(Optional) build Git:
make installRun the test suite:
make test. If you are a fan of statistics, you can use the followingproveinvocation to run the testsuite. But first we have to change to the test directory with the commandcd t. After that you can issue/usr/bin/time prove -j 15 --state=failed,save ./t[0-9]*.sh. If 15 threads are too many for your system, you can provide the number of threads via the-j <num>(j for jobs) parameter.
๐Build Git from a Pull Request or another branch
Once the SDK built Git, it is very easy to build another revision of Git, such as per a different branch or Pull Request.
- open the Git Bash of the SDK unless it is still open: execute the
git-bash.exebinary in the top-level directory of the SDK, - switch the working directory:
cd /usr/src/git, - fetch the Pull Requestโs revision or the branch:
- if you want to test a Pull Request, call
git fetch origin refs/pull/<id>/head, where<id>is the number of the Pull Request (e.g. if you want to test Pull Request #606, you would callgit fetch origin refs/pull/606/head), - if you want to test a custom branch, call
git fetch <url> <branch>instead, where<url>is the URL of the repository and<branch>is the name of the branch to test (e.g. if you wanted to test @dschoโscool-new-featurebranch, you would callgit fetch https://github.com/dscho/git cool-new-feature), - check out the revision that was just fetched:
git checkout FETCH_HEAD, - continue as above either by
make installormake test.
๐Updating to the newest Git for Windows version
cd /usr/src/git
git pull
make -j15 install install-html
๐Testing the new Git version
As before:
cd /usr/src/git/t
/usr/bin/time prove -j 5 --state=failed,save ./t[0-9]*.sh
๐See also Regression Testing
Single tests, block of tests, or the whole test suite can be run, as detailed in Running Gitโs regression-tests
TODO: mention good practices to develop using Eclipse, MSVC