A fork of Git containing Microsoft-specific patches.
Перейти к файлу
Johannes Schindelin 940ec350fa mingw: ensure that core.longPaths is handled *always*
A ton of Git commands simply do not read (or at least parse) the core.*
settings. This is not good, as Git for Windows relies on the
core.longPaths setting to be read quite early on.

So let's just make sure that all commands read the config and give
platform_core_config() a chance.

This patch teaches tons of Git commands to respect the config setting
`core.longPaths = true`, including `pack-refs`, thereby fixing
https://github.com/git-for-windows/git/issues/1218

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-15 08:35:17 +01:00
.github .github: Add configuration for the Sentiment Bot 2018-12-09 11:09:54 +01:00
Documentation Win32: support long paths 2018-12-15 08:35:11 +01:00
block-sha1
builtin mingw: ensure that core.longPaths is handled *always* 2018-12-15 08:35:17 +01:00
ci travis: fix skipping tagged releases 2018-12-15 08:34:58 +01:00
compat Win32: fix 'lstat("dir/")' with long paths 2018-12-15 08:35:11 +01:00
contrib vcxproj: also link-or-copy builtins 2018-12-15 08:35:09 +01:00
ewah
git-gui Merge branch 'git-gui-askyesno' 2018-12-09 11:07:32 +01:00
gitk-git gitk: make the "list references" default window width wider 2018-12-09 11:07:27 +01:00
gitweb
mergetools
negotiator
perl
po l10n: de.po: fix two messages 2018-12-07 19:43:07 +01:00
ppc
refs
sha1collisiondetection@232357eb2e
sha1dc
t Win32: support long paths 2018-12-15 08:35:11 +01:00
templates
vcs-svn
xdiff
.clang-format
.editorconfig
.gitattributes Mark .bat files as requiring CR/LF endings 2018-12-15 08:35:06 +01:00
.gitignore .gitignore: ignore Visual Studio's temporary/generated files 2018-12-15 08:35:09 +01:00
.gitmodules
.mailmap
.travis.yml
.tsan-suppressions
COPYING
GIT-VERSION-GEN Git 2.20.1 2018-12-15 12:31:34 +09:00
INSTALL
LGPL-2.1
Makefile bin-wrappers: append `.exe` to target paths if necessary 2018-12-15 08:35:09 +01:00
README.md README: add a build badge (status of the Azure Pipelines build) 2018-12-15 08:34:57 +01:00
RelNotes Git 2.20.1 2018-12-15 12:31:34 +09:00
abspath.c
aclocal.m4
advice.c
advice.h
alias.c
alias.h
alloc.c
alloc.h
apply.c
apply.h
archive-tar.c
archive-zip.c
archive.c
archive.h
argv-array.c
argv-array.h
attr.c
attr.h
azure-pipelines.yml Add a build definition for Azure DevOps 2018-12-15 08:32:49 +01:00
banned.h
base85.c
bisect.c
bisect.h
blame.c
blame.h
blob.c
blob.h
branch.c
branch.h
builtin.h stash: convert `stash--helper.c` into `stash.c` 2018-12-09 11:10:15 +01:00
bulk-checkin.c
bulk-checkin.h
bundle.c
bundle.h
cache-tree.c cache-tree.c: avoid reusing the DEBUG constant 2018-12-15 08:35:06 +01:00
cache-tree.h
cache.h sha1-name.c: add `get_oidf()` which acts like `get_oid()` 2018-12-09 11:10:00 +01:00
chdir-notify.c
chdir-notify.h
check-builtins.sh
check-racy.c
check_bindir
checkout.c
checkout.h
color.c
color.h
column.c
column.h
combine-diff.c
command-list.txt
commit-graph.c
commit-graph.h
commit-reach.c
commit-reach.h
commit-slab-decl.h
commit-slab-impl.h
commit-slab.h
commit.c
commit.h
common-main.c
config.c Windows: add support for a Windows-wide configuration 2018-12-09 11:08:42 +01:00
config.h
config.mak.dev
config.mak.in
config.mak.uname Win32: add a cache below mingw's lstat and dirent implementations 2018-12-15 08:35:11 +01:00
configure.ac
connect.c mingw: support UNC in git clone file://server/share/repo 2018-12-15 08:32:46 +01:00
connect.h
connected.c
connected.h
convert.c
convert.h
copy.c
credential-cache--daemon.c
credential-cache.c
credential-store.c mingw: ensure that core.longPaths is handled *always* 2018-12-15 08:35:17 +01:00
credential.c Do not mask the username when reading credentials 2018-12-15 08:32:45 +01:00
credential.h
csum-file.c
csum-file.h
ctype.c
daemon.c
date.c
decorate.c
decorate.h
delta-islands.c
delta-islands.h
delta.h
detect-compiler
diff-delta.c
diff-lib.c
diff-no-index.c
diff.c diff: munmap() file contents before running external diff 2018-12-09 11:08:15 +01:00
diff.h
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c diffcore-rename: speed up register_rename_src 2018-12-15 08:32:45 +01:00
diffcore.h
dir-iterator.c
dir-iterator.h
dir.c dir.c: regression fix for add_excludes with fscache 2018-12-09 11:08:55 +01:00
dir.h
editor.c
entry.c checkout.c: enable fscache for checkout again 2018-12-09 11:08:57 +01:00
environment.c
exec-cmd.c
exec-cmd.h
fast-import.c
fetch-negotiator.c
fetch-negotiator.h
fetch-object.c
fetch-object.h
fetch-pack.c fscache: fscache takes an initial size 2018-12-09 11:11:40 +01:00
fetch-pack.h
fmt-merge-msg.h
fsck.c
fsck.h
fsmonitor.c
fsmonitor.h
fuzz-pack-headers.c
fuzz-pack-idx.c
generate-cmdlist.sh
gettext.c gettext: always use UTF-8 on native Windows 2018-12-09 11:08:09 +01:00
gettext.h
git-add--interactive.perl Allow `add -p` and `add -i` with a large number of files 2018-12-09 11:08:43 +01:00
git-archimport.perl
git-bisect.sh
git-compat-util.h Win32: add a cache below mingw's lstat and dirent implementations 2018-12-15 08:35:11 +01:00
git-cvsexportcommit.perl cvsexportcommit: force crlf translation 2018-12-15 08:32:44 +01:00
git-cvsimport.perl
git-cvsserver.perl
git-difftool--helper.sh
git-filter-branch.sh
git-instaweb.sh
git-legacy-rebase.sh non-builtin rebase: use non-builtin interactive backend 2018-12-09 11:10:27 +01:00
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh
git-mergetool.sh
git-p4.py
git-parse-remote.sh
git-quiltimport.sh
git-rebase--am.sh
git-rebase--common.sh
git-rebase--merge.sh
git-rebase--preserve-merges.sh
git-remote-testgit.sh
git-request-pull.sh
git-send-email.perl
git-sh-i18n.sh
git-sh-setup.sh Merge 'builtin-stash-rebase-v3' 2018-12-09 11:11:34 +01:00
git-stash.sh stash: optionally use the scripted version again 2018-12-09 11:10:18 +01:00
git-submodule.sh
git-svn.perl
git-web--browse.sh
git.c git: avoid calling aliased builtins via their dashed form 2018-12-15 08:35:10 +01:00
git.rc mingw: Embed a manifest to trick UAC into Doing The Right Thing 2018-12-09 11:08:08 +01:00
gpg-interface.c Unbreak interactive GPG prompt upon signing 2018-12-09 11:08:13 +01:00
gpg-interface.h
graph.c
graph.h
grep.c
grep.h
hash.h
hashmap.c
hashmap.h
help.c help -a: handle aliases with long names gracefully 2018-12-12 17:18:38 +09:00
help.h help.h: fix coding style 2018-12-12 17:18:29 +09:00
hex.c
http-backend.c mingw: ensure that core.longPaths is handled *always* 2018-12-15 08:35:17 +01:00
http-fetch.c
http-push.c
http-walker.c
http.c http: add support selecting http version 2018-12-09 11:12:00 +01:00
http.h
ident.c
imap-send.c
interdiff.c
interdiff.h
iterator.h
json-writer.c
json-writer.h
khash.h
kwset.c
kwset.h
levenshtein.c
levenshtein.h
line-log.c
line-log.h
line-range.c
line-range.h
linear-assignment.c
linear-assignment.h
list-objects-filter-options.c
list-objects-filter-options.h
list-objects-filter.c
list-objects-filter.h
list-objects.c
list-objects.h
list.h
ll-merge.c
ll-merge.h
lockfile.c lockfile.c: use is_dir_sep() instead of hardcoded '/' checks 2018-12-09 11:08:22 +01:00
lockfile.h
log-tree.c
log-tree.h
ls-refs.c
ls-refs.h
mailinfo.c
mailinfo.h
mailmap.c
mailmap.h
match-trees.c
mem-pool.c mem_pool: add GIT_TRACE_MEMPOOL support 2018-12-09 11:11:40 +01:00
mem-pool.h
merge-blobs.c
merge-blobs.h
merge-recursive.c
merge-recursive.h
merge.c
mergesort.c
mergesort.h
midx.c
midx.h
name-hash.c
notes-cache.c
notes-cache.h
notes-merge.c
notes-merge.h
notes-utils.c
notes-utils.h
notes.c
notes.h
object-store.h
object.c
object.h
oidmap.c
oidmap.h
oidset.c
oidset.h
pack-bitmap-write.c
pack-bitmap.c
pack-bitmap.h
pack-check.c
pack-objects.c
pack-objects.h
pack-revindex.c
pack-revindex.h
pack-write.c
pack.h
packfile.c
packfile.h
pager.c
parse-options-cb.c
parse-options.c Merge branch 'nd/show-gitcomp-compilation-fix' into maint 2018-12-15 12:24:33 +09:00
parse-options.h Merge branch 'nd/show-gitcomp-compilation-fix' into maint 2018-12-15 12:24:33 +09:00
patch-delta.c
patch-ids.c
patch-ids.h
path.c mingw: handle absolute paths in expand_user_path() 2018-12-15 08:34:58 +01:00
path.h
pathspec.c
pathspec.h
pkt-line.c
pkt-line.h
preload-index.c add infrastructure for read-only file system level caches 2018-12-15 08:35:11 +01:00
pretty.c
pretty.h
prio-queue.c
prio-queue.h
progress.c
progress.h
prompt.c
prompt.h
protocol.c
protocol.h
quote.c
quote.h
range-diff.c
range-diff.h
reachable.c
reachable.h
read-cache.c fscache: fscache takes an initial size 2018-12-09 11:11:40 +01:00
rebase-interactive.c
rebase-interactive.h
ref-filter.c
ref-filter.h
reflog-walk.c
reflog-walk.h
refs.c mingw: ensure that core.longPaths is handled *always* 2018-12-15 08:35:17 +01:00
refs.h
refspec.c
refspec.h
remote-curl.c
remote-testsvn.c
remote.c
remote.h
replace-object.c
replace-object.h
repository.c
repository.h
rerere.c
rerere.h
resolve-undo.c
resolve-undo.h
revision.c
revision.h
run-command.c Merge branch 'jc/run-command-report-exec-failure-fix' into maint 2018-12-15 12:24:34 +09:00
run-command.h
send-pack.c Config option to disable side-band-64k for transport 2018-12-15 08:32:44 +01:00
send-pack.h
sequencer.c non-builtin rebase: use non-builtin interactive backend 2018-12-09 11:10:27 +01:00
sequencer.h non-builtin rebase: use non-builtin interactive backend 2018-12-09 11:10:27 +01:00
serve.c
serve.h
server-info.c
setup.c Merge 'case-insensitive-abspath' into HEAD 2018-12-15 08:35:01 +01:00
sh-i18n--envsubst.c
sha1-array.c
sha1-array.h
sha1-file.c
sha1-lookup.c
sha1-lookup.h
sha1-name.c sha1-name.c: add `get_oidf()` which acts like `get_oid()` 2018-12-09 11:10:00 +01:00
sha1dc_git.c
sha1dc_git.h
shallow.c
shell.c
shortlog.h
sideband.c
sideband.h
sigchain.c
sigchain.h
split-index.c
split-index.h
strbuf.c Merge 'builtin-stash-rebase-v3' 2018-12-09 11:11:34 +01:00
strbuf.h strbuf.c: add `strbuf_join_argv()` 2018-12-09 11:10:02 +01:00
streaming.c
streaming.h
string-list.c
string-list.h
sub-process.c
sub-process.h
submodule-config.c
submodule-config.h
submodule.c
submodule.h
symlinks.c
tag.c
tag.h
tar.h
tempfile.c
tempfile.h
thread-utils.c
thread-utils.h
tmp-objdir.c
tmp-objdir.h
trace.c
trace.h
trailer.c
trailer.h
transport-helper.c Always auto-gc after calling a fast-import transport 2018-12-15 08:32:44 +01:00
transport-internal.h
transport.c
transport.h
tree-diff.c
tree-walk.c
tree-walk.h
tree.c
tree.h
unicode-width.h
unimplemented.sh
unix-socket.c
unix-socket.h
unpack-trees.c
unpack-trees.h
upload-pack.c
upload-pack.h
url.c
url.h
urlmatch.c
urlmatch.h
usage.c
userdiff.c
userdiff.h
utf8.c
utf8.h
varint.c
varint.h
version.c
version.h
versioncmp.c
walker.c
walker.h
wildmatch.c
wildmatch.h
worktree.c
worktree.h
wrap-for-bin.sh
wrapper.c
write-or-die.c
ws.c
wt-status.c
wt-status.h
xdiff-interface.c
xdiff-interface.h
zlib.c

README.md

Build Status

Git - fast, scalable, distributed revision control system

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.

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

See Documentation/gittutorial.txt to get started, then see Documentation/giteveryday.txt for a useful minimum set of commands, and Documentation/git-.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).

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 https://public-inbox.org/git/, http://marc.info/?l=git and other archival sites.

Issues which are security relevant should be disclosed privately to the Git Security mailing list git-security@googlegroups.com.

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.

The name "git" was given by Linus Torvalds when he wrote the very first version. He described the tool as "the stupid content tracker" and the name as (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