Go to file
Phillip Wood e032abd5a0 rebase: fix rewritten list for failed pick
git rebase keeps a list that maps the OID of each commit before it was
rebased to the OID of the equivalent commit after the rebase.  This list
is used to drive the "post-rewrite" hook that is called at the end of a
successful rebase. When a rebase stops for the user to resolve merge
conflicts the OID of the commit being picked is written to
".git/rebase-merge/stopped-sha". Then when the rebase is continued that
OID is added to the list of rewritten commits. Unfortunately if a commit
cannot be picked because it would overwrite an untracked file we still
write the "stopped-sha1" file. This means that when the rebase is
continued the commit is added into the list of rewritten commits even
though it has not been picked yet.

Fix this by not calling error_with_patch() for failed commands. The pick
has failed so there is nothing to commit and therefore we do not want to
set up the state files for committing staged changes when the rebase
continues. This change means we no-longer write a patch for the failed
command or display the error message printed by error_with_patch(). As
the command has failed the patch isn't really useful and in any case the
user can inspect the commit associated with the failed command by
inspecting REBASE_HEAD. Unless the user has disabled it we already print
an advice message that is more helpful than the message from
error_with_patch() which the user will still see. Even if the advice is
disabled the user will see the messages from the merge machinery
detailing the problem.

The code to add a failed command back into the todo list is duplicated
between pick_one_commit() and the loop in pick_commits(). Both sites
print advice about the command being rescheduled, decrement the current
item and save the todo list. To avoid duplicating this code
pick_one_commit() is modified to set a flag to indicate that the command
should be rescheduled in the main loop. This simplifies things as only
the remaining copy of the code needs to be modified to set REBASE_HEAD
rather than calling error_with_patch().

Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-09-06 10:29:43 -07:00
.github
Documentation The eleventh batch 2023-04-20 14:33:36 -07:00
block-sha1
builtin Merge branch 'gc/better-error-when-local-clone-fails-with-symlink' 2023-04-20 14:33:36 -07:00
ci
compat environment.h: move declarations for environment.c functions from cache.h 2023-03-21 10:56:53 -07:00
contrib Merge branch 'ab/remove-implicit-use-of-the-repository' 2023-04-06 13:38:30 -07:00
ewah
git-gui
gitk-git
gitweb
mergetools
negotiator Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
oss-fuzz
perl
po Merge branch 'fz/po-zh_CN' of github.com:fangyi-zhou/git-po 2023-03-10 22:50:14 +08:00
refs write-or-die.h: move declarations for write-or-die.c functions from cache.h 2023-03-21 10:56:54 -07:00
reftable
sha1collisiondetection@855827c583
sha1dc
sha256
t rebase: fix rewritten list for failed pick 2023-09-06 10:29:43 -07:00
templates
trace2 treewide: remove unnecessary includes of cache.h 2023-03-21 10:56:53 -07:00
xdiff
.cirrus.yml
.clang-format
.editorconfig
.gitattributes
.gitignore
.gitmodules
.mailmap mailmap: change primary address for Emily Shaffer 2023-04-07 14:33:52 -07:00
.tsan-suppressions
CODE_OF_CONDUCT.md
COPYING
GIT-VERSION-GEN Start the 2.41 cycle 2023-03-17 14:03:20 -07:00
INSTALL
LGPL-2.1
Makefile doc: remove GNU troff workaround 2023-03-21 13:16:46 -07:00
README.md
RelNotes Start the 2.41 cycle 2023-03-17 14:03:20 -07:00
SECURITY.md
abspath.c abspath.h: move absolute path functions from cache.h 2023-03-21 10:56:52 -07:00
abspath.h abspath.h: move absolute path functions from cache.h 2023-03-21 10:56:52 -07:00
aclocal.m4
add-interactive.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
add-interactive.h
add-patch.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
advice.c Merge branch 'fc/advice-diverged-history' 2023-03-19 15:03:13 -07:00
advice.h Merge branch 'fc/advice-diverged-history' 2023-03-19 15:03:13 -07:00
alias.c rebase -m: fix serialization of strategy options 2023-04-10 09:53:19 -07:00
alias.h rebase -m: fix serialization of strategy options 2023-04-10 09:53:19 -07:00
alloc.c object.h: stop depending on cache.h; make cache.h depend on object.h 2023-02-23 17:25:29 -08:00
alloc.h
apply.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
apply.h
archive-tar.c write-or-die.h: move declarations for write-or-die.c functions from cache.h 2023-03-21 10:56:54 -07:00
archive-zip.c write-or-die.h: move declarations for write-or-die.c functions from cache.h 2023-03-21 10:56:54 -07:00
archive.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
archive.h
attr.c setup.h: move declarations for setup.c functions from cache.h 2023-03-21 10:56:54 -07:00
attr.h
banned.h
base85.c
bisect.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
bisect.h
blame.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
blame.h object.h: stop depending on cache.h; make cache.h depend on object.h 2023-02-23 17:25:29 -08:00
blob.c object.h: stop depending on cache.h; make cache.h depend on object.h 2023-02-23 17:25:29 -08:00
blob.h
bloom.c
bloom.h
branch.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
branch.h
builtin.h builtins: annotate always-empty prefix parameters 2023-03-28 14:11:24 -07:00
bulk-checkin.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
bulk-checkin.h treewide: remove unnecessary cache.h inclusion from a few headers 2023-03-21 10:56:50 -07:00
bundle-uri.c Merge branch 'ds/fetch-bundle-uri-with-all' 2023-04-06 13:38:32 -07:00
bundle-uri.h
bundle.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
bundle.h treewide: remove unnecessary cache.h inclusion from a few headers 2023-03-21 10:56:50 -07:00
cache-tree.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
cache-tree.h object.h: stop depending on cache.h; make cache.h depend on object.h 2023-02-23 17:25:29 -08:00
cache.h Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
cbtree.c
cbtree.h
chdir-notify.c abspath.h: move absolute path functions from cache.h 2023-03-21 10:56:52 -07:00
chdir-notify.h
check-builtins.sh
checkout.c cocci: apply the "cache.h" part of "the_repository.pending" 2023-03-28 07:36:36 -07:00
checkout.h
chunk-format.c csum-file.h: remove unnecessary inclusion of cache.h 2023-03-21 10:56:55 -07:00
chunk-format.h
color.c treewide: be explicit about dependence on gettext.h 2023-03-21 10:56:51 -07:00
color.h
column.c
column.h
combine-diff.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
command-list.txt
commit-graph.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
commit-graph.h Merge branch 'ds/ahead-behind' 2023-04-06 13:38:21 -07:00
commit-reach.c Merge branch 'ab/remove-implicit-use-of-the-repository' 2023-04-06 13:38:30 -07:00
commit-reach.h Merge branch 'ab/remove-implicit-use-of-the-repository' 2023-04-06 13:38:30 -07:00
commit-slab-decl.h
commit-slab-impl.h
commit-slab.h
commit.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
commit.h Merge branch 'ab/remove-implicit-use-of-the-repository' 2023-04-06 13:38:30 -07:00
common-main.c setup.h: move declarations for setup.c functions from cache.h 2023-03-21 10:56:54 -07:00
config.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
config.h Merge branch 'gc/config-parsing-cleanup' 2023-04-06 13:38:29 -07:00
config.mak.dev
config.mak.in
config.mak.uname
configure.ac
connect.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
connect.h Merge branch 'jk/fix-proto-downgrade-to-v0' 2023-03-28 10:51:52 -07:00
connected.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
connected.h
convert.c wrapper.h: move declarations for wrapper.c functions from cache.h 2023-03-21 10:56:53 -07:00
convert.h
copy.c wrapper.h: move declarations for wrapper.c functions from cache.h 2023-03-21 10:56:53 -07:00
credential.c abspath.h: move absolute path functions from cache.h 2023-03-21 10:56:52 -07:00
credential.h Merge branch 'mc/credential-helper-www-authenticate' 2023-03-17 14:03:10 -07:00
csum-file.c treewide: remove cache.h inclusion due to environment.h changes 2023-03-21 10:56:54 -07:00
csum-file.h csum-file.h: remove unnecessary inclusion of cache.h 2023-03-21 10:56:55 -07:00
ctype.c
daemon.c setup.h: move declarations for setup.c functions from cache.h 2023-03-21 10:56:54 -07:00
date.c Merge branch 'rs/remove-approxidate-relative' 2023-04-20 14:33:35 -07:00
date.h date: remove approxidate_relative() 2023-04-10 08:46:40 -07:00
decorate.c treewide: replace cache.h with more direct headers, where possible 2023-02-23 17:25:30 -08:00
decorate.h
delta-islands.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
delta-islands.h
delta.h
detect-compiler
diagnose.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
diagnose.h treewide: remove unnecessary inclusions of parse-options.h from headers 2023-03-20 11:55:18 -07:00
diff-delta.c
diff-lib.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
diff-merges.c object.h: stop depending on cache.h; make cache.h depend on object.h 2023-02-23 17:25:29 -08:00
diff-merges.h
diff-no-index.c abspath.h: move absolute path functions from cache.h 2023-03-21 10:56:52 -07:00
diff.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
diff.h Merge branch 'ab/remove-implicit-use-of-the-repository' 2023-04-06 13:38:30 -07:00
diffcore-break.c cocci: apply the "promisor-remote.h" part of "the_repository.pending" 2023-03-28 07:36:46 -07:00
diffcore-delta.c object.h: stop depending on cache.h; make cache.h depend on object.h 2023-02-23 17:25:29 -08:00
diffcore-order.c treewide: replace cache.h with more direct headers, where possible 2023-02-23 17:25:30 -08:00
diffcore-pickaxe.c
diffcore-rename.c Merge branch 'ab/remove-implicit-use-of-the-repository' 2023-04-06 13:38:30 -07:00
diffcore-rotate.c treewide: replace cache.h with more direct headers, where possible 2023-02-23 17:25:30 -08:00
diffcore.h
dir-iterator.c Merge branch 'en/header-cleanup' 2023-03-17 14:03:09 -07:00
dir-iterator.h
dir.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
dir.h Merge branch 'en/header-cleanup' 2023-03-17 14:03:09 -07:00
editor.c environment.h: move declarations for environment.c functions from cache.h 2023-03-21 10:56:53 -07:00
entry.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
entry.h
environment.c write-or-die.h: move declarations for write-or-die.c functions from cache.h 2023-03-21 10:56:54 -07:00
environment.h environment.h: move declarations for environment.c functions from cache.h 2023-03-21 10:56:53 -07:00
exec-cmd.c environment.h: move declarations for environment.c functions from cache.h 2023-03-21 10:56:53 -07:00
exec-cmd.h
fetch-negotiator.c
fetch-negotiator.h
fetch-pack.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
fetch-pack.h
fmt-merge-msg.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
fmt-merge-msg.h
fsck.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
fsck.h object.h: stop depending on cache.h; make cache.h depend on object.h 2023-02-23 17:25:29 -08:00
fsmonitor--daemon.h
fsmonitor-ipc.c treewide: be explicit about dependence on gettext.h 2023-03-21 10:56:51 -07:00
fsmonitor-ipc.h
fsmonitor-path-utils.h
fsmonitor-settings.c
fsmonitor-settings.h
fsmonitor.c environment.h: move declarations for environment.c functions from cache.h 2023-03-21 10:56:53 -07:00
fsmonitor.h fsmonitor: avoid overriding `cache_changed` bits 2023-03-27 09:40:39 -07:00
generate-cmdlist.sh
generate-configlist.sh
generate-hooklist.sh
gettext.c treewide: remove cache.h inclusion due to environment.h changes 2023-03-21 10:56:54 -07:00
gettext.h
git-archimport.perl
git-compat-util.h Merge branch 'pe/time-use-gettimeofday' 2023-03-28 10:51:52 -07:00
git-curl-compat.h
git-cvsexportcommit.perl
git-cvsimport.perl
git-cvsserver.perl
git-difftool--helper.sh mergetool: new config guiDefault supports auto-toggling gui by DISPLAY 2023-04-05 21:03:29 -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 mergetool: new config guiDefault supports auto-toggling gui by DISPLAY 2023-04-05 21:03:29 -07:00
git-mergetool.sh mergetool: new config guiDefault supports auto-toggling gui by DISPLAY 2023-04-05 21:03:29 -07:00
git-p4.py
git-quiltimport.sh
git-request-pull.sh
git-send-email.perl Merge branch 'jc/spell-id-in-both-caps-in-message-id' 2023-04-11 13:49:12 -07:00
git-sh-i18n.sh
git-sh-setup.sh
git-submodule.sh
git-svn.perl
git-web--browse.sh
git.c Merge branch 'ws/sparse-check-rules' 2023-04-11 13:49:12 -07:00
git.rc
gpg-interface.c treewide: remove unnecessary includes of cache.h 2023-03-21 10:56:53 -07:00
gpg-interface.h
graph.c treewide: replace cache.h with more direct headers, where possible 2023-02-23 17:25:30 -08:00
graph.h
grep.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
grep.h grep: work around UTF-8 related JIT bug in PCRE2 <= 10.34 2023-03-23 11:19:34 -07:00
hash-lookup.c
hash-lookup.h
hash.h
hashmap.c
hashmap.h hashmap.h: fix minor typo 2023-03-30 10:18:39 -07:00
help.c Merge branch 'jk/unused-post-2.39-part2' 2023-03-17 14:03:09 -07:00
help.h
hex.c
hex.h
hook.c Merge branch 'jk/unused-post-2.39-part2' 2023-03-17 14:03:09 -07:00
hook.h
http-backend.c write-or-die.h: move declarations for write-or-die.c functions from cache.h 2023-03-21 10:56:54 -07:00
http-fetch.c setup.h: move declarations for setup.c functions from cache.h 2023-03-21 10:56:54 -07:00
http-push.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
http-walker.c Merge branch 'ab/remove-implicit-use-of-the-repository' 2023-04-06 13:38:30 -07:00
http.c Merge branch 'sm/ssl-key-type-config' 2023-04-06 13:38:29 -07:00
http.h
ident.c
ident.h
imap-send.c setup.h: move declarations for setup.c functions from cache.h 2023-03-21 10:56:54 -07:00
iterator.h
json-writer.c
json-writer.h
khash.h
kwset.c
kwset.h
levenshtein.c
levenshtein.h
line-log.c treewide: remove cache.h inclusion due to setup.h changes 2023-03-21 10:56:54 -07:00
line-log.h
line-range.c
line-range.h
linear-assignment.c
linear-assignment.h
list-objects-filter-options.c Merge branch 'ab/remove-implicit-use-of-the-repository' 2023-04-06 13:38:30 -07:00
list-objects-filter-options.h Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
list-objects-filter.c treewide: be explicit about dependence on gettext.h 2023-03-21 10:56:51 -07:00
list-objects-filter.h
list-objects.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
list-objects.h
list.h
ll-merge.c wrapper.h: move declarations for wrapper.c functions from cache.h 2023-03-21 10:56:53 -07:00
ll-merge.h
lockfile.c treewide: remove unnecessary includes of cache.h 2023-03-21 10:56:53 -07:00
lockfile.h
log-tree.c Merge branch 'jc/spell-id-in-both-caps-in-message-id' 2023-04-11 13:49:12 -07:00
log-tree.h
ls-refs.c treewide: remove cache.h inclusion due to environment.h changes 2023-03-21 10:56:54 -07:00
ls-refs.h
mailinfo.c Merge branch 'jc/spell-id-in-both-caps-in-message-id' 2023-04-11 13:49:12 -07:00
mailinfo.h
mailmap.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
mailmap.h
match-trees.c Merge branch 'ab/remove-implicit-use-of-the-repository' 2023-04-06 13:38:30 -07:00
mem-pool.c
mem-pool.h
merge-blobs.c Merge branch 'ab/remove-implicit-use-of-the-repository' 2023-04-06 13:38:30 -07:00
merge-blobs.h
merge-ort-wrappers.c treewide: be explicit about dependence on gettext.h 2023-03-21 10:56:51 -07:00
merge-ort-wrappers.h
merge-ort.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
merge-ort.h
merge-recursive.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
merge-recursive.h
merge.c treewide: be explicit about dependence on gettext.h 2023-03-21 10:56:51 -07:00
mergesort.h
midx.c csum-file.h: remove unnecessary inclusion of cache.h 2023-03-21 10:56:55 -07:00
midx.h
name-hash.c environment.h: move declarations for environment.c functions from cache.h 2023-03-21 10:56:53 -07:00
notes-cache.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
notes-cache.h
notes-merge.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
notes-merge.h
notes-utils.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
notes-utils.h
notes.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
notes.h
object-file.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
object-name.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
object-store.h Merge branch 'ab/remove-implicit-use-of-the-repository' 2023-04-06 13:38:30 -07:00
object.c treewide: be explicit about dependence on gettext.h 2023-03-21 10:56:51 -07:00
object.h object.h: stop depending on cache.h; make cache.h depend on object.h 2023-02-23 17:25:29 -08:00
oid-array.c
oid-array.h
oidmap.c
oidmap.h
oidset.c
oidset.h
oidtree.c
oidtree.h
pack-bitmap-write.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
pack-bitmap.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
pack-bitmap.h
pack-check.c environment.h: move declarations for environment.c functions from cache.h 2023-03-21 10:56:53 -07:00
pack-mtimes.c treewide: be explicit about dependence on gettext.h 2023-03-21 10:56:51 -07:00
pack-mtimes.h
pack-objects.c
pack-objects.h
pack-revindex.c treewide: be explicit about dependence on gettext.h 2023-03-21 10:56:51 -07:00
pack-revindex.h
pack-write.c environment.h: move declarations for environment.c functions from cache.h 2023-03-21 10:56:53 -07:00
pack.h csum-file.h: remove unnecessary inclusion of cache.h 2023-03-21 10:56:55 -07:00
packfile.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
packfile.h Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
pager.c
parallel-checkout.c wrapper.h: move declarations for wrapper.c functions from cache.h 2023-03-21 10:56:53 -07:00
parallel-checkout.h
parse-options-cb.c Merge branch 'pw/rebase-cleanup-merge-strategy-option-handling' 2023-04-17 18:05:13 -07:00
parse-options.c treewide: remove unnecessary includes of cache.h 2023-03-21 10:56:53 -07:00
parse-options.h Merge branch 'pw/rebase-cleanup-merge-strategy-option-handling' 2023-04-17 18:05:13 -07:00
patch-delta.c
patch-ids.c treewide: remove unnecessary cache.h inclusion from several sources 2023-03-21 10:56:51 -07:00
patch-ids.h
path.c treewide: remove cache.h inclusion due to setup.h changes 2023-03-21 10:56:54 -07:00
path.h path.h: move function declarations for path.c functions from cache.h 2023-03-21 10:56:52 -07:00
pathspec.c setup.h: move declarations for setup.c functions from cache.h 2023-03-21 10:56:54 -07:00
pathspec.h dir.h: refactor to no longer need to include cache.h 2023-02-23 17:25:29 -08:00
pkt-line.c write-or-die.h: move declarations for write-or-die.c functions from cache.h 2023-03-21 10:56:54 -07:00
pkt-line.h
preload-index.c environment.h: move declarations for environment.c functions from cache.h 2023-03-21 10:56:53 -07:00
pretty.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
pretty.h Merge branch 'ab/remove-implicit-use-of-the-repository' 2023-04-06 13:38:30 -07:00
prio-queue.c
prio-queue.h
progress.c treewide: remove unnecessary inclusion of gettext.h 2023-03-21 10:56:51 -07:00
progress.h
promisor-remote.c treewide: be explicit about dependence on gettext.h 2023-03-21 10:56:51 -07:00
promisor-remote.h cocci: apply the "promisor-remote.h" part of "the_repository.pending" 2023-03-28 07:36:46 -07:00
prompt.c treewide: remove cache.h inclusion due to environment.h changes 2023-03-21 10:56:54 -07:00
prompt.h
protocol-caps.c Merge branch 'jx/cap-object-info-uninitialized-fix' 2023-04-11 13:49:13 -07:00
protocol-caps.h
protocol.c environment.h: move declarations for environment.c functions from cache.h 2023-03-21 10:56:53 -07:00
protocol.h
prune-packed.c treewide: remove cache.h inclusion due to environment.h changes 2023-03-21 10:56:54 -07:00
prune-packed.h
quote.c treewide: replace cache.h with more direct headers, where possible 2023-02-23 17:25:30 -08:00
quote.h
range-diff.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
range-diff.h
reachable.c treewide: remove cache.h inclusion due to environment.h changes 2023-03-21 10:56:54 -07:00
reachable.h
read-cache.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
rebase-interactive.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
rebase-interactive.h
rebase.c
rebase.h
ref-filter.c Merge branch 'ow/ref-format-remove-unused-member' 2023-04-06 13:38:32 -07:00
ref-filter.h Merge branch 'ow/ref-format-remove-unused-member' 2023-04-06 13:38:32 -07:00
reflog-walk.c
reflog-walk.h
reflog.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
reflog.h
refs.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
refs.h Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
refspec.c treewide: remove unnecessary cache.h inclusion from a few headers 2023-03-21 10:56:50 -07:00
refspec.h
remote-curl.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
remote.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
remote.h Merge branch 'sg/parse-options-h-users' 2023-03-30 13:47:11 -07:00
replace-object.c treewide: remove unnecessary cache.h inclusion from several sources 2023-03-21 10:56:51 -07:00
replace-object.h replace-object.h: move read_replace_refs declaration from cache.h to here 2023-02-23 17:25:30 -08:00
repo-settings.c
repository.c setup.h: move declarations for setup.c functions from cache.h 2023-03-21 10:56:54 -07:00
repository.h
rerere.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
rerere.h Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
reset.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
reset.h
resolve-undo.c
resolve-undo.h
revision.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
revision.h Merge branch 'ab/remove-implicit-use-of-the-repository' 2023-04-06 13:38:30 -07:00
run-command.c environment.h: move declarations for environment.c functions from cache.h 2023-03-21 10:56:53 -07:00
run-command.h
scalar.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
send-pack.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
send-pack.h
sequencer.c rebase: fix rewritten list for failed pick 2023-09-06 10:29:43 -07:00
sequencer.h rebase -m: cleanup --strategy-option handling 2023-04-10 09:53:19 -07:00
serve.c Merge branch 'jk/unused-post-2.39-part2' 2023-03-17 14:03:09 -07:00
serve.h
server-info.c environment.h: move declarations for environment.c functions from cache.h 2023-03-21 10:56:53 -07:00
setup.c setup.h: move declarations for setup.c functions from cache.h 2023-03-21 10:56:54 -07:00
setup.h setup.h: move declarations for setup.c functions from cache.h 2023-03-21 10:56:54 -07:00
sh-i18n--envsubst.c
sha1dc_git.c treewide: replace cache.h with more direct headers, where possible 2023-02-23 17:25:30 -08:00
sha1dc_git.h
shallow.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
shallow.h object.h: stop depending on cache.h; make cache.h depend on object.h 2023-02-23 17:25:29 -08:00
shared.mak
shell.c
shortlog.h
sideband.c write-or-die.h: move declarations for write-or-die.c functions from cache.h 2023-03-21 10:56:54 -07:00
sideband.h
sigchain.c
sigchain.h
simple-ipc.h
sparse-index.c environment.h: move declarations for environment.c functions from cache.h 2023-03-21 10:56:53 -07:00
sparse-index.h
split-index.c treewide: be explicit about dependence on gettext.h 2023-03-21 10:56:51 -07:00
split-index.h
stable-qsort.c
statinfo.h dir.h: refactor to no longer need to include cache.h 2023-02-23 17:25:29 -08:00
strbuf.c wrapper.h: move declarations for wrapper.c functions from cache.h 2023-03-21 10:56:53 -07:00
strbuf.h post-cocci: adjust comments for recent repo_* migration 2023-03-28 07:36:46 -07:00
streaming.c environment.h: move declarations for environment.c functions from cache.h 2023-03-21 10:56:53 -07:00
streaming.h treewide: remove unnecessary cache.h inclusion from a few headers 2023-03-21 10:56:50 -07:00
string-list.c
string-list.h
strmap.c
strmap.h
strvec.c
strvec.h
sub-process.c
sub-process.h
submodule-config.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
submodule-config.h
submodule.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
submodule.h
symlinks.c setup.h: move declarations for setup.c functions from cache.h 2023-03-21 10:56:54 -07:00
tag.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
tag.h
tar.h
tempfile.c treewide: remove unnecessary includes of cache.h 2023-03-21 10:56:53 -07:00
tempfile.h
thread-utils.c
thread-utils.h
tmp-objdir.c environment.h: move declarations for environment.c functions from cache.h 2023-03-21 10:56:53 -07:00
tmp-objdir.h
trace.c setup.h: move declarations for setup.c functions from cache.h 2023-03-21 10:56:54 -07:00
trace.h Merge branch 'en/header-cleanup' 2023-03-17 14:03:09 -07:00
trace2.c
trace2.h
trailer.c treewide: remove cache.h inclusion due to environment.h changes 2023-03-21 10:56:54 -07:00
trailer.h
transport-helper.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
transport-internal.h
transport.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
transport.h treewide: remove unnecessary cache.h inclusion from a few headers 2023-03-21 10:56:50 -07:00
tree-diff.c
tree-walk.c treewide: be explicit about dependence on gettext.h 2023-03-21 10:56:51 -07:00
tree-walk.h
tree.c Merge branch 'ab/remove-implicit-use-of-the-repository' 2023-04-06 13:38:30 -07:00
tree.h
unicode-width.h unicode: update the width tables to Unicode 15 2023-03-30 13:06:12 -07:00
unimplemented.sh
unix-socket.c treewide: replace cache.h with more direct headers, where possible 2023-02-23 17:25:30 -08:00
unix-socket.h
unix-stream-server.c
unix-stream-server.h
unpack-trees.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
unpack-trees.h unpack-trees: add usage notices around df_conflict_entry 2023-02-27 08:29:51 -08:00
upload-pack.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
upload-pack.h
url.c treewide: replace cache.h with more direct headers, where possible 2023-02-23 17:25:30 -08:00
url.h
urlmatch.c treewide: replace cache.h with more direct headers, where possible 2023-02-23 17:25:30 -08:00
urlmatch.h
usage.c treewide: remove unnecessary includes of cache.h 2023-03-21 10:56:53 -07:00
userdiff.c Merge branch 'rs/userdiff-multibyte-regex' 2023-04-20 14:33:35 -07:00
userdiff.h Merge branch 'rs/userdiff-multibyte-regex' 2023-04-20 14:33:35 -07:00
utf8.c
utf8.h
varint.c
varint.h
version.c
version.h
versioncmp.c config API: add "string" version of *_value_multi(), fix segfaults 2023-03-28 07:37:53 -07:00
walker.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
walker.h
wildmatch.c Merge branch 'pw/wildmatch-fixes' 2023-04-04 14:28:27 -07:00
wildmatch.h wildmatch: hide internal return values 2023-03-20 10:58:53 -07:00
worktree.c treewide: remove cache.h inclusion due to setup.h changes 2023-03-21 10:56:54 -07:00
worktree.h Merge branch 'rj/avoid-switching-to-already-used-branch' 2023-03-19 15:03:11 -07:00
wrap-for-bin.sh
wrapper.c wrapper.h: move declarations for wrapper.c functions from cache.h 2023-03-21 10:56:53 -07:00
wrapper.h wrapper.h: move declarations for wrapper.c functions from cache.h 2023-03-21 10:56:53 -07:00
write-or-die.c write-or-die.h: move declarations for write-or-die.c functions from cache.h 2023-03-21 10:56:54 -07:00
write-or-die.h write-or-die.h: move declarations for write-or-die.c functions from cache.h 2023-03-21 10:56:54 -07:00
ws.c
wt-status.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
wt-status.h
xdiff-interface.c Merge branch 'en/header-split-cleanup' 2023-04-06 13:38:31 -07:00
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-<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).

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 and Documentation/CodingGuidelines).

Those wishing to help with error message, usage and informational message string translations (localization l10) should see po/README.md (a po file is a Portable Object file that holds the translations).

To subscribe to the list, send an email with just "subscribe git" in the body to majordomo@vger.kernel.org (not the Git list). The mailing list archives are available at https://lore.kernel.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