Go to file
SZEDER Gábor 764473d257 compat/obstack: fix -Wcast-function-type warnings
GCC 8 introduced the new -Wcast-function-type warning, which is
implied by -Wextra (which, in turn is enabled in our DEVELOPER flags).
When building Git with GCC 8 and this warning enabled on a non-glibc
platform [1], one is greeted with a screenful of compiler
warnings/errors:

  compat/obstack.c: In function '_obstack_begin':
  compat/obstack.c:162:17: error: cast between incompatible function types from 'void * (*)(long int)' to 'struct _obstack_chunk * (*)(void *, long int)' [-Werror=cast-function-type]
     h->chunkfun = (struct _obstack_chunk * (*)(void *, long)) chunkfun;
                   ^
  compat/obstack.c:163:16: error: cast between incompatible function types from 'void (*)(void *)' to 'void (*)(void *, struct _obstack_chunk *)' [-Werror=cast-function-type]
     h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
                  ^
  compat/obstack.c:116:8: error: cast between incompatible function types from 'struct _obstack_chunk * (*)(void *, long int)' to 'struct _obstack_chunk * (*)(long int)' [-Werror=cast-function-type]
      : (*(struct _obstack_chunk *(*) (long)) (h)->chunkfun) ((size)))
          ^
  compat/obstack.c:168:22: note: in expansion of macro 'CALL_CHUNKFUN'
     chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size);
                        ^~~~~~~~~~~~~
  <snip>

'struct obstack' stores pointers to two functions to allocate and free
"chunks", and depending on how obstack is used, these functions take
either one parameter (like standard malloc() and free() do; this is
how we use it in 'kwset.c') or two parameters.  Presumably to reduce
memory footprint, a single field is used to store the function pointer
for both signatures, and then it's casted to the appropriate signature
when the function pointer is accessed.  These casts between function
pointers with different number of parameters are what trigger those
compiler errors.

Modify 'struct obstack' to use unions to store function pointers with
different signatures, and then use the union member with the
appropriate signature when accessing these function pointers.  This
eliminates the need for those casts, and thus avoids this compiler
error.

[1] Compiling 'compat/obstack.c' on a platform with glibc is sort of
    a noop, see the comment before '#  define ELIDE_CODE', so this is
    not an issue on common Linux distros.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-01-17 11:13:38 -08:00
.github
Documentation Git 2.18.1 2018-09-27 11:48:19 -07:00
block-sha1
builtin Sync with 2.17.2 2018-09-27 11:45:01 -07:00
ci Merge branch 'nd/travis-gcc-8' 2018-05-30 14:04:08 +09:00
compat compat/obstack: fix -Wcast-function-type warnings 2019-01-17 11:13:38 -08:00
contrib Merge branch 'ab/cred-netrc-no-autodie' 2018-06-18 10:18:42 -07:00
ewah ewah_read_mmap: bounds-check mmap reads 2018-06-18 09:13:57 -07:00
git-gui Merge branch 'cb/git-gui-ttk-style' 2018-04-25 13:28:49 +09:00
gitk-git
gitweb gitweb: hard-depend on the Digest::MD5 5.8 module 2018-03-05 10:52:27 -08:00
mergetools mergetools: add support for guiffy 2018-04-06 08:11:39 +09:00
perl Merge branch 'ab/git-svn-get-record-typofix' 2018-05-08 15:59:28 +09:00
po l10n: ko.po: Update Korean translation 2018-06-19 02:19:42 +09:00
ppc
refs Merge branch 'js/use-bug-macro' 2018-05-30 14:04:07 +09:00
sha1collisiondetection@19d97bf5af
sha1dc
t Sync with 2.17.2 2018-09-27 11:45:01 -07:00
templates Update shell scripts to compute empty tree object ID 2018-05-02 13:59:53 +09:00
vcs-svn Convert remaining die*(BUG) messages 2018-05-06 19:06:14 +09:00
xdiff
.clang-format
.gitattributes .gitattributes: add a diff driver for Python 2018-04-27 09:18:55 +09:00
.gitignore Merge branch 'nd/command-list' 2018-06-01 15:06:37 +09:00
.gitmodules
.mailmap mailmap: update brian m. carlson's email address 2018-05-08 12:21:10 +09:00
.travis.yml travis-ci: run gcc-8 on linux-gcc jobs 2018-05-21 14:14:09 +09:00
.tsan-suppressions
COPYING
GIT-VERSION-GEN Git 2.18.1 2018-09-27 11:48:19 -07:00
INSTALL RelNotes: add details on Perl module changes 2018-03-16 16:07:37 -07:00
LGPL-2.1
Makefile Merge branch 'es/make-no-iconv' 2018-06-18 11:23:24 -07:00
README.md note git-security@googlegroups.com in more places 2018-06-01 09:24:11 +09:00
RelNotes Git 2.18.1 2018-09-27 11:48:19 -07:00
abspath.c
aclocal.m4
advice.c Merge branch 'js/deprecate-grafts' 2018-05-23 14:38:17 +09:00
advice.h Deprecate support for .git/info/grafts 2018-04-30 11:12:31 +09:00
alias.c completion: add and use --list-cmds=alias 2018-05-21 13:23:14 +09:00
alias.h completion: add and use --list-cmds=alias 2018-05-21 13:23:14 +09:00
alloc.c commit: integrate commit graph with commit parsing 2018-04-11 10:43:02 +09:00
apply.c Merge branch 'js/use-bug-macro' 2018-05-30 14:04:07 +09:00
apply.h
archive-tar.c Merge branch 'js/use-bug-macro' 2018-05-30 14:04:07 +09:00
archive-zip.c cache.h: add repository argument to oid_object_info 2018-04-26 10:54:27 +09:00
archive.c Use OPT_SET_INT_F() for cmdline option specification 2018-05-24 16:12:29 +09:00
archive.h archive: convert sha1_file_to_archive to struct object_id 2018-03-14 09:23:48 -07:00
argv-array.c Merge branch 'ma/unpack-trees-free-msgs' 2018-05-30 21:51:29 +09:00
argv-array.h Merge branch 'ma/unpack-trees-free-msgs' 2018-05-30 21:51:29 +09:00
attr.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
attr.h
base85.c
bisect.c Merge branch 'ys/bisect-object-id-missing-conversion-fix' 2018-04-10 16:28:24 +09:00
bisect.h
blame.c Merge branch 'js/use-bug-macro' 2018-05-30 14:04:07 +09:00
blame.h
blob.c
blob.h
branch.c refspec: rename struct refspec to struct refspec_item 2018-05-18 06:19:41 +09:00
branch.h
builtin.h Merge branch 'ds/commit-graph' 2018-05-08 15:59:20 +09:00
bulk-checkin.c Merge branch 'js/use-bug-macro' 2018-05-30 14:04:07 +09:00
bulk-checkin.h bulk-checkin: convert index_bulk_checkin to struct object_id 2018-03-14 09:23:47 -07:00
bundle.c Merge branch 'ma/lockfile-cleanup' 2018-05-30 14:04:05 +09:00
bundle.h
cache-tree.c cache-tree: use is_empty_tree_oid 2018-05-02 13:59:52 +09:00
cache-tree.h cache-tree: convert write_*_as_tree to object_id 2018-03-14 09:23:47 -07:00
cache.h Merge branch 'nd/command-list' 2018-06-01 15:06:37 +09:00
chdir-notify.c add chdir-notify API 2018-03-30 12:49:57 -07:00
chdir-notify.h add chdir-notify API 2018-03-30 12:49:57 -07:00
check-builtins.sh
check-racy.c
check_bindir
checkout.c refspec: rename struct refspec to struct refspec_item 2018-05-18 06:19:41 +09:00
checkout.h
color.c Merge branch 'js/use-bug-macro' 2018-05-30 14:04:07 +09:00
color.h color: introduce support for colorizing stderr 2018-04-24 10:38:47 +09:00
column.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
column.h
combine-diff.c Merge branch 'bw/c-plus-plus' into ds/lazy-load-trees 2018-04-11 10:46:32 +09:00
command-list.txt Merge branch 'nd/command-list' 2018-06-01 15:06:37 +09:00
commit-graph.c Merge branch 'sb/oid-object-info' 2018-05-23 14:38:16 +09:00
commit-graph.h commit-graph: lazy-load trees for commits 2018-04-11 10:47:16 +09:00
commit-slab.h
commit.c Merge branch 'jk/index-pack-maint' 2018-06-13 12:50:46 -07:00
commit.h Merge branch 'nd/pack-struct-commit' 2018-05-30 14:04:08 +09:00
common-main.c Merge branch 'dj/runtime-prefix' 2018-05-08 15:59:17 +09:00
config.c Merge branch 'ma/config-store-data-clear' 2018-05-30 21:51:28 +09:00
config.h Merge branch 'tb/config-default' 2018-05-08 15:59:27 +09:00
config.mak.dev Makefile: add a DEVOPTS to get all of -Wextra 2018-04-16 13:54:53 +09:00
config.mak.in
config.mak.uname Merge branch 'nd/repack-keep-pack' 2018-05-23 14:38:14 +09:00
configure.ac Merge branch 'es/fread-reads-dir-autoconf-fix' 2018-04-25 13:29:01 +09:00
connect.c Merge branch 'nd/command-list' 2018-06-01 15:06:37 +09:00
connect.h fetch-pack: support shallow requests 2018-03-15 12:01:09 -07:00
connected.c
connected.h
convert.c Merge branch 'ls/checkout-encoding' 2018-05-08 15:59:22 +09:00
convert.h Merge branch 'ls/checkout-encoding' 2018-05-08 15:59:22 +09:00
copy.c
credential-cache--daemon.c
credential-cache.c
credential-store.c
credential.c credential: ignore SIGPIPE when writing to credential helpers 2018-03-29 15:33:55 -07:00
credential.h
csum-file.c csum-file: refactor finalize_hashfile() method 2018-04-02 14:27:30 -07:00
csum-file.h csum-file: refactor finalize_hashfile() method 2018-04-02 14:27:30 -07:00
ctype.c
daemon.c Merge branch 'lw/daemon-log-destination' 2018-04-25 13:28:58 +09:00
date.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
decorate.c
decorate.h
delta.h
detect-compiler Makefile: detect compiler and enable more warnings in DEVELOPER=1 2018-04-16 13:54:53 +09:00
diff-delta.c
diff-lib.c Merge branch 'bw/c-plus-plus' into ds/lazy-load-trees 2018-04-11 10:46:32 +09:00
diff-no-index.c
diff.c Merge branch 'bc/object-id' 2018-05-30 14:04:10 +09:00
diff.h add status config and command line options for rename detection 2018-05-13 10:57:37 +09:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c regex: do not call `regfree()` if compilation fails 2018-05-21 13:58:32 +09:00
diffcore-rename.c
diffcore.h
dir-iterator.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
dir-iterator.h
dir.c Merge branch 'jk/ewah-bounds-check' 2018-06-18 11:23:22 -07:00
dir.h Merge branch 'bc/object-id' 2018-05-30 14:04:10 +09:00
editor.c
entry.c convert: convert to struct object_id 2018-03-14 09:23:50 -07:00
environment.c Merge branch 'ls/checkout-encoding' 2018-05-08 15:59:22 +09:00
exec-cmd.c Merge branch 'js/runtime-prefix' 2018-05-08 15:59:34 +09:00
exec-cmd.h Merge branch 'dj/runtime-prefix' 2018-05-08 15:59:17 +09:00
fast-import.c Merge branch 'ma/lockfile-cleanup' 2018-05-30 14:04:05 +09:00
fetch-object.c
fetch-object.h
fetch-pack.c Merge branch 'jt/partial-clone-proto-v2' 2018-05-30 14:04:10 +09:00
fetch-pack.h Merge branch 'bw/protocol-v2' 2018-05-08 15:59:16 +09:00
fmt-merge-msg.h
fsck.c Sync with 2.17.2 2018-09-27 11:45:01 -07:00
fsck.h fsck: detect gitmodules files 2018-05-21 23:55:12 -04:00
fsmonitor.c Merge branch 'jk/snprintf-truncation' 2018-05-30 21:51:28 +09:00
fsmonitor.h
generate-cmdlist.sh git: support --list-cmds=list-<category> 2018-05-21 13:23:14 +09:00
gettext.c Merge branch 'js/runtime-prefix' 2018-05-08 15:59:34 +09:00
gettext.h
git-add--interactive.perl add--interactive: compute the empty tree value 2018-05-02 13:59:53 +09:00
git-archimport.perl
git-bisect.sh
git-compat-util.h Merge branch 'js/use-bug-macro' 2018-05-30 14:04:07 +09:00
git-cvsexportcommit.perl
git-cvsimport.perl
git-cvsserver.perl
git-difftool--helper.sh
git-filter-branch.sh Update shell scripts to compute empty tree object ID 2018-05-02 13:59:53 +09:00
git-instaweb.sh
git-merge-octopus.sh
git-merge-one-file.sh merge-one-file: compute empty blob object ID 2018-05-02 13:59:53 +09:00
git-merge-resolve.sh
git-mergetool--lib.sh
git-mergetool.sh
git-p4.py Merge branch 'ld/git-p4-updates' 2018-06-18 10:18:41 -07:00
git-parse-remote.sh
git-quiltimport.sh
git-rebase--am.sh Merge branch 'pw/rebase-signoff' 2018-04-25 13:28:51 +09:00
git-rebase--interactive.sh Merge branch 'js/rebase-recreate-merge' 2018-06-01 15:06:40 +09:00
git-rebase--merge.sh Merge branch 'pw/rebase-signoff' 2018-04-25 13:28:51 +09:00
git-rebase.sh rebase -i: introduce --rebase-merges=[no-]rebase-cousins 2018-04-26 12:28:43 +09:00
git-remote-testgit.sh
git-request-pull.sh
git-send-email.perl Merge branch 'dd/send-email-reedit' 2018-05-30 14:04:03 +09:00
git-sh-i18n.sh
git-sh-setup.sh
git-stash.sh Merge branch 'tg/stash-untracked-with-pathspec-fix' 2018-04-10 08:25:45 +09:00
git-submodule.sh Merge branch 'sb/submodule-update-try-harder' 2018-05-30 14:04:12 +09:00
git-svn.perl git-svn: search --authors-prog in PATH too 2018-04-05 06:55:02 +00:00
git-web--browse.sh
git.c Merge branch 'nd/command-list' 2018-06-01 15:06:37 +09:00
git.rc
gpg-interface.c gpg-interface: find the last gpg signature line 2018-04-16 14:15:03 +09:00
gpg-interface.h gpg-interface: use size_t for signature buffer size 2018-04-16 14:15:03 +09:00
graph.c
graph.h
grep.c Merge branch 'ma/regex-no-regfree-after-comp-fail' 2018-05-30 21:51:28 +09:00
grep.h
hash.h
hashmap.c
hashmap.h Merge branch 'rb/hashmap-h-compilation-fix' into maint 2018-03-22 14:24:15 -07:00
help.c Merge branch 'nd/command-list' 2018-06-01 15:06:37 +09:00
help.h completion: allow to customize the completable command list 2018-05-21 13:23:14 +09:00
hex.c
http-backend.c Merge branch 'bw/protocol-v2' 2018-05-08 15:59:16 +09:00
http-fetch.c Merge branch 'ma/http-walker-no-partial' 2018-05-08 15:59:35 +09:00
http-push.c Merge branch 'bw/ref-prefix-for-configured-refspec' 2018-05-30 21:51:26 +09:00
http-walker.c Merge branch 'sb/object-store' 2018-04-11 13:09:55 +09:00
http.c Merge branch 'bw/remote-curl-compressed-responses' 2018-05-30 21:51:29 +09:00
http.h Merge branch 'jk/snprintf-truncation' 2018-05-30 21:51:28 +09:00
ident.c
imap-send.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
iterator.h
khash.h
kwset.c
kwset.h
levenshtein.c
levenshtein.h
line-log.c Merge branch 'ds/lazy-load-trees' 2018-05-23 14:38:13 +09:00
line-log.h
line-range.c
line-range.h
list-objects-filter-options.c
list-objects-filter-options.h
list-objects-filter.c Merge branch 'sb/oid-object-info' 2018-05-23 14:38:16 +09:00
list-objects-filter.h
list-objects.c treewide: replace maybe_tree with accessor methods 2018-04-11 10:47:16 +09:00
list-objects.h
list.h
ll-merge.c
ll-merge.h
lockfile.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
lockfile.h
log-tree.c Merge branch 'jk/snprintf-truncation' 2018-05-30 21:51:28 +09:00
log-tree.h format-patch: make cover letters always text/plain 2018-05-02 12:55:00 +09:00
ls-refs.c ls-refs: introduce ls-refs server command 2018-03-15 12:01:08 -07:00
ls-refs.h ls-refs: introduce ls-refs server command 2018-03-15 12:01:08 -07:00
mailinfo.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
mailinfo.h
mailmap.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
mailmap.h
match-trees.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
mem-pool.c mem-pool: move reusable parts of memory pool into its own file 2018-04-12 11:55:20 +09:00
mem-pool.h mem-pool: move reusable parts of memory pool into its own file 2018-04-12 11:55:20 +09:00
merge-blobs.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
merge-blobs.h
merge-recursive.c Merge branch 'en/rename-directory-detection' 2018-06-18 10:18:44 -07:00
merge-recursive.h merge: add merge.renames config setting 2018-05-08 16:19:41 +09:00
merge.c Merge branch 'ma/unpack-trees-free-msgs' 2018-05-30 21:51:29 +09:00
mergesort.c
mergesort.h
name-hash.c
notes-cache.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
notes-cache.h
notes-merge.c Merge branch 'js/use-bug-macro' 2018-05-30 14:04:07 +09:00
notes-merge.h
notes-utils.c
notes-utils.h
notes.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
notes.h
object-store.h Merge branch 'nd/pack-objects-pack-struct' 2018-05-23 14:38:19 +09:00
object.c Merge branch 'sb/oid-object-info' 2018-05-23 14:38:16 +09:00
object.h Merge branch 'nd/pack-objects-pack-struct' 2018-05-23 14:38:19 +09:00
oidmap.c
oidmap.h
oidset.c
oidset.h
pack-bitmap-write.c Merge branch 'js/use-bug-macro' 2018-05-30 14:04:07 +09:00
pack-bitmap.c Merge branch 'jk/ewah-bounds-check' 2018-06-18 11:23:22 -07:00
pack-bitmap.h pack-objects: move in_pack_pos out of struct object_entry 2018-04-16 12:38:58 +09:00
pack-check.c packfile: add repository argument to unpack_entry 2018-04-26 10:54:27 +09:00
pack-objects.c Merge branch 'js/use-bug-macro' 2018-05-30 14:04:07 +09:00
pack-objects.h Merge branch 'nd/pack-objects-pack-struct' 2018-05-23 14:38:19 +09:00
pack-revindex.c object-store: move packed_git and packed_git_mru to object store 2018-03-26 10:05:46 -07:00
pack-revindex.h
pack-write.c csum-file: refactor finalize_hashfile() method 2018-04-02 14:27:30 -07:00
pack.h
packfile.c Merge branch 'jl/zlib-restore-nul-termination' 2018-06-18 10:18:43 -07:00
packfile.h Merge branch 'bc/object-id' 2018-05-30 14:04:10 +09:00
pager.c Merge branch 'nd/command-list' 2018-06-01 15:06:37 +09:00
parse-options-cb.c parseopt: handle malformed --expire arguments more nicely 2018-04-23 22:36:59 +09:00
parse-options.c Merge branch 'ps/contains-id-error-message' 2018-04-10 16:28:20 +09:00
parse-options.h Merge branch 'ps/contains-id-error-message' 2018-04-10 16:28:20 +09:00
patch-delta.c
patch-ids.c
patch-ids.h
path.c Sync with Git 2.17.1 2018-05-29 17:10:05 +09:00
path.h
pathspec.c Convert remaining die*(BUG) messages 2018-05-06 19:06:14 +09:00
pathspec.h
pkt-line.c Merge branch 'js/use-bug-macro' 2018-05-30 14:04:07 +09:00
pkt-line.h pkt-line: add packet_buf_write_len function 2018-03-15 12:01:09 -07:00
preload-index.c
pretty.c Merge branch 'ds/lazy-load-trees' 2018-05-23 14:38:13 +09:00
pretty.h
prio-queue.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
prio-queue.h
progress.c
progress.h
prompt.c
prompt.h
protocol.c protocol: introduce enum protocol_version value protocol_v2 2018-03-14 14:15:07 -07:00
protocol.h protocol: introduce enum protocol_version value protocol_v2 2018-03-14 14:15:07 -07:00
quote.c Merge branch 'jk/sq-dequote-on-bogus-input' 2018-02-27 10:34:02 -08:00
quote.h
reachable.c cache.h: add repository argument to oid_object_info 2018-04-26 10:54:27 +09:00
reachable.h
read-cache.c Merge branch 'bc/object-id' 2018-05-30 14:04:10 +09:00
ref-filter.c Merge branch 'js/use-bug-macro' 2018-05-30 14:04:07 +09:00
ref-filter.h Merge branch 'ot/libify-get-ref-atom-value' 2018-05-08 15:59:18 +09:00
reflog-walk.c
reflog-walk.h
refs.c Merge branch 'jk/snprintf-truncation' 2018-05-30 21:51:28 +09:00
refs.h Merge branch 'sb/object-store-replace' 2018-05-08 15:59:21 +09:00
refspec.c Merge branch 'bw/refspec-api' 2018-06-04 21:39:50 +09:00
refspec.h fetch: do not pass ref-prefixes for fetch by exact SHA1 2018-06-01 15:15:22 +09:00
remote-curl.c remote-curl: accept compressed responses with protocol v2 2018-05-23 10:24:13 +09:00
remote-testsvn.c exec_cmd: rename to use dash in file name 2018-04-11 18:11:00 +09:00
remote.c Merge branch 'bw/ref-prefix-for-configured-refspec' 2018-05-30 21:51:26 +09:00
remote.h Merge branch 'bw/ref-prefix-for-configured-refspec' 2018-05-30 21:51:26 +09:00
replace-object.c Merge branch 'sb/object-store-replace' 2018-05-23 14:38:09 +09:00
replace-object.h replace-object: allow lookup_replace_object to handle arbitrary repositories 2018-04-12 11:38:57 +09:00
repository.c Merge branch 'nd/repo-clear-keep-the-index' 2018-05-30 14:04:05 +09:00
repository.h Merge branch 'sb/object-store-replace' 2018-05-08 15:59:21 +09:00
rerere.c Merge branch 'ma/lockfile-cleanup' 2018-05-30 14:04:05 +09:00
rerere.h completion: don't set PARSE_OPT_NOCOMPLETE on --rerere-autoupdate 2018-03-07 11:02:48 -08:00
resolve-undo.c cache: add a function to read an object ID from a buffer 2018-05-02 13:59:48 +09:00
resolve-undo.h resolve-undo: convert struct resolve_undo_info to object_id 2018-03-14 09:23:47 -07:00
revision.c Merge branch 'bc/object-id' 2018-05-30 14:04:10 +09:00
revision.h Merge branch 'jk/cached-commit-buffer' into HEAD 2018-03-13 13:35:25 -07:00
run-command.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
run-command.h
send-pack.c send-pack: convert remaining functions to struct object_id 2018-03-14 09:23:48 -07:00
send-pack.h
sequencer.c Merge branch 'js/rebase-i-root-fix' 2018-06-18 11:23:22 -07:00
sequencer.h Merge branch 'js/sequencer-and-root-commits' 2018-05-30 14:04:04 +09:00
serve.c serve: introduce the server-option capability 2018-04-24 11:24:40 +09:00
serve.h serve: introduce git-serve 2018-03-15 12:01:08 -07:00
server-info.c server-info: remove unused members from struct pack_info 2018-05-02 13:59:48 +09:00
setup.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
sh-i18n--envsubst.c
sha1-array.c get_short_oid: sort ambiguous objects by type, then SHA-1 2018-05-11 14:43:23 +09:00
sha1-array.h get_short_oid: sort ambiguous objects by type, then SHA-1 2018-05-11 14:43:23 +09:00
sha1-file.c Merge branch 'rd/comment-typofix-in-sha1-file' 2018-06-18 10:18:40 -07:00
sha1-lookup.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
sha1-lookup.h
sha1-name.c Merge branch 'ab/get-short-oid' 2018-05-30 14:04:11 +09:00
sha1dc_git.c
sha1dc_git.h
shallow.c Merge branch 'js/use-bug-macro' 2018-05-30 14:04:07 +09:00
shell.c Merge branch 'nd/command-list' 2018-06-01 15:06:37 +09:00
shortlog.h
show-index.c
sideband.c Avoid multiple PREFIX definitions 2018-04-24 11:12:32 +09:00
sideband.h
sigchain.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
sigchain.h
split-index.c split-index: convert struct split_index to object_id 2018-05-02 13:59:50 +09:00
split-index.h split-index: convert struct split_index to object_id 2018-05-02 13:59:50 +09:00
strbuf.c Merge branch 'js/use-bug-macro' 2018-05-30 14:04:07 +09:00
strbuf.h Merge branch 'en/rename-directory-detection-reboot' 2018-05-23 14:38:19 +09:00
streaming.c cache.h: add repository argument to oid_object_info_extended 2018-04-26 10:54:27 +09:00
streaming.h streaming: convert open_istream to use struct object_id 2018-03-14 09:23:49 -07:00
string-list.c
string-list.h
sub-process.c
sub-process.h
submodule-config.c Sync with 2.17.2 2018-09-27 11:45:01 -07:00
submodule-config.h Merge branch 'bc/object-id' 2018-05-30 14:04:10 +09:00
submodule.c Merge branch 'jt/submodule-pull-recurse-rebase' 2018-06-04 21:39:48 +09:00
submodule.h Merge branch 'jt/submodule-pull-recurse-rebase' 2018-06-04 21:39:48 +09:00
symlinks.c
tag.c cache.h: add repository argument to oid_object_info 2018-04-26 10:54:27 +09:00
tag.h
tar.h
tempfile.c
tempfile.h
thread-utils.c
thread-utils.h
tmp-objdir.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
tmp-objdir.h
trace.c trace.c: export trace_setup_key 2018-03-30 12:49:57 -07:00
trace.h trace.c: export trace_setup_key 2018-03-30 12:49:57 -07:00
trailer.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
trailer.h
transport-helper.c remote: convert apply_refspecs to take a struct refspec 2018-05-18 06:19:43 +09:00
transport-internal.h transport: convert get_refs_list to take a list of ref prefixes 2018-03-15 12:01:08 -07:00
transport.c Merge branch 'bw/ref-prefix-for-configured-refspec' 2018-05-30 21:51:26 +09:00
transport.h Merge branch 'bw/ref-prefix-for-configured-refspec' 2018-05-30 21:51:26 +09:00
tree-diff.c
tree-walk.c tree-walk: convert get_tree_entry_follow_symlinks to object_id 2018-05-02 13:59:50 +09:00
tree-walk.h tree-walk: convert get_tree_entry_follow_symlinks to object_id 2018-05-02 13:59:50 +09:00
tree.c Merge branch 'ds/lazy-load-trees' 2018-05-23 14:38:13 +09:00
tree.h tree: convert read_tree_recursive to struct object_id 2018-03-14 09:23:47 -07:00
unicode-width.h unicode_width.h: rename to use dash in file name 2018-04-11 18:11:00 +09:00
unimplemented.sh
unix-socket.c
unix-socket.h
unpack-trees.c Merge branch 'ma/unpack-trees-free-msgs' 2018-05-30 21:51:29 +09:00
unpack-trees.h unpack_trees_options: free messages when done 2018-05-22 11:59:31 +09:00
upload-pack.c Merge branch 'jt/partial-clone-proto-v2' 2018-05-30 14:04:10 +09:00
upload-pack.h fetch-pack: perform a fetch using v2 2018-03-15 12:01:08 -07:00
url.c
url.h
urlmatch.c
urlmatch.h
usage.c Merge branch 'jk/snprintf-truncation' 2018-05-30 21:51:28 +09:00
userdiff.c Merge branch 'tl/userdiff-csharp-async' 2018-03-15 15:00:47 -07:00
userdiff.h
utf8.c Sync with Git 2.17.1 2018-05-29 17:10:05 +09:00
utf8.h Sync with Git 2.17.1 2018-05-29 17:10:05 +09:00
varint.c
varint.h
version.c
version.h
versioncmp.c
walker.c Merge branch 'ds/lazy-load-trees' 2018-05-23 14:38:13 +09:00
walker.h walker: drop fields of `struct walker` which are always 1 2018-04-24 10:55:04 +09:00
wildmatch.c
wildmatch.h
worktree.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
worktree.h
wrap-for-bin.sh Make running git under other debugger-like programs easy 2018-04-25 10:47:22 +09:00
wrapper.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
write-or-die.c write_or_die.c: rename to use dashes in file name 2018-04-11 18:11:00 +09:00
ws.c
wt-status.c Merge branch 'bc/object-id' 2018-05-30 14:04:10 +09:00
wt-status.h add status config and command line options for rename detection 2018-05-13 10:57:37 +09:00
xdiff-interface.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
xdiff-interface.h
zlib.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00

README.md

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