Go to file
Johannes Schindelin df5218b4c3 config.mak.uname: support MSys2
For a long time, Git for Windows lagged behind Git's 2.x releases because
the Git for Windows developers wanted to let that big jump coincide with
a well-needed jump away from MSys to MSys2.

To understand why this is such a big issue, it needs to be noted that
many parts of Git are not written in portable C, but instead Git relies
on a POSIX shell and Perl to be available.

To support the scripts, Git for Windows has to ship a minimal POSIX
emulation layer with Bash and Perl thrown in, and when the Git for
Windows effort started in August 2007, this developer settled on using
MSys, a stripped down version of Cygwin. Consequently, the original name
of the project was "msysGit" (which, sadly, caused a *lot* of confusion
because few Windows users know about MSys, and even less care).

To compile the C code of Git for Windows, MSys was used, too: it sports
two versions of the GNU C Compiler: one that links implicitly to the
POSIX emulation layer, and another one that targets the plain Win32 API
(with a few convenience functions thrown in).  Git for Windows'
executables are built using the latter, and therefore they are really
just Win32 programs. To discern executables requiring the POSIX
emulation layer from the ones that do not, the latter are called MinGW
(Minimal GNU for Windows) when the former are called MSys executables.

This reliance on MSys incurred challenges, too, though: some of our
changes to the MSys runtime -- necessary to support Git for Windows
better -- were not accepted upstream, so we had to maintain our own
fork. Also, the MSys runtime was not developed further to support e.g.
UTF-8 or 64-bit, and apart from lacking a package management system
until much later (when mingw-get was introduced), many packages provided
by the MSys/MinGW project lag behind the respective source code
versions, in particular Bash and OpenSSL. For a while, the Git for
Windows project tried to remedy the situation by trying to build newer
versions of those packages, but the situation quickly became untenable,
especially with problems like the Heartbleed bug requiring swift action
that has nothing to do with developing Git for Windows further.

Happily, in the meantime the MSys2 project (https://msys2.github.io/)
emerged, and was chosen to be the base of the Git for Windows 2.x. Just
like MSys, MSys2 is a stripped down version of Cygwin, but it is
actively kept up-to-date with Cygwin's source code.  Thereby, it already
supports Unicode internally, and it also offers the 64-bit support that
we yearned for since the beginning of the Git for Windows project.

MSys2 also ported the Pacman package management system from Arch Linux
and uses it heavily. This brings the same convenience to which Linux
users are used to from `yum` or `apt-get`, and to which MacOSX users are
used to from Homebrew or MacPorts, or BSD users from the Ports system,
to MSys2: a simple `pacman -Syu` will update all installed packages to
the newest versions currently available.

MSys2 is also *very* active, typically providing package updates
multiple times per week.

It still required a two-month effort to bring everything to a state
where Git's test suite passes, many more months until the first official
Git for Windows 2.x was released, and a couple of patches still await
their submission to the respective upstream projects. Yet without MSys2,
the modernization of Git for Windows would simply not have happened.

This commit lays the ground work to supporting MSys2-based Git builds.

Assisted-by: Waldek Maleska <weakcamel@users.github.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-01-13 11:26:24 -08:00
Documentation Git 2.7 2016-01-04 14:08:04 -08:00
block-sha1 sha1: provide another level of indirection for the SHA-1 functions 2015-11-05 10:35:11 -08:00
builtin Merge branch 'jk/symbolic-ref-maint' into maint 2016-01-04 14:02:58 -08:00
compat Merge branch 'js/emu-write-epipe-on-windows' 2015-12-22 14:45:16 -08:00
contrib Merge branch 'sg/completion-no-column' into maint 2016-01-04 14:02:47 -08:00
ewah Merge branch 'es/osx-header-pollutes-mask-macro' into maint 2015-07-15 11:41:24 -07:00
git-gui
gitk-git Merge git://ozlabs.org/~paulus/gitk 2015-12-21 08:56:16 -08:00
gitweb
mergetools
perl git-svn: improve rebase/mkdirs performance 2015-11-10 01:35:01 +00:00
po l10n: de.po: translate 68 new messages 2015-12-29 19:53:17 +01:00
ppc sha1: provide another level of indirection for the SHA-1 functions 2015-11-05 10:35:11 -08:00
refs Merge branch 'sg/lock-file-commit-error' 2015-12-11 10:40:55 -08:00
t Merge branch 'jk/pending-keep-tag-name' into maint 2016-01-04 14:03:08 -08:00
templates
vcs-svn
xdiff
.gitattributes
.gitignore submodule: rewrite `module_list` shell function in C 2015-09-03 14:12:40 -07:00
.mailmap mailmap: update my entry with new email address 2015-09-16 09:08:48 -07:00
.travis.yml Add Travis CI support 2015-11-28 12:11:12 -05:00
COPYING
GIT-VERSION-GEN Git 2.7 2016-01-04 14:08:04 -08:00
INSTALL
LGPL-2.1
Makefile Merge branch 'dt/refs-backend-pre-vtable' 2015-12-08 14:14:49 -08:00
README
RelNotes Prepare for 2.6.5 2015-12-11 11:17:47 -08:00
abspath.c
aclocal.m4
advice.c merge: grammofix in please-commit-before-merge message 2015-10-02 14:29:56 -07:00
advice.h
alias.c config: silence warnings for command names with invalid keys 2015-08-24 08:52:23 -07:00
alloc.c
archive-tar.c archive-tar: use xsnprintf for trivial formatting 2015-09-25 10:18:18 -07:00
archive-zip.c Merge branch 'rs/archive-zip-many' into maint 2015-09-03 19:18:01 -07:00
archive.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
archive.h
argv-array.c
argv-array.h
attr.c memoize common git-path "constant" files 2015-08-10 15:37:14 -07:00
attr.h
base85.c
bisect.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
bisect.h bisect: simplify the addition of new bisect terms 2015-08-03 11:42:41 -07:00
blob.c
blob.h
branch.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
branch.h worktree: add top-level worktree.c 2015-10-02 13:07:38 -07:00
builtin.h Merge branch 'sb/submodule-helper' 2015-10-05 12:30:19 -07:00
bulk-checkin.c use xsnprintf for generating git object headers 2015-09-25 10:18:18 -07:00
bulk-checkin.h
bundle.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
bundle.h
cache-tree.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
cache-tree.h cache-tree: introduce write_index_as_tree() 2015-08-04 22:02:11 -07:00
cache.h Merge branch 'bc/format-patch-null-from-line' 2015-12-21 10:59:08 -08:00
check-builtins.sh
check-racy.c
check_bindir
color.c color: add color_set helper for copying raw colors 2015-10-05 11:08:05 -07:00
color.h color: add color_set helper for copying raw colors 2015-10-05 11:08:05 -07:00
column.c
column.h
combine-diff.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
command-list.txt Merge branch 'nd/multiple-work-trees' 2015-07-13 14:02:02 -07:00
commit-slab.h Merge branch 'jc/commit-slab' 2015-08-03 11:01:21 -07:00
commit.c Merge branch 'rs/pop-commit' into maint 2015-12-11 11:14:13 -08:00
commit.h Merge branch 'jk/date-mode-format' 2015-08-03 11:01:27 -07:00
config.c Make error message after failing commit_lock_file() less confusing 2015-12-01 18:17:23 -05:00
config.mak.in
config.mak.uname config.mak.uname: support MSys2 2016-01-13 11:26:24 -08:00
configure.ac Merge branch 'rc/configure-use-libs-when-checking-a-lib' into maint 2015-12-01 17:19:06 -05:00
connect.c get_remote_heads: convert to struct object_id 2015-11-20 08:02:05 -05:00
connect.h
connected.c
connected.h
convert.c convert trivial sprintf / strcpy calls to xsnprintf 2015-09-25 10:18:18 -07:00
convert.h
copy.c
credential-cache--daemon.c credential-cache: new option to ignore sighup 2015-11-20 08:02:07 -05:00
credential-cache.c am, credential-cache: add angle brackets to usage string 2015-10-16 10:43:41 -07:00
credential-store.c credential-store: don't pass strerror to die_errno() 2015-12-16 10:27:12 -08:00
credential.c
credential.h
csum-file.c
csum-file.h
ctype.c
daemon.c Merge branch 'rs/daemon-plug-child-leak' into maint 2015-11-05 12:18:17 -08:00
date.c date: make "local" orthogonal to date format 2015-09-03 15:45:26 -07:00
decorate.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
decorate.h
delta.h
diff-delta.c
diff-lib.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
diff-no-index.c use strbuf_complete to conditionally append slash 2015-10-05 11:08:06 -07:00
diff.c Merge branch 'tk/sigchain-unnecessary-post-tempfile' 2015-10-29 13:59:18 -07:00
diff.h log: add "log.follow" configuration variable 2015-07-09 10:24:23 -07:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c react to errors in xdi_diff 2015-09-28 14:57:10 -07:00
diffcore-rename.c
diffcore.h
dir.c Merge branch 'dt/name-hash-dir-entry-fix' into maint 2015-11-03 15:32:40 -08:00
dir.h
editor.c
entry.c entry.c: convert strcpy to xsnprintf 2015-09-25 10:18:18 -07:00
environment.c Merge branch 'jk/repository-extension' into maint 2015-11-03 15:32:25 -08:00
exec_cmd.c
exec_cmd.h
fast-import.c Merge branch 'sg/lock-file-commit-error' 2015-12-11 10:40:55 -08:00
fetch-pack.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
fetch-pack.h
fmt-merge-msg.h
fsck.c Merge branch 'bc/object-id' 2015-12-10 12:36:13 -08:00
fsck.h fsck: git receive-pack: support excluding objects from fsck'ing 2015-06-23 14:27:37 -07:00
generate-cmdlist.sh generate-cmdlist: re-implement as shell script 2015-08-25 11:24:31 -07:00
gettext.c introduce "format" date-mode 2015-06-29 11:39:10 -07:00
gettext.h
git-add--interactive.perl
git-archimport.perl
git-bisect.sh bisect: allow setting any user-specified in 'git bisect start' 2015-08-03 11:42:43 -07:00
git-compat-util.h Merge branch 'jk/ident-loosen-getpwuid' 2015-12-21 10:59:07 -08:00
git-cvsexportcommit.perl
git-cvsimport.perl Merge branch 'cn/cvsimport-perl-update' 2015-06-25 11:08:08 -07:00
git-cvsserver.perl
git-difftool--helper.sh
git-difftool.perl difftool: ignore symbolic links in use_wt_file 2015-10-29 13:43:10 -07:00
git-filter-branch.sh Merge branch 'jk/filter-branch-no-index' 2015-12-04 11:19:10 -08:00
git-instaweb.sh
git-merge-octopus.sh
git-merge-one-file.sh merge: detect delete/modechange conflict 2015-10-26 14:49:31 -07:00
git-merge-resolve.sh
git-mergetool--lib.sh
git-mergetool.sh
git-p4.py Merge branch 'sh/p4-multi-depot' 2015-12-28 13:58:58 -08:00
git-parse-remote.sh
git-quiltimport.sh git-quiltimport: add commandline option --series <file> 2015-09-01 11:10:07 -07:00
git-rebase--am.sh rebase: return non-zero error code if format-patch fails 2015-07-08 15:36:42 -07:00
git-rebase--interactive.sh rebase -i: remember merge options beyond continue actions 2015-12-11 12:44:44 -08:00
git-rebase--merge.sh
git-rebase.sh Merge branch 'jk/rebase-no-autostash' into maint 2015-12-08 14:05:01 -08:00
git-relink.perl
git-remote-testgit.sh
git-request-pull.sh
git-send-email.perl Merge branch 'jk/send-email-ssl-errors' 2015-12-21 10:59:06 -08:00
git-sh-i18n.sh
git-sh-setup.sh
git-stash.sh Merge branch 'nk/stash-show-config' 2015-10-05 12:30:10 -07:00
git-submodule.sh Sync with 2.6.1 2015-10-05 13:20:08 -07:00
git-svn.perl git-svn: parse authors file more leniently 2015-09-10 17:59:38 +00:00
git-web--browse.sh
git.c Merge branch 'sb/submodule-helper' 2015-10-05 12:30:19 -07:00
git.rc
git.spec.in
gpg-interface.c
gpg-interface.h
graph.c
graph.h
grep.c color: add color_set helper for copying raw colors 2015-10-05 11:08:05 -07:00
grep.h
hashmap.c
hashmap.h
help.c Merge branch 'js/sleep-without-select' 2015-06-24 12:21:47 -07:00
help.h
hex.c add reentrant variants of sha1_to_hex and find_unique_abbrev 2015-09-25 10:18:18 -07:00
http-backend.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
http-fetch.c
http-push.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
http-walker.c http-walker: store url in a strbuf 2015-09-25 10:18:18 -07:00
http.c Merge branch 'bc/object-id' 2015-12-10 12:36:13 -08:00
http.h http.c: use CURLOPT_RANGE for range requests 2015-11-02 14:18:06 -08:00
ident.c Merge branch 'jk/ident-loosen-getpwuid' into maint 2016-01-04 14:02:57 -08:00
imap-send.c Merge branch 'js/imap-send-curl-compilation-fix' 2015-10-30 13:06:58 -07:00
khash.h
kwset.c
kwset.h
levenshtein.c
levenshtein.h
line-log.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
line-log.h
line-range.c
line-range.h
list-objects.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
list-objects.h
ll-merge.c Merge branch 'jk/war-on-sprintf' 2015-10-20 15:24:01 -07:00
ll-merge.h
lockfile.c lockfile: remove function "hold_lock_file_for_append" 2015-08-28 11:32:01 -07:00
lockfile.h lockfile: remove function "hold_lock_file_for_append" 2015-08-28 11:32:01 -07:00
log-tree.c format-patch: add an option to suppress commit hash 2015-12-15 10:03:40 -08:00
log-tree.h
mailinfo.c mailinfo: fix passing wrong address to git_mailinfo_config 2015-11-01 10:29:40 -08:00
mailinfo.h mailinfo: remove calls to exit() and die() deep in the callchain 2015-10-21 15:59:34 -07:00
mailmap.c mailmap: replace strcpy with xstrdup 2015-09-25 10:18:18 -07:00
mailmap.h
match-trees.c
merge-blobs.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
merge-blobs.h
merge-recursive.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
merge-recursive.h
merge.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
mergesort.c
mergesort.h
name-hash.c name-hash: don't reuse cache_entry in dir_entry 2015-10-21 12:47:38 -07:00
notes-cache.c
notes-cache.h
notes-merge.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
notes-merge.h notes: extract enum notes_merge_strategy to notes-utils.h 2015-08-17 15:36:23 -07:00
notes-utils.c notes: extract parse_notes_merge_strategy to notes-utils 2015-08-17 15:38:32 -07:00
notes-utils.h notes: extract parse_notes_merge_strategy to notes-utils 2015-08-17 15:38:32 -07:00
notes.c notes: document length of fanout path with a constant 2015-10-05 11:08:05 -07:00
notes.h
object.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
object.h Remove get_object_hash. 2015-11-20 08:02:05 -05:00
pack-bitmap-write.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
pack-bitmap.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
pack-bitmap.h
pack-check.c verify_pack: do not ignore return value of verification function 2015-12-01 18:19:35 -05:00
pack-objects.c
pack-objects.h
pack-revindex.c Silence GCC's "cast of pointer to integer of a different size" warning 2015-10-26 13:24:03 -07:00
pack-revindex.h
pack-write.c
pack.h
pager.c Merge branch 'ti/glibc-stdio-mutex-from-signal-handler' into maint 2015-10-16 14:32:41 -07:00
parse-options-cb.c Merge branch 'kn/for-each-tag-branch' 2015-10-05 12:30:03 -07:00
parse-options.c parse-options: allow -h as a short option 2015-11-20 08:02:07 -05:00
parse-options.h parse-options: allow -h as a short option 2015-11-20 08:02:07 -05:00
patch-delta.c
patch-ids.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
patch-ids.h
path.c Merge branch 'dt/refs-backend-pre-vtable' 2015-12-08 14:14:49 -08:00
pathspec.c
pathspec.h
pkt-line.c pkt-line: show packets in async processes as "sideband" 2015-09-01 15:11:57 -07:00
pkt-line.h
preload-index.c
pretty.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
prio-queue.c
prio-queue.h
progress.c stop_progress_msg: convert sprintf to xsnprintf 2015-09-25 10:18:18 -07:00
progress.h
prompt.c
prompt.h
quote.c quote: move comment before sq_quote_buf() 2015-10-07 15:12:01 -07:00
quote.h
reachable.c Merge branch 'js/gc-with-stale-symref' into maint 2015-10-20 15:22:42 -07:00
reachable.h
read-cache.c Merge branch 'dt/name-hash-dir-entry-fix' into maint 2015-11-03 15:32:40 -08:00
ref-filter.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
ref-filter.h branch.c: use 'ref-filter' APIs 2015-09-25 08:54:54 -07:00
reflog-walk.c replace trivial malloc + sprintf / strcpy calls with xstrfmt 2015-09-25 10:18:18 -07:00
reflog-walk.h convert "enum date_mode" into a struct 2015-06-29 11:39:07 -07:00
refs.c Merge branch 'bc/object-id' 2015-12-10 12:36:13 -08:00
refs.h hideRefs: add support for matching full refs 2015-11-05 11:25:02 -08:00
remote-curl.c parse_fetch: convert to use struct object_id 2015-11-20 08:02:05 -05:00
remote-testsvn.c
remote.c remote: convert functions to struct object_id 2015-11-20 08:02:05 -05:00
remote.h ref_newer: convert to use struct object_id 2015-11-20 08:02:05 -05:00
replace_object.c
rerere.c Merge branch 'jc/rerere' 2015-10-05 12:30:05 -07:00
rerere.h Merge branch 'jc/rerere' 2015-10-05 12:30:05 -07:00
resolve-undo.c
resolve-undo.h
revision.c Merge branch 'jk/pending-keep-tag-name' into maint 2016-01-04 14:03:08 -08:00
revision.h format-patch: add an option to suppress commit hash 2015-12-15 10:03:40 -08:00
run-command.c Merge branch 'rs/daemon-plug-child-leak' into maint 2015-11-05 12:18:17 -08:00
run-command.h Merge branch 'rs/daemon-plug-child-leak' into maint 2015-11-05 12:18:17 -08:00
send-pack.c Convert struct ref to use object_id. 2015-11-20 08:02:05 -05:00
send-pack.h push: support signing pushes iff the server supports it 2015-08-19 12:58:45 -07:00
sequencer.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
sequencer.h
server-info.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
setup.c Merge branch 'mk/submodule-gitdir-path' into maint 2015-11-03 15:32:35 -08:00
sh-i18n--envsubst.c
sha1-array.c
sha1-array.h
sha1-lookup.c
sha1-lookup.h
sha1_file.c Merge branch 'bc/format-patch-null-from-line' 2015-12-21 10:59:08 -08:00
sha1_name.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
shallow.c Merge branch 'rs/pop-commit' into maint 2015-12-11 11:14:13 -08:00
shell.c
shortlog.h
show-index.c usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
sideband.c convert trivial sprintf / strcpy calls to xsnprintf 2015-09-25 10:18:18 -07:00
sideband.h
sigchain.c
sigchain.h
split-index.c
split-index.h
strbuf.c Merge branch 'tk/stripspace' 2015-10-26 15:55:20 -07:00
strbuf.h Merge branch 'tk/stripspace' 2015-10-26 15:55:20 -07:00
streaming.c
streaming.h
string-list.c
string-list.h
submodule-config.c push: add recurseSubmodules config option 2015-11-20 08:02:07 -05:00
submodule-config.h push: add recurseSubmodules config option 2015-11-20 08:02:07 -05:00
submodule.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
submodule.h push: add recurseSubmodules config option 2015-11-20 08:02:07 -05:00
symlinks.c
tag.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
tag.h
tar.h
tempfile.c register_tempfile(): new function to handle an existing temporary file 2015-08-10 12:57:14 -07:00
tempfile.h register_tempfile(): new function to handle an existing temporary file 2015-08-10 12:57:14 -07:00
test-chmtime.c
test-config.c
test-ctype.c
test-date.c convert "enum date_mode" into a struct 2015-06-29 11:39:07 -07:00
test-delta.c
test-dump-cache-tree.c test-dump-cache-tree: avoid overflow of cache-tree name 2015-09-25 10:18:18 -07:00
test-dump-split-index.c commit: don't rewrite shared index unnecessarily 2015-08-31 08:41:07 -07:00
test-dump-untracked-cache.c
test-genrandom.c
test-hashmap.c
test-index-version.c
test-line-buffer.c
test-match-trees.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
test-mergesort.c
test-mktemp.c
test-parse-options.c parse-options: move unsigned long option parsing out of pack-objects.c 2015-06-22 15:07:21 -07:00
test-path-utils.c test-path-utils.c: remove incorrect assumption 2015-10-08 18:03:50 -07:00
test-prio-queue.c
test-read-cache.c
test-regex.c
test-revision-walking.c convert "enum date_mode" into a struct 2015-06-29 11:39:07 -07:00
test-run-command.c
test-scrap-cache-tree.c
test-sha1-array.c
test-sha1.c
test-sha1.sh
test-sigchain.c
test-string-list.c
test-submodule-config.c submodule: use new config API for worktree configurations 2015-08-19 11:43:10 -07:00
test-subprocess.c
test-svn-fe.c
test-urlmatch-normalization.c
test-wildmatch.c
thread-utils.c
thread-utils.h
trace.c trace: use strbuf for quote_crnl output 2015-09-25 10:18:18 -07:00
trace.h
trailer.c Merge branch 'cc/trailers-corner-case-fix' into maint 2015-09-03 19:18:03 -07:00
trailer.h
transport-helper.c push_refs_with_export: convert to struct object_id 2015-11-20 08:02:05 -05:00
transport.c Merge branch 'bc/object-id' 2015-12-10 12:36:13 -08:00
transport.h Convert struct ref to use object_id. 2015-11-20 08:02:05 -05:00
tree-diff.c
tree-walk.c
tree-walk.h
tree.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
tree.h Merge branch 'jk/squelch-missing-link-warning-for-unreachable' into maint 2015-06-25 11:02:10 -07:00
unicode_width.h
unimplemented.sh
unix-socket.c
unix-socket.h
unpack-trees.c replace trivial malloc + sprintf / strcpy calls with xstrfmt 2015-09-25 10:18:18 -07:00
unpack-trees.h
update_unicode.sh
upload-pack.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
url.c use strbuf_complete to conditionally append slash 2015-10-05 11:08:06 -07:00
url.h
urlmatch.c
urlmatch.h
usage.c vreportf: avoid intermediate buffer 2015-08-11 14:29:36 -07:00
userdiff.c userdiff: add support for Fountain documents 2015-07-23 14:44:51 -07:00
userdiff.h
utf8.c utf8: add function to align a string into given strbuf 2015-09-17 10:02:48 -07:00
utf8.h utf8: add function to align a string into given strbuf 2015-09-17 10:02:48 -07:00
varint.c
varint.h
version.c
version.h
versioncmp.c
walker.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
walker.h
wildmatch.c
wildmatch.h
worktree.c worktree: add details to the worktree struct 2015-10-08 11:57:07 -07:00
worktree.h worktree: add details to the worktree struct 2015-10-08 11:57:07 -07:00
wrap-for-bin.sh test: facilitate debugging Git executables in tests with gdb 2015-10-30 14:02:38 -07:00
wrapper.c Merge branch 'jk/ident-loosen-getpwuid' 2015-12-21 10:59:07 -08:00
write_or_die.c
ws.c
wt-status.c Merge branch 'bc/object-id' 2015-12-10 12:36:13 -08:00
wt-status.h wt-status: move #include "pathspec.h" to the header 2015-08-21 14:49:27 -07:00
xdiff-interface.c xdiff: reject files larger than ~1GB 2015-09-28 14:57:23 -07:00
xdiff-interface.h xdiff: reject files larger than ~1GB 2015-09-28 14:57:23 -07:00
zlib.c

README

////////////////////////////////////////////////////////////////

	Git - the stupid content tracker

////////////////////////////////////////////////////////////////

"git" can mean anything, depending on your mood.

 - random three-letter combination that is pronounceable, and not
   actually used by any common UNIX command.  The fact that it is a
   mispronunciation of "get" may or may not be relevant.
 - stupid. contemptible and despicable. simple. Take your pick from the
   dictionary of slang.
 - "global information tracker": you're in a good mood, and it actually
   works for you. Angels sing, and a light suddenly fills the room.
 - "goddamn idiotic truckload of sh*t": when it breaks

Git is a fast, scalable, distributed revision control system with an
unusually rich command set that provides both high-level operations
and full access to internals.

Git is an Open Source project covered by the GNU General Public
License version 2 (some parts of it are under different licenses,
compatible with the GPLv2). It was originally written by Linus
Torvalds with help of a group of hackers around the net.

Please read the file INSTALL for installation instructions.

See Documentation/gittutorial.txt to get started, then see
Documentation/giteveryday.txt for a useful minimum set of commands, and
Documentation/git-commandname.txt for documentation of each command.
If git has been correctly installed, then the tutorial can also be
read with "man gittutorial" or "git help tutorial", and the
documentation of each command with "man git-commandname" or "git help
commandname".

CVS users may also want to read Documentation/gitcvs-migration.txt
("man gitcvs-migration" or "git help cvs-migration" if git is
installed).

Many Git online resources are accessible from http://git-scm.com/
including full documentation and Git related tools.

The user discussion and development of Git take place on the Git
mailing list -- everyone is welcome to post bug reports, feature
requests, comments and patches to git@vger.kernel.org (read
Documentation/SubmittingPatches for instructions on patch submission).
To subscribe to the list, send an email with just "subscribe git" in
the body to majordomo@vger.kernel.org. The mailing list archives are
available at http://news.gmane.org/gmane.comp.version-control.git/,
http://marc.info/?l=git and other archival sites.

The maintainer frequently sends the "What's cooking" reports that
list the current status of various development topics to the mailing
list.  The discussion following them give a good reference for
project status, development direction and remaining tasks.