Skip to content

Commit 0870643

Browse files
dschodennisameling
authored andcommitted
fixup! README.md: Add a Windows-specific preamble
Add a section instructing developers how to build, and how to test the just-built executables in-place. Signed-off-by: Johannes Schindelin <[email protected]>
1 parent 504d8da commit 0870643

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

README.md

+56
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,62 @@ for Windows' [Google Group](http://groups.google.com/group/git-for-windows),
1515
and [contribute bug
1616
fixes](https://github.com/git-for-windows/git/wiki/How-to-participate).
1717

18+
To build Git for Windows, please either install [Git for Windows'
19+
SDK](https://gitforwindows.org/#download-sdk), start its `git-bash.exe`, `cd`
20+
to your Git worktree and run `make`, or open the Git worktree as a folder in
21+
Visual Studio.
22+
23+
To verify that your build works, use one of the following methods:
24+
25+
- If you want to test the built executables within Git for Windows' SDK,
26+
prepend `<worktree>/bin-wrappers` to the `PATH`.
27+
- Alternatively, run `make install` in the Git worktree.
28+
- If you need to test this in a full installer, run `sdk build
29+
git-and-installer`.
30+
- You can also "install" Git into an existing portable Git via `make install
31+
DESTDIR=<dir>` where `<dir>` refers to the top-level directory of the
32+
portable Git. In this instance, you will want to prepend that portable Git's
33+
`/cmd` directory to the `PATH`, or test by running that portable Git's
34+
`git-bash.exe` or `git-cmd.exe`.
35+
- If you built using a recent Visual Studio, you can use the menu item
36+
`Build>Install git` (you will want to click on `Project>CMake Settings for
37+
Git` first, then click on `Edit JSON` and then point `installRoot` to the
38+
`mingw64` directory of an already-unpacked portable Git).
39+
40+
As in the previous bullet point, you will then prepend `/cmd` to the `PATH`
41+
or run using the portable Git's `git-bash.exe` or `git-cmd.exe`.
42+
- If you want to run the built executables in-place, but in a CMD instead of
43+
inside a Bash, you can run a snippet like this in the `git-bash.exe` window
44+
where Git was built (ensure that the `EOF` line has no leading spaces), and
45+
then paste into the CMD window what was put in the clipboard:
46+
47+
```sh
48+
clip.exe <<EOF
49+
set GIT_EXEC_PATH=$(cygpath -aw .)
50+
set PATH=$(cygpath -awp ".:contrib/scalar:/mingw64/bin:/usr/bin:$PATH")
51+
set GIT_TEMPLATE_DIR=$(cygpath -aw templates/blt)
52+
set GITPERLLIB=$(cygpath -aw perl/build/lib)
53+
EOF
54+
```
55+
- If you want to run the built executables in-place, but outside of Git for
56+
Windows' SDK, and without an option to set/override any environment
57+
variables (e.g. in Visual Studio's debugger), you can call the Git executable
58+
by its absolute path and use the `--exec-path` option, like so:
59+
60+
```cmd
61+
C:\git-sdk-64\usr\src\git\git.exe --exec-path=C:\git-sdk-64\usr\src\git help
62+
```
63+
64+
Note: for this to work, you have to hard-link (or copy) the `.dll` files from
65+
the `/mingw64/bin` directory to the Git worktree, or add the `/mingw64/bin`
66+
directory to the `PATH` somehow or other.
67+
68+
To make sure that you are testing the correct binary, call `./git.exe version`
69+
in the Git worktree, and then call `git version` in a directory/window where
70+
you want to test Git, and verify that they refer to the same version (you may
71+
even want to pass the command-line option `--build-options` to look at the
72+
exact commit from which the Git version was built).
73+
1874
Git - fast, scalable, distributed revision control system
1975
=========================================================
2076

0 commit comments

Comments
 (0)