Go to file
Stephen P. Smith 73ba5d78b4 roll wt_status_state into wt_status and populate in the collect phase
Status variables were initialized in the collect phase and some
variables were later freed in the print functions.

A "struct wt_status" used to be sufficient for the output phase to
work.  It was designed to be filled in the collect phase and consumed
in the output phase, but over time some fields were added and output
phase started filling the fields.

A "struct wt_status_state" that was used in other codepaths turned out
to be useful in the "git status" output.  This is not tied to "struct
wt_status", so filling in the collect phase was not consistently
followed.

Move the status state structure variables into the status state
structure and populate them in the collect functions.

Create a new function to free the buffers that were being freed in the
print function.  Call this new function in commit.c where both the
collect and print functions were being called.

Based on a patch suggestion by Junio C Hamano. [1]

[1] https://public-inbox.org/git/xmqqr2i5ueg4.fsf@gitster-ct.c.googlers.com/

Signed-off-by: Stephen P. Smith <ischis2@cox.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-10-03 23:38:20 -07:00
.github
Documentation Git 2.19-rc2 2018-09-04 14:33:27 -07:00
block-sha1
builtin roll wt_status_state into wt_status and populate in the collect phase 2018-10-03 23:38:20 -07:00
ci Merge branch 'nd/pack-deltify-regression-fix' 2018-08-22 11:17:05 -07:00
compat Merge branch 'en/incl-forward-decl' 2018-08-20 12:41:32 -07:00
contrib Merge branch 'js/range-diff' 2018-08-20 11:33:53 -07:00
ewah
git-gui
gitk-git
gitweb
mergetools
negotiator
perl
po
ppc
refs Merge branch 'jk/size-t' 2018-08-15 15:08:25 -07:00
sha1collisiondetection@232357eb2e
sha1dc
t wt-status.c: set the committable flag in the collect phase 2018-09-07 14:39:05 -07:00
templates
vcs-svn
xdiff Merge branch 'sb/indent-heuristic-optim' 2018-08-17 13:09:57 -07:00
.clang-format
.gitattributes
.gitignore Merge branch 'js/range-diff' 2018-08-20 11:33:53 -07:00
.gitmodules
.mailmap
.travis.yml
.tsan-suppressions
COPYING
GIT-VERSION-GEN Git 2.19-rc1 2018-08-28 12:01:01 -07:00
INSTALL
LGPL-2.1
Makefile generate-cmdlist.sh: collect config from all config.txt files 2018-08-21 11:28:11 -07:00
README.md
RelNotes
abspath.c
aclocal.m4
advice.c
advice.h
alias.c
alias.h
alloc.c alloc: make allocate_alloc_state and clear_alloc_state more consistent 2018-08-15 11:52:09 -07:00
alloc.h alloc: make allocate_alloc_state and clear_alloc_state more consistent 2018-08-15 11:52:09 -07:00
apply.c apply.c: remove implicit dependency on the_index 2018-08-13 14:14:44 -07:00
apply.h Merge branch 'en/incl-forward-decl' 2018-08-20 12:41:32 -07:00
archive-tar.c Merge branch 'nd/no-the-index' 2018-08-20 11:33:53 -07:00
archive-zip.c Merge branch 'nd/no-the-index' 2018-08-20 11:33:53 -07:00
archive.c archive.c: avoid access to the_index 2018-08-13 14:14:43 -07:00
archive.h Merge branch 'en/incl-forward-decl' 2018-08-20 12:41:32 -07:00
argv-array.c
argv-array.h
attr.c attr: remove index from git_attr_set_direction() 2018-08-13 14:14:43 -07:00
attr.h Merge branch 'en/incl-forward-decl' 2018-08-20 12:41:32 -07:00
banned.h
base85.c
bisect.c
bisect.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
blame.c Merge branch 'ab/unconditional-free-and-null' 2018-08-27 14:33:42 -07:00
blame.h blame.c: remove implicit dependency on the_index 2018-08-13 14:14:44 -07:00
blob.c
blob.h
branch.c Merge branch 'ab/unconditional-free-and-null' 2018-08-27 14:33:42 -07:00
branch.h Move definition of enum branch_track from cache.h to branch.h 2018-08-15 11:52:09 -07:00
builtin.h
bulk-checkin.c
bulk-checkin.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
bundle.c
bundle.h
cache-tree.c cache-tree: wrap the_index based wrappers with #ifdef 2018-08-13 14:14:42 -07:00
cache-tree.h cache-tree: wrap the_index based wrappers with #ifdef 2018-08-13 14:14:42 -07:00
cache.h hashcmp: assert constant hash size 2018-08-23 06:20:58 -07: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 Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
combine-diff.c
command-list.txt
commit-graph.c Merge branch 'jk/for-each-object-iteration' 2018-08-20 11:33:52 -07:00
commit-graph.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
commit-slab-decl.h
commit-slab-impl.h
commit-slab.h
commit.c Merge branch 'ds/commit-graph-lockfile-fix' 2018-09-04 14:31:39 -07:00
commit.h
common-main.c
config.c i18n: fix mistakes in translated strings 2018-08-23 14:29:12 -07:00
config.h Merge branch 'en/incl-forward-decl' 2018-08-20 12:41:32 -07:00
config.mak.dev
config.mak.in
config.mak.uname Merge branch 'es/freebsd-iconv-portability' 2018-09-04 14:31:39 -07:00
configure.ac
connect.c
connect.h
connected.c
connected.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
convert.c Merge branch 'nd/no-the-index' 2018-08-20 11:33:53 -07:00
convert.h Merge branch 'en/incl-forward-decl' 2018-08-20 12:41:32 -07:00
copy.c
credential-cache--daemon.c
credential-cache.c
credential-store.c
credential.c
credential.h
csum-file.c
csum-file.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
ctype.c
daemon.c
date.c
decorate.c
decorate.h
delta.h
detect-compiler
diff-delta.c
diff-lib.c dir.c: remove an implicit dependency on the_index in pathspec code 2018-08-13 14:14:42 -07:00
diff-no-index.c
diff.c Merge branch 'js/range-diff' 2018-08-20 11:33:53 -07:00
diff.h Merge branch 'js/range-diff' 2018-08-20 11:33:53 -07:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c
diffcore.h Merge branch 'en/incl-forward-decl' 2018-08-20 12:41:32 -07:00
dir-iterator.c
dir-iterator.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
dir.c Merge branch 'nd/no-the-index' 2018-08-20 11:33:53 -07:00
dir.h dir.c: remove an implicit dependency on the_index in pathspec code 2018-08-13 14:14:42 -07:00
editor.c
entry.c entry.c: use the right index instead of the_index 2018-08-13 14:14:43 -07:00
environment.c Merge branch 'en/incl-forward-decl' 2018-08-20 12:41:32 -07:00
exec-cmd.c
exec-cmd.h
fast-import.c
fetch-negotiator.c
fetch-negotiator.h
fetch-object.c
fetch-object.h
fetch-pack.c Merge branch 'ab/fsck-transfer-updates' 2018-08-17 13:09:54 -07:00
fetch-pack.h
fmt-merge-msg.h
fsck.c
fsck.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
fsmonitor.c
fsmonitor.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
generate-cmdlist.sh generate-cmdlist.sh: collect config from all config.txt files 2018-08-21 11:28:11 -07:00
gettext.c
gettext.h
git-add--interactive.perl
git-archimport.perl
git-bisect.sh
git-compat-util.h Merge branch 'js/typofixes' 2018-08-20 11:33:50 -07:00
git-cvsexportcommit.perl
git-cvsimport.perl
git-cvsserver.perl
git-difftool--helper.sh
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
git-p4.py
git-parse-remote.sh
git-quiltimport.sh
git-rebase--am.sh
git-rebase--interactive.sh
git-rebase--merge.sh
git-rebase--preserve-merges.sh
git-rebase.sh
git-remote-testgit.sh
git-request-pull.sh
git-send-email.perl
git-sh-i18n.sh
git-sh-setup.sh
git-stash.sh
git-submodule.sh Merge branch 'sb/pull-rebase-submodule' 2018-08-20 11:33:54 -07:00
git-svn.perl
git-web--browse.sh
git.c Merge branch 'js/range-diff' 2018-08-20 11:33:53 -07:00
git.rc
gpg-interface.c Merge branch 'jc/gpg-status' 2018-08-20 11:33:50 -07:00
gpg-interface.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
graph.c
graph.h
grep.c
grep.h
hash.h
hashmap.c
hashmap.h
help.c Merge branch 'hn/highlight-sideband-keywords' 2018-08-20 12:41:34 -07:00
help.h
hex.c
http-backend.c Merge branch 'mk/http-backend-content-length' 2018-08-17 13:09:57 -07:00
http-fetch.c
http-push.c
http-walker.c
http.c refactor various if (x) FREE_AND_NULL(x) to just FREE_AND_NULL(x) 2018-08-17 10:08:56 -07:00
http.h
ident.c
imap-send.c
iterator.h
json-writer.c
json-writer.h
khash.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
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 Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
list-objects.c
list-objects.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
list.h
ll-merge.c attr: remove an implicit dependency on the_index 2018-08-13 14:14:42 -07:00
ll-merge.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
lockfile.c
lockfile.h
log-tree.c Merge branch 'jk/core-use-replace-refs' 2018-08-15 15:08:23 -07:00
log-tree.h
ls-refs.c
ls-refs.h
mailinfo.c
mailinfo.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
mailmap.c
mailmap.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
match-trees.c Merge branch 'jk/merge-subtree-heuristics' 2018-08-17 13:09:55 -07:00
mem-pool.c
mem-pool.h
merge-blobs.c
merge-blobs.h
merge-recursive.c Merge branch 'en/directory-renames-nothanks' 2018-09-04 14:31:38 -07:00
merge-recursive.h Merge branch 'en/directory-renames-nothanks' 2018-09-04 14:31:38 -07:00
merge.c
mergesort.c
mergesort.h
name-hash.c
notes-cache.c
notes-cache.h
notes-merge.c
notes-merge.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
notes-utils.c
notes-utils.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
notes.c
notes.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
object-store.h Merge branch 'en/incl-forward-decl' 2018-08-20 12:41:32 -07:00
object.c Merge branch 'nd/i18n' 2018-08-15 15:08:23 -07:00
object.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
oidmap.c
oidmap.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
oidset.c
oidset.h
pack-bitmap-write.c
pack-bitmap.c
pack-bitmap.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
pack-check.c
pack-objects.c Merge branch 'nd/pack-deltify-regression-fix' 2018-08-22 11:17:05 -07:00
pack-objects.h Merge branch 'nd/pack-deltify-regression-fix' 2018-08-22 11:17:05 -07:00
pack-revindex.c
pack-revindex.h
pack-write.c
pack.h
packfile.c for_each_packed_object: support iterating in pack-order 2018-08-13 13:48:28 -07:00
packfile.h Merge branch 'jk/for-each-object-iteration' 2018-08-20 11:33:52 -07:00
pager.c
parse-options-cb.c
parse-options.c Merge branch 'rs/parse-opt-lithelp' 2018-08-17 13:09:56 -07:00
parse-options.h
patch-delta.c
patch-ids.c
patch-ids.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
path.c
path.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
pathspec.c pathspec.c: use the right index instead of the_index 2018-08-13 14:14:43 -07:00
pathspec.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
pkt-line.c
pkt-line.h
preload-index.c preload-index.c: use the right index instead of the_index 2018-08-13 14:14:42 -07:00
pretty.c Merge branch 'jk/size-t' 2018-08-15 15:08:25 -07:00
pretty.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
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 Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
read-cache.c Merge branch 'nd/no-the-index' 2018-08-20 11:33:53 -07:00
ref-filter.c Merge branch 'ot/ref-filter-object-info' 2018-08-17 13:09:57 -07:00
ref-filter.h
reflog-walk.c Merge branch 'nd/i18n' 2018-08-15 15:08:23 -07:00
reflog-walk.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
refs.c Merge branch 'jt/refspec-dwim-precedence-fix' 2018-08-17 13:09:55 -07:00
refs.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
refspec.c
refspec.h
remote-curl.c Merge branch 'js/typofixes' 2018-08-20 11:33:50 -07:00
remote-testsvn.c
remote.c Merge branch 'jt/refspec-dwim-precedence-fix' 2018-08-17 13:09:55 -07:00
remote.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
replace-object.c Merge branch 'nd/i18n' 2018-08-15 15:08:23 -07:00
replace-object.h
repository.c
repository.h Merge branch 'en/incl-forward-decl' 2018-08-20 12:41:32 -07:00
rerere.c dir.c: remove an implicit dependency on the_index in pathspec code 2018-08-13 14:14:42 -07:00
rerere.h
resolve-undo.c resolve-undo.c: use the right index instead of the_index 2018-08-13 14:14:44 -07:00
resolve-undo.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
revision.c dir.c: remove an implicit dependency on the_index in pathspec code 2018-08-13 14:14:42 -07:00
revision.h Merge branch 'en/incl-forward-decl' 2018-08-20 12:41:32 -07:00
run-command.c
run-command.h
send-pack.c
send-pack.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
sequencer.c Merge branch 'pw/rebase-i-author-script-fix' 2018-09-04 14:31:38 -07:00
sequencer.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
serve.c
serve.h
server-info.c
setup.c
sh-i18n--envsubst.c
sha1-array.c
sha1-array.h
sha1-file.c Merge branch 'nd/no-the-index' 2018-08-20 11:33:53 -07:00
sha1-lookup.c
sha1-lookup.h
sha1-name.c
sha1dc_git.c
sha1dc_git.h
shallow.c
shell.c
shortlog.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
sideband.c sideband: do not read beyond the end of input 2018-08-18 09:16:48 -07:00
sideband.h
sigchain.c
sigchain.h
split-index.c
split-index.h
strbuf.c Merge branch 'jk/size-t' 2018-08-15 15:08:25 -07:00
strbuf.h
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.c: use the right index instead of the_index 2018-08-13 14:14:43 -07:00
submodule.h Merge branch 'en/incl-forward-decl' 2018-08-20 12:41:32 -07:00
symlinks.c
tag.c
tag.h
tar.h
tempfile.c
tempfile.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
thread-utils.c
thread-utils.h
tmp-objdir.c
tmp-objdir.h
trace.c
trace.h
trailer.c
trailer.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
transport-helper.c Merge branch 'jt/connectivity-check-after-unshallow' 2018-08-15 15:08:28 -07:00
transport-internal.h
transport.c Merge branch 'jt/connectivity-check-after-unshallow' 2018-08-15 15:08:28 -07:00
transport.h Merge branch 'jt/connectivity-check-after-unshallow' 2018-08-15 15:08:28 -07:00
tree-diff.c refactor various if (x) FREE_AND_NULL(x) to just FREE_AND_NULL(x) 2018-08-17 10:08:56 -07:00
tree-walk.c
tree-walk.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
tree.c
tree.h
unicode-width.h
unimplemented.sh
unix-socket.c
unix-socket.h
unpack-trees.c attr: remove index from git_attr_set_direction() 2018-08-13 14:14:43 -07:00
unpack-trees.h Merge branch 'en/incl-forward-decl' 2018-08-20 12:41:32 -07:00
upload-pack.c
upload-pack.h
url.c
url.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
urlmatch.c
urlmatch.h urlmatch.h: fix include guard 2018-08-15 11:52:09 -07:00
usage.c
userdiff.c attr: remove an implicit dependency on the_index 2018-08-13 14:14:42 -07:00
userdiff.h
utf8.c Merge branch 'jk/size-t' 2018-08-15 15:08:25 -07:00
utf8.h Merge branch 'en/incl-forward-decl' 2018-08-20 12:41:32 -07:00
varint.c
varint.h
version.c
version.h
versioncmp.c
walker.c
walker.h
wildmatch.c
wildmatch.h
worktree.c
worktree.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
wrap-for-bin.sh
wrapper.c
write-or-die.c
ws.c attr: remove an implicit dependency on the_index 2018-08-13 14:14:42 -07:00
wt-status.c roll wt_status_state into wt_status and populate in the collect phase 2018-10-03 23:38:20 -07:00
wt-status.h roll wt_status_state into wt_status and populate in the collect phase 2018-10-03 23:38:20 -07:00
xdiff-interface.c
xdiff-interface.h
zlib.c

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