MinGW: Make git native protocol work.
[git/mingw.git] / README.MinGW
blob4a454edf2cb09a956917e4fd22f17753b4c44ee1
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 - additional libraries:
27         zlib-1.2.3-mingwPORT-1.tar
28         w32api-3.6.tar.gz
29         regex-0.12.tar.gz (from the GNU site)
30                 compile this into regex.o, ar it into libregex.a
31                 and install it in /mingw/lib, include file into
32                 /mingw/include
33         tcltk-8.4.1-1.exe (for gitk, but it's untested so far)
35 It is absolutely necessary that you install MSYS in a path that does not
36 contain special characters, like spaces. I have it in
38         D:\MSYS\1.0
39         D:\MSYS\1.0\mingw
41 STATUS
42 ------
44 This code base will not compile on a POSIX system, although any help
45 to introduce the necessary #ifdefs is welcome.  As such the status quo
46 is in no way intended to be merged upstream.
48 This works:
50 - All the plumbings.
51 - Many porcelains, in particular, checkout, add, rm, commit, diff,
52   branch, merge, rebase, log, show, bisect, grep...
53 - pull, clone, fetch, push via native git protocal as well as ssh.
54 - Local pull, clone, fetch, push.
55 - gitk, if invoked as "wish84 <prefix>\bin\gitk", but there are
56   artefacts in its layout. A workaround by Mark Levedahl is in
57   branch 'devel'.
59 This does not work:
61 - daemon, svn, *import, cvs*
62 - and certainly a lot more that I never have found a need to look at.
64 Caveats (aka bugs):
66 - The automatic pager of commands like log or diff does not work
67   correctly: It does not display some portion of text at the end.
68   That is, if what you should see is less than 4K, you see nothing at
69   all; otherwise something up to 4K at the end is missing.  Use
70   `git log | less' in these cases. Or `set PAGER=cat' (which is
71   optimized to skip the pager entirely).
72 - Internally, the ported tools must do their own command line quoting
73   when other plumbings are executed. This sort of quoting is currently
74   implemented *very* simplistic: It just watches out for whitespace
75   and double quote `"' characters. This may become a problem if you have
76   exotic characters in your file names.