Merge branch 'master' of git://repo.or.cz/alt-git
[git/platforms.git] / README.MinGW
blob74eb104c2ce7a2a8a77d3537d28d3b5b55a50c97
1 This is a port of GIT to Windows using MinGW.
3 The goal of this port is to have the tools runnable from the Windows
4 command line, not from MinGW's rxvt+bash environment.
6 (Note: This file was written after-the-fact and may contain errors.
7 If you are trying this, please make notes and update it.)
10 INSTALLATION
11 ------------
13 In order to compile this code you need:
15 - MSYS, e.g. MSYS-1.0.11-2004.04.30-1.exe
16 - MinGW, e.g. MinGW-5.0.2.exe
17 - mingwruntime, e.g. mingw-runtime-3.9.tar.gz
18 - compilers and tools:
19         binutils-2.15.91-20040904-1.tar.gz
20         gcc-core-3.4.2-20040916-1.tar.gz
21         gcc-g++-3.4.2-20040916-1.tar.gz
22         gdb-6.3-2.exe
23         mingw32-make-3.80.0-3.tar.gz
24         unzip-5.51-1-bin.zip (this is not from MinGW, iirc)
25         msysDTK-1.0.1.exe (contains ssh, perl)
26         bash-3.1-MSYS-1.0.11-snapshot.tar.bz2
27 - additional libraries:
28         zlib-1.2.3-mingwPORT-1.tar
29         w32api-3.6.tar.gz
30         tcltk-8.4.1-1.exe (for gitk, git-gui)
31         libiconv-1.9.2-1-{lib,bin,lib}.zip (for git-am,
32                 from http://gnuwin32.sourceforge.net/packages/libiconv.htm)
34 I am using these settings in config.mak to have pointers to the right tools:
36 TCL_PATH=tclsh84
37 TCLTK_PATH=wish84
38 SHELL_PATH=D:/MSYS/1.0/bin/sh
39 PERL_PATH=D:/MSYS/1.0/bin/perl
42 STATUS
43 ------
45 This code base will not compile on a POSIX system, although any help
46 to introduce the necessary #ifdefs is welcome.  As such the status quo
47 is in no way intended to be merged upstream.
49 This works:
51 - All the plumbings.
52 - Many porcelains, in particular, checkout, add, rm, commit, diff,
53   branch, merge, rebase, log, show, bisect, grep...
54 - pull, clone, fetch, push via native git protocal as well as ssh.
55 - Local pull, clone, fetch, push.
56 - gitk, if invoked as "wish84 <prefix>\bin\gitk". Ditto for git-gui.
58 This does not work:
60 - daemon, svn, *import, cvs*
61 - and certainly a lot more that I never have found a need to look at.
63 Caveats (aka bugs):
65 - Internally, the ported tools must do their own command line quoting
66   when other plumbings are executed. This sort of quoting is currently
67   implemented *very* simplistic: It just watches out for whitespace
68   and double quote `"' characters. This may become a problem if you have
69   exotic characters in your file names.
71 - It seems that MSYS's default bash, 2.05b, has a bug that breaks git-am
72   (and, hence, git-rebase).  If you see this error:
74         Patch is empty.  Was is split wrong?
76   you need bash 3.1: Just unpack bash-3.1*.tar.bz2 and copy its bash.exe
77   over $MSYS/bin/sh.exe.