Git with broken hash generation to generate collisions between object IDs. Don't use this! https://undefinedbehavior.de/posts/commit-vandalism/
Go to file
Johannes Schindelin 0d00da7bb3 sequencer: lib'ify read_populate_opts()
Instead of dying there, let the caller high up in the callchain notice
the error and handle it (by dying, still).

The only caller of read_populate_opts(), sequencer_continue() can
already return errors, so its caller must be already prepared to
handle error returns, and with this step, we make it notice an error
return from this function.

So this is a safe conversion to make read_populate_opts() callable
from new callers that want it not to die, without changing the
external behaviour of anything existing.

Note that the function git_config_from_file(), called from
read_populate_opts(), can currently still die() (in git_parse_source(),
because the do_config_from_file() function sets die_on_error = 1). We do
not try to fix that here, as it would have larger ramifications on the
config code, and we also assume that we write the opts file
programmatically, hence any parse errors would be bugs.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-09-09 11:24:52 -07:00
block-sha1
builtin Merge branch 'js/no-html-bypass-on-windows' 2016-08-25 13:55:06 -07:00
ci
compat Merge branch 'bw/mingw-avoid-inheriting-fd-to-lockfile' 2016-08-25 13:55:07 -07:00
contrib git-multimail: update to release 1.4.0 2016-08-17 11:36:08 -07:00
Documentation Git 2.10-rc2 2016-08-26 13:59:20 -07:00
ewah
git-gui
gitk-git
gitweb gitweb: escape link body in format_ref_marker 2016-08-01 12:55:40 -07:00
mergetools
perl
po
ppc
refs Merge branch 'mh/ref-iterators' 2016-07-25 14:13:33 -07:00
t Merge branch 'bw/mingw-avoid-inheriting-fd-to-lockfile' 2016-08-25 13:55:07 -07:00
templates push options: {pre,post}-receive hook learns about push options 2016-07-14 15:50:17 -07:00
vcs-svn
xdiff Merge branch 'js/ignore-space-at-eol' into maint 2016-08-08 14:21:35 -07:00
.gitattributes
.gitignore
.mailmap .mailmap: use Christian Couder's Tuxfamily address 2016-08-08 15:17:24 -07:00
.travis.yml Merge branch 'ls/travis-enable-httpd-tests' into maint 2016-08-10 11:55:23 -07:00
abspath.c
aclocal.m4
advice.c
advice.h
alias.c
alloc.c
archive-tar.c Merge branch 'jk/big-and-future-archive-tar' 2016-08-12 09:47:37 -07:00
archive-zip.c
archive.c i18n: archive: mark errors for translation 2016-08-09 12:44:59 -07:00
archive.h
argv-array.c
argv-array.h
attr.c
attr.h
base85.c
bisect.c Merge branch 'jk/printf-format' 2016-07-19 13:22:22 -07:00
bisect.h
blob.c
blob.h Replace parse_blob() with an explanatory comment 2010-01-18 17:04:02 -08:00
branch.c
branch.h worktree.c: check whether branch is rebased in another worktree 2016-04-22 14:09:38 -07:00
builtin.h
bulk-checkin.c
bulk-checkin.h
bundle.c
bundle.h
cache-tree.c cache-tree: do not generate empty trees as a result of all i-t-a subentries 2016-07-18 13:45:33 -07:00
cache-tree.h
cache.h Merge branch 'jk/trace-fixup' 2016-08-12 09:47:36 -07:00
check_bindir
check-builtins.sh
check-racy.c
color.c
color.h Merge branch 'js/color-on-windows-comment' 2016-07-11 10:31:09 -07:00
column.c
column.h
combine-diff.c Merge branch 'bc/cocci' 2016-07-19 13:22:16 -07:00
command-list.txt
commit-slab.h Merge branch 'vs/typofix' 2016-08-12 09:47:37 -07:00
commit.c Merge branch 'rs/pull-signed-tag' 2016-08-19 15:34:14 -07:00
commit.h Merge branch 'rs/pull-signed-tag' 2016-08-19 15:34:14 -07:00
common-main.c
config.c i18n: simplify numeric error reporting 2016-08-24 08:47:20 -07:00
config.mak.in
config.mak.uname Merge branch 'ew/build-time-pager-tweaks' 2016-08-08 14:48:44 -07:00
configure.ac Merge branch 'ew/autoconf-pthread' into maint 2016-08-10 11:55:21 -07:00
connect.c
connect.h
connected.c check_connected: add progress flag 2016-07-20 12:11:09 -07:00
connected.h check_connected: add progress flag 2016-07-20 12:11:09 -07:00
convert.c convert: Correct NNO tests and missing LF will be replaced by CRLF 2016-08-14 13:45:52 -07:00
convert.h
copy.c
COPYING
credential-cache--daemon.c
credential-cache.c
credential-store.c
credential.c
credential.h
csum-file.c
csum-file.h
ctype.c
daemon.c Merge branch 'ew/daemon-socket-keepalive' 2016-07-28 10:34:43 -07:00
date.c date: add "unix" format 2016-07-27 14:15:51 -07:00
decorate.c
decorate.h
delta.h
diff-delta.c
diff-lib.c
diff-no-index.c
diff.c Merge branch 'kw/patch-ids-optim' 2016-08-12 09:47:39 -07:00
diff.h patch-ids: add flag to create the diff patch id using header only data 2016-07-29 14:10:01 -07:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c pass constants as first argument to st_mult() 2016-08-01 14:01:03 -07:00
diffcore.h
dir-iterator.c
dir-iterator.h
dir.c Merge branch 'rs/use-strbuf-addbuf' into maint 2016-08-08 14:21:42 -07:00
dir.h Merge branch 'mh/split-under-lock' 2016-07-25 14:13:32 -07:00
editor.c
entry.c
environment.c
exec_cmd.c
exec_cmd.h
fast-import.c Merge branch 'jk/common-main' 2016-07-19 13:22:19 -07:00
fetch-pack.c fetch-pack: grow stateless RPC windows exponentially 2016-07-19 13:27:22 -07:00
fetch-pack.h
fmt-merge-msg.h
fsck.c fsck: optionally show more helpful info for broken links 2016-07-18 15:15:59 -07:00
fsck.h fsck: give the error function a chance to see the fsck_options 2016-07-18 11:35:00 -07:00
generate-cmdlist.sh
gettext.c
gettext.h
git-add--interactive.perl
git-archimport.perl
git-bisect.sh
git-compat-util.h Merge branch 'bw/mingw-avoid-inheriting-fd-to-lockfile' 2016-08-25 13:55:07 -07:00
git-cvsexportcommit.perl
git-cvsimport.perl
git-cvsserver.perl
git-difftool--helper.sh difftool: always honor fatal error exit codes 2016-08-15 15:24:05 -07:00
git-difftool.perl difftool: use Git::* functions instead of passing around state 2016-07-28 14:01:55 -07:00
git-filter-branch.sh
git-instaweb.sh
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh
git-mergetool.sh Merge branch 'nf/mergetool-prompt' 2016-05-03 14:08:17 -07:00
git-p4.py Spelling fixes 2016-08-11 14:35:42 -07:00
git-parse-remote.sh
git-quiltimport.sh
git-rebase--am.sh
git-rebase--interactive.sh i18n: fix git rebase interactive commit messages 2016-08-24 08:43:27 -07:00
git-rebase--merge.sh
git-rebase.sh
git-relink.perl
git-remote-testgit.sh
git-request-pull.sh
git-send-email.perl
git-sh-i18n.sh
git-sh-setup.sh Merge branch 'ew/build-time-pager-tweaks' 2016-08-08 14:48:44 -07:00
git-stash.sh i18n: git-stash: mark messages for translation 2016-08-10 10:50:18 -07:00
git-submodule.sh Merge branch 'sb/submodule-update-dot-branch' 2016-08-10 12:33:20 -07:00
git-svn.perl git-svn: allow --version to work anywhere 2016-07-22 20:38:11 +00:00
GIT-VERSION-GEN Git 2.10-rc2 2016-08-26 13:59:20 -07:00
git-web--browse.sh
git.c
git.rc
gpg-interface.c Merge branch 'lt/gpg-show-long-key-in-signature-verification-maint' into lt/gpg-show-long-key-in-signature-verification 2016-08-16 15:04:13 -07:00
gpg-interface.h
graph.c Merge branch 'js/log-to-diffopt-file' 2016-07-19 13:22:15 -07:00
graph.h
grep.c Merge branch 'js/am-3-merge-recursive-direct' 2016-08-10 12:33:20 -07:00
grep.h Merge branch 'jc/grep-commandline-vs-configuration' into maint 2016-08-10 11:55:29 -07:00
hashmap.c
hashmap.h
help.c t0006: skip "far in the future" test when unsigned long is not long enough 2016-07-15 09:05:53 -07:00
help.h
hex.c hex: add oid_to_hex_r() 2016-06-28 11:39:02 -07:00
http-backend.c Merge branch 'ew/http-backend-batch-headers' 2016-08-12 09:47:38 -07:00
http-fetch.c
http-push.c Merge branch 'rs/use-strbuf-addstr' 2016-08-08 14:48:41 -07:00
http-walker.c
http.c Merge branch 'rs/use-strbuf-addstr' 2016-08-08 14:48:41 -07:00
http.h
ident.c Merge branch 'jk/reset-ident-time-per-commit' into maint 2016-08-12 09:16:56 -07:00
imap-send.c die("bug"): report bugs consistently 2016-07-26 11:13:44 -07:00
INSTALL
iterator.h
khash.h
kwset.c
kwset.h
levenshtein.c
levenshtein.h
LGPL-2.1
line-log.c Merge branch 'bc/cocci' 2016-07-19 13:22:16 -07:00
line-log.h
line-range.c
line-range.h
list-objects.c
list-objects.h
list.h list: avoid incompatibility with *BSD sys/queue.h 2016-07-18 11:06:51 -07:00
ll-merge.c
ll-merge.h
lockfile.c
lockfile.h mingw: ensure temporary file handles are not inherited by child processes 2016-08-23 09:09:55 -07:00
log-tree.c Merge branch 'nd/log-decorate-color-head-arrow' 2016-08-08 14:48:42 -07:00
log-tree.h
mailinfo.c Merge branch 'rs/mailinfo-lib' 2016-08-17 14:07:47 -07:00
mailinfo.h
mailmap.c
mailmap.h
Makefile Merge branch 'ew/build-time-pager-tweaks' 2016-08-08 14:48:44 -07:00
match-trees.c
merge-blobs.c
merge-blobs.h
merge-recursive.c Merge branch 'rs/pull-signed-tag' 2016-08-19 15:34:14 -07:00
merge-recursive.h merge-recursive: offer an option to retain the output in 'obuf' 2016-08-01 11:45:30 -07:00
merge.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
mergesort.c
mergesort.h
mru.c add generic most-recently-used list 2016-07-29 11:05:07 -07:00
mru.h add generic most-recently-used list 2016-07-29 11:05:07 -07:00
name-hash.c
notes-cache.c
notes-cache.h
notes-merge.c Merge branch 'rs/notes-merge-no-toctou' 2016-07-28 10:34:41 -07:00
notes-merge.h
notes-utils.c
notes-utils.h
notes.c
notes.h
object.c
object.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 sha1_file: drop free_pack_by_name 2016-07-29 11:05:06 -07:00
pack.h
pager.c pager: move pager-specific setup into the build 2016-08-04 13:51:02 -07:00
parse-options-cb.c Merge branch 'jk/parse-options-concat' 2016-08-03 15:10:25 -07:00
parse-options.c
parse-options.h
patch-delta.c
patch-ids.c rebase: avoid computing unnecessary patch IDs 2016-08-11 14:39:16 -07:00
patch-ids.h rebase: avoid computing unnecessary patch IDs 2016-08-11 14:39:16 -07:00
path.c Merge branch 'ab/hooks' 2016-08-19 15:34:16 -07:00
pathspec.c
pathspec.h
pkt-line.c
pkt-line.h
preload-index.c
pretty.c Merge branch 'rs/use-strbuf-add-unique-abbrev' 2016-08-12 09:47:37 -07:00
prio-queue.c
prio-queue.h
progress.c
progress.h
prompt.c
prompt.h
quote.c Merge branch 'nd/icase' into maint 2016-07-28 11:26:03 -07:00
quote.h Merge branch 'nd/icase' into maint 2016-07-28 11:26:03 -07:00
reachable.c
reachable.h
read-cache.c Merge branch 'jc/renormalize-merge-kill-safer-crlf' 2016-07-25 14:13:39 -07:00
README.md
ref-filter.c
ref-filter.h
reflog-walk.c
reflog-walk.h
refs.c pass constants as first argument to st_mult() 2016-08-01 14:01:03 -07:00
refs.h Merge branch 'mh/ref-iterators' 2016-07-25 14:13:33 -07:00
RelNotes Some fixes for 2.9.3 2016-07-28 11:28:32 -07:00
remote-curl.c
remote-testsvn.c
remote.c Merge branch 'jk/push-force-with-lease-creation' 2016-08-10 12:33:18 -07:00
remote.h Merge branch 'jk/push-force-with-lease-creation' 2016-08-10 12:33:18 -07:00
replace_object.c
rerere.c
rerere.h
resolve-undo.c
resolve-undo.h
revision.c Merge branch 'kw/patch-ids-optim' 2016-08-12 09:47:39 -07:00
revision.h
run-command.c Merge branch 'ab/hooks' 2016-08-19 15:34:16 -07:00
run-command.h
send-pack.c Merge branch 'rs/use-strbuf-addstr' into maint 2016-08-10 11:55:34 -07:00
send-pack.h push: accept push options 2016-07-14 15:50:41 -07:00
sequencer.c sequencer: lib'ify read_populate_opts() 2016-09-09 11:24:52 -07:00
sequencer.h
server-info.c
setup.c i18n: setup: mark error messages for translation 2016-08-09 12:44:59 -07:00
sh-i18n--envsubst.c
sha1_file.c Merge branch 'vs/typofix' 2016-08-12 09:47:37 -07:00
sha1_name.c
sha1-array.c
sha1-array.h
sha1-lookup.c
sha1-lookup.h
shallow.c pass constants as first argument to st_mult() 2016-08-01 14:01:03 -07:00
shell.c
shortlog.h
show-index.c
sideband.c Merge branch 'lf/recv-sideband-cleanup' into maint 2016-08-08 14:21:41 -07:00
sideband.h
sigchain.c
sigchain.h sigchain: add command to pop all common signals 2015-12-16 12:06:08 -08:00
split-index.c
split-index.h
strbuf.c Merge branch 'rs/use-strbuf-addbuf' into maint 2016-08-08 14:21:42 -07:00
strbuf.h Merge branch 'rs/use-strbuf-addbuf' into maint 2016-08-08 14:21:42 -07:00
streaming.c
streaming.h
string-list.c
string-list.h
submodule-config.c Merge branch 'sb/submodule-update-dot-branch' 2016-08-10 12:33:20 -07:00
submodule-config.h submodule-config: keep configured branch around 2016-08-01 14:42:07 -07:00
submodule.c Merge branch 'bc/cocci' 2016-07-19 13:22:16 -07:00
submodule.h
symlinks.c
tag.c
tag.h
tar.h
tempfile.c mingw: ensure temporary file handles are not inherited by child processes 2016-08-23 09:09:55 -07:00
tempfile.h mingw: ensure temporary file handles are not inherited by child processes 2016-08-23 09:09:55 -07:00
thread-utils.c
thread-utils.h
trace.c trace: do not fall back to stderr 2016-08-05 09:28:17 -07:00
trace.h
trailer.c die("bug"): report bugs consistently 2016-07-26 11:13:44 -07:00
trailer.h
transport-helper.c Spelling fixes 2016-08-11 14:35:42 -07:00
transport.c Merge branch 'rs/use-strbuf-add-unique-abbrev' 2016-08-12 09:47:37 -07:00
transport.h push: accept push options 2016-07-14 15:50:41 -07:00
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: fix English grammar in do-this-before-that messages 2016-06-27 08:29:36 -07:00
unpack-trees.h
update_unicode.sh
upload-pack.c Spelling fixes 2016-08-11 14:35:42 -07:00
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 Merge branch 'nd/worktree-lock' 2016-07-28 10:34:42 -07:00
worktree.h
wrap-for-bin.sh
wrapper.c Merge branch 'sb/submodule-parallel-fetch' into maint 2016-07-28 11:26:02 -07:00
write_or_die.c write_or_die: drop write_or_whine_pipe() 2016-08-05 09:28:17 -07:00
ws.c
wt-status.c Merge branch 'js/am-3-merge-recursive-direct' 2016-08-10 12:33:20 -07:00
wt-status.h
xdiff-interface.c
xdiff-interface.h
zlib.c

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 http://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 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.

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