mirror of
https://github.com/git/git.git
synced 2026-03-13 10:23:30 +01:00
The reason to set SHELL_PATH and PERL_PATH was that 'make' failed to execute /bin/sh some-script It turns out that different MinGW/MSYS environments have different levels of support for this construct, so use the default and let the user override the settings in config.mak if the defaults don't work.
78 lines
2.4 KiB
Plaintext
78 lines
2.4 KiB
Plaintext
This is a port of GIT to Windows using MinGW.
|
|
|
|
The goal of this port is to have the tools runnable from the Windows
|
|
command line, not from MinGW's rxvt+bash environment.
|
|
|
|
(Note: This file was written after-the-fact and may contain errors.
|
|
If you are trying this, please make notes and update it.)
|
|
|
|
|
|
INSTALLATION
|
|
------------
|
|
|
|
In order to compile this code you need:
|
|
|
|
- MSYS, e.g. MSYS-1.0.11-2004.04.30-1.exe
|
|
- MinGW, e.g. MinGW-5.0.2.exe
|
|
- mingwruntime, e.g. mingw-runtime-3.9.tar.gz
|
|
- compilers and tools:
|
|
binutils-2.15.91-20040904-1.tar.gz
|
|
gcc-core-3.4.2-20040916-1.tar.gz
|
|
gcc-g++-3.4.2-20040916-1.tar.gz
|
|
gdb-6.3-2.exe
|
|
mingw32-make-3.80.0-3.tar.gz
|
|
unzip-5.51-1-bin.zip (this is not from MinGW, iirc)
|
|
msysDTK-1.0.1.exe (contains ssh, perl)
|
|
bash-3.1-MSYS-1.0.11-snapshot.tar.bz2
|
|
- additional libraries:
|
|
zlib-1.2.3-mingwPORT-1.tar
|
|
w32api-3.6.tar.gz
|
|
tcltk-8.4.1-1.exe (for gitk, git-gui)
|
|
libiconv-1.9.2-1-{lib,bin,lib}.zip (for git-am,
|
|
from http://gnuwin32.sourceforge.net/packages/libiconv.htm)
|
|
|
|
I am using these settings in config.mak to have pointers to the right tools:
|
|
|
|
TCL_PATH=tclsh84
|
|
TCLTK_PATH=wish84
|
|
SHELL_PATH=D:/MSYS/1.0/bin/sh
|
|
PERL_PATH=D:/MSYS/1.0/bin/perl
|
|
|
|
|
|
STATUS
|
|
------
|
|
|
|
This code base will not compile on a POSIX system, although any help
|
|
to introduce the necessary #ifdefs is welcome. As such the status quo
|
|
is in no way intended to be merged upstream.
|
|
|
|
This works:
|
|
|
|
- All the plumbings.
|
|
- Many porcelains, in particular, checkout, add, rm, commit, diff,
|
|
branch, merge, rebase, log, show, bisect, grep...
|
|
- pull, clone, fetch, push via native git protocal as well as ssh.
|
|
- Local pull, clone, fetch, push.
|
|
- gitk, if invoked as "wish84 <prefix>\bin\gitk". Ditto for git-gui.
|
|
|
|
This does not work:
|
|
|
|
- daemon, svn, *import, cvs*
|
|
- and certainly a lot more that I never have found a need to look at.
|
|
|
|
Caveats (aka bugs):
|
|
|
|
- Internally, the ported tools must do their own command line quoting
|
|
when other plumbings are executed. This sort of quoting is currently
|
|
implemented *very* simplistic: It just watches out for whitespace
|
|
and double quote `"' characters. This may become a problem if you have
|
|
exotic characters in your file names.
|
|
|
|
- It seems that MSYS's default bash, 2.05b, has a bug that breaks git-am
|
|
(and, hence, git-rebase). If you see this error:
|
|
|
|
Patch is empty. Was is split wrong?
|
|
|
|
you need bash 3.1: Just unpack bash-3.1*.tar.bz2 and copy its bash.exe
|
|
over $MSYS/bin/sh.exe.
|