1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-28 08:06:23 +02:00
Git Source Code Mirror. Please follow Documentation/SubmittingPatches procedure for any of your improvements.
Go to file
Jeff King fd89433dd0 pkt-line: show packets in async processes as "sideband"
If you run "GIT_TRACE_PACKET=1 git push", you may get
confusing output like (line prefixes omitted for clarity):

   packet:      push< \1000eunpack ok0019ok refs/heads/master0000
   packet:      push< unpack ok
   packet:      push< ok refs/heads/master
   packet:      push< 0000
   packet:      push< 0000

Why do we see the data twice, once apparently wrapped inside
another pkt-line, and once unwrapped? Why do we get two
flush packets?

The answer is that we start an async process to demux the
sideband data. The first entry comes from the sideband
process reading the data, and the second from push itself.
Likewise, the first flush is inside the demuxed packet, and
the second is an actual sideband flush.

We can make this a bit more clear by marking the sideband
demuxer explicitly as "sideband" rather than "push". The
most elegant way to do this would be to simply call
packet_trace_identity() inside the sideband demuxer. But we
can't do that reliably, because it relies on a global
variable, which might be shared if pthreads are in use.

What we really need is thread-local storage for
packet_trace_identity. But the async code does not provide
an interface for that, and it would be messy to add it here
(we'd have to care about pthreads, initializing our
pthread_key_t ahead of time, etc).

So instead, let us just assume that any async process is
handling sideband data. That's always true now, and is
likely to remain so in the future.

The output looks like:

   packet:  sideband< \1000eunpack ok0019ok refs/heads/master0000
   packet:      push< unpack ok
   packet:      push< ok refs/heads/master
   packet:      push< 0000
   packet:  sideband< 0000

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-01 15:11:57 -07:00
Documentation pkt-line: support tracing verbatim pack contents 2015-06-16 13:24:22 -07:00
block-sha1
builtin Merge branch 'jk/clone-dissociate' 2015-06-11 09:29:52 -07:00
compat Merge branch 'nd/untracked-cache' 2015-05-26 13:24:46 -07:00
contrib Merge branch 'tb/complete-sequencing' 2015-06-11 09:29:59 -07:00
ewah ewah: add convenient wrapper ewah_serialize_strbuf() 2015-03-12 13:45:16 -07:00
git-gui git-gui 0.20.0 2015-04-18 18:35:48 -07:00
gitk-git Merge branch 'master' of git://ozlabs.org/~paulus/gitk 2015-03-24 16:10:37 -07:00
gitweb gitweb: hack around CGI's list-context param() handling 2014-11-18 11:23:10 -08:00
mergetools mergetools: add winmerge as a builtin tool 2015-05-20 13:13:44 -07:00
perl Merge branch 'ew/svn-maint-fixes' into maint 2015-03-06 14:57:55 -08:00
po git-gui: sv.po: Update Swedish translation (547t0f0u) 2015-04-18 12:03:50 +01:00
ppc
t pkt-line: support tracing verbatim pack contents 2015-06-16 13:24:22 -07:00
templates Merge branch 'nd/multiple-work-trees' 2015-05-11 14:23:39 -07:00
vcs-svn
xdiff git-merge-file: do not add LF at EOF while applying unrelated change 2014-06-30 14:07:58 -07:00
.gitattributes
.gitignore t7063: tests for untracked cache 2015-03-12 13:45:18 -07:00
.mailmap Update mailmap to spell out "Alexander Kuleshov" 2015-03-27 12:58:18 -07:00
COPYING
GIT-VERSION-GEN Git 2.4.3 2015-06-05 12:22:33 -07:00
INSTALL git-imap-send: use libcurl for implementation 2014-11-10 09:17:27 -08:00
LGPL-2.1
Makefile Merge branch 'jk/skip-http-tests-under-no-curl' into maint 2015-06-05 12:00:28 -07:00
README doc: add 'everyday' to 'git help' 2014-10-10 16:02:26 -07:00
RelNotes Git 2.4.3 2015-06-05 12:22:33 -07:00
abspath.c abspath: convert absolute_path() to strbuf 2014-08-26 11:06:06 -07:00
aclocal.m4
advice.c standardize usage info string format 2015-01-14 09:32:04 -08:00
advice.h
alias.c alias.c: replace `git_config()` with `git_config_get_string()` 2014-08-07 13:33:29 -07:00
alloc.c alloc: factor out commit index 2014-07-28 10:14:33 -07:00
archive-tar.c Revert "archive: honor tar.umask even for pax headers" 2014-10-20 12:04:46 -07:00
archive-zip.c Merge branch 'bc/object-id' 2015-05-05 21:00:23 -07:00
archive.c Merge branch 'bc/object-id' 2015-05-05 21:00:23 -07:00
archive.h
argv-array.c argv-array: drop "detach" code 2014-05-15 09:49:12 -07:00
argv-array.h argv-array: drop "detach" code 2014-05-15 09:49:12 -07:00
attr.c Merge branch 'pt/xdg-config-path' into maint 2015-06-05 12:00:04 -07:00
attr.h
base85.c
bisect.c register_ref(): rewrite to take an object_id argument 2015-05-25 12:19:28 -07:00
bisect.h
blob.c add object_as_type helper for casting objects 2014-07-28 10:14:33 -07:00
blob.h
branch.c ref_transaction_update(): remove "have_old" parameter 2015-02-17 11:22:50 -08:00
branch.h
builtin.h trailer: add interpret-trailers command 2014-10-13 13:55:27 -07:00
bulk-checkin.c Merge branch 'bc/object-id' 2015-05-05 21:00:23 -07:00
bulk-checkin.h cleanups: ensure that git-compat-util.h is included first 2014-09-15 12:05:14 -07:00
bundle.c bundle.c: fix memory leak 2015-03-10 20:53:52 -07:00
bundle.h
cache-tree.c Merge branch 'jk/cache-tree-protect-from-broken-libgit2' 2014-11-06 10:51:35 -08:00
cache-tree.h Merge branch 'dt/cache-tree-repair' 2014-09-11 10:33:32 -07:00
cache.h Merge branch 'pt/xdg-config-path' into maint 2015-06-05 12:00:04 -07:00
check-builtins.sh check-builtins: strip executable suffix $X when enumerating builtins 2015-02-05 12:03:27 -08:00
check-racy.c
check_bindir check_bindir: avoid "test <cond> -a/-o <cond>" 2014-06-09 14:47:06 -07:00
color.c parse_color: fix return value for numeric color values 0-8 2015-01-20 15:56:03 -08:00
color.h parse_color: recognize "no$foo" to clear the $foo attribute 2014-11-20 12:42:55 -08:00
column.c use child_process_init() to initialize struct child_process variables 2014-10-28 14:56:17 -07:00
column.h
combine-diff.c Merge branch 'jk/color-diff-plain-is-context' 2015-06-11 09:29:53 -07:00
command-list.txt command-list.txt: drop the "common" tag 2015-05-21 13:03:37 -07:00
commit-slab.h use REALLOC_ARRAY for changing the allocation size of arrays 2014-09-18 09:13:42 -07:00
commit.c Merge branch 'jk/squelch-missing-link-warning-for-unreachable' 2015-06-11 09:29:59 -07:00
commit.h Merge branch 'jk/squelch-missing-link-warning-for-unreachable' 2015-06-11 09:29:59 -07:00
config.c Merge branch 'jk/diagnose-config-mmap-failure' 2015-06-11 09:29:55 -07:00
config.mak.in
config.mak.uname strbuf_getwholeline: use getdelim if it is available 2015-04-16 08:15:05 -07:00
configure.ac configure: support HAVE_BSD_SYSCTL option 2015-03-10 15:13:25 -07:00
connect.c Merge branch 'bc/connect-plink' into maint 2015-06-05 12:00:11 -07:00
connect.h
connected.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
connected.h
convert.c filter_buffer_or_fd(): ignore EPIPE 2015-05-20 10:19:12 -07:00
convert.h convert: stream from fd to required clean filter to reduce used address space 2014-08-28 10:25:15 -07:00
copy.c copy.c: make copy_fd() report its status silently 2015-05-19 14:48:54 -07:00
credential-cache--daemon.c credential-cache: close stderr in daemon process 2014-09-16 11:11:58 -07:00
credential-cache.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
credential-store.c Merge branch 'pt/xdg-config-path' into maint 2015-06-05 12:00:04 -07:00
credential.c Merge branch 'jk/credential-quit' 2014-12-22 12:27:20 -08:00
credential.h credential: let helpers tell us to quit 2014-12-04 10:11:12 -08:00
csum-file.c sha1fd_check: die when we cannot open the file 2015-03-19 13:35:15 -07:00
csum-file.h Merge branch 'jk/pack-bitmap' 2014-12-12 14:31:42 -08:00
ctype.c kwset: use unsigned char to store values with high-bit set 2015-03-02 12:32:24 -08:00
daemon.c Merge branch 'jc/daemon-no-ipv6-for-2.4.1' 2015-05-11 14:23:53 -07:00
date.c Merge branch 'jc/epochtime-wo-tz' into maint-2.3 2015-05-11 14:33:58 -07:00
decorate.c hashmap: factor out getting a hash code from a SHA1 2014-07-07 13:56:24 -07:00
decorate.h
delta.h comments: fix misuses of "nor" 2014-03-31 15:29:27 -07:00
diff-delta.c
diff-lib.c Merge branch 'nd/diff-i-t-a' 2015-05-19 13:17:49 -07:00
diff-no-index.c diff-no-index: align D/F handling with that of normal Git 2015-03-26 14:08:43 -07:00
diff.c Merge branch 'jk/color-diff-plain-is-context' 2015-06-11 09:29:53 -07:00
diff.h Merge branch 'jk/color-diff-plain-is-context' 2015-06-11 09:29:53 -07:00
diffcore-break.c diff -B -M: fix output for "copy and then rewrite" case 2014-10-23 16:17:09 -07:00
diffcore-delta.c
diffcore-order.c Merge branch 'nd/no-more-fnmatch' 2014-03-14 14:25:31 -07:00
diffcore-pickaxe.c pickaxe: simplify kwset loop in contains() 2014-03-24 15:13:17 -07:00
diffcore-rename.c Merge branch 'jk/diffcore-rename-duplicate' into maint 2015-03-13 22:56:08 -07:00
diffcore.h diff --stat: mark any file larger than core.bigfilethreshold binary 2014-08-18 10:16:45 -07:00
dir.c Merge branch 'jc/gitignore-precedence' into maint 2015-06-05 12:00:13 -07:00
dir.h Merge branch 'nd/untracked-cache' 2015-05-26 13:24:46 -07:00
editor.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
entry.c read-cache: mark updated entries for split index 2014-06-13 11:49:40 -07:00
environment.c Merge branch 'nd/multiple-work-trees' 2015-05-11 14:23:39 -07:00
exec_cmd.c Merge branch 'jk/git-no-more-argv0-path-munging' into maint 2015-05-26 13:49:18 -07:00
exec_cmd.h system_path(): always return free'able memory to the caller 2014-11-30 16:39:47 -08:00
fast-import.c Merge branch 'nd/multiple-work-trees' 2015-05-11 14:23:39 -07:00
fetch-pack.c Merge branch 'bc/object-id' 2015-06-05 12:17:37 -07:00
fetch-pack.h
fmt-merge-msg.h
fsck.c Merge branch 'js/fsck-tag-validation' 2014-12-22 12:27:41 -08:00
fsck.h fsck_object(): allow passing object data separately from the object itself 2014-09-10 13:54:21 -07:00
generate-cmdlist.perl generate-cmdlist: parse common group commands 2015-05-21 13:03:37 -07:00
gettext.c gettext.c: move get_preferred_languages() from http.c 2015-02-26 14:09:20 -08:00
gettext.h Merge branch 'ye/http-accept-language' 2015-03-06 15:02:25 -08:00
git-add--interactive.perl Merge branch 'ak/add-i-empty-candidates' into maint 2015-02-24 22:10:42 -08:00
git-am.sh Merge branch 'nd/multiple-work-trees' 2015-05-11 14:23:39 -07:00
git-archimport.perl
git-bisect.sh standardize usage info string format 2015-01-14 09:32:04 -08:00
git-compat-util.h Merge branch 'jk/diagnose-config-mmap-failure' 2015-06-11 09:29:55 -07:00
git-cvsexportcommit.perl
git-cvsimport.perl merge: deprecate 'git merge <message> HEAD <commit>' syntax 2015-04-29 13:28:10 -07:00
git-cvsserver.perl
git-difftool--helper.sh difftool--helper: add explicit exit statement 2014-11-21 11:27:53 -08:00
git-difftool.perl Merge branch 'da/difftool' 2014-10-29 10:09:35 -07:00
git-filter-branch.sh filter-branch: avoid passing commit message through sed 2015-04-29 10:01:04 -07:00
git-instaweb.sh git-instaweb: use @SHELL_PATH@ instead of /bin/sh 2015-03-10 15:10:35 -07:00
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh mergetool--lib: set IFS for difftool and mergetool 2015-05-20 13:13:42 -07:00
git-mergetool.sh mergetool--lib: set IFS for difftool and mergetool 2015-05-20 13:13:42 -07:00
git-p4.py Merge branch 'mt/p4-depotFile-at-version' 2015-06-11 09:29:55 -07:00
git-parse-remote.sh
git-pull.sh Merge branch 'pt/pull-log-n' into maint 2015-06-05 12:00:24 -07:00
git-quiltimport.sh
git-rebase--am.sh rebase: omit patch-identical commits with --fork-point 2014-07-16 13:07:40 -07:00
git-rebase--interactive.sh Merge branch 'mm/rebase-i-post-rewrite-exec' 2015-06-01 12:45:20 -07:00
git-rebase--merge.sh *.sh: avoid hardcoding $GIT_DIR/hooks/... 2014-12-01 11:00:13 -08:00
git-rebase.sh Merge branch 'jk/rebase-quiet-noop' into maint 2015-05-26 13:49:23 -07:00
git-relink.perl
git-remote-testgit.sh transport-helper: do not request symbolic refs to remote helpers 2015-01-21 22:46:59 -08:00
git-request-pull.sh Merge branch 'lt/request-pull' 2014-05-19 10:35:36 -07:00
git-send-email.perl Merge branch 'km/send-email-getopt-long-workarounds' 2015-03-03 14:37:03 -08:00
git-sh-i18n.sh
git-sh-setup.sh Merge branch 'nd/multiple-work-trees' 2015-05-11 14:23:39 -07:00
git-stash.sh Merge branch 'jk/stash-options' 2015-06-01 12:45:14 -07:00
git-submodule.sh Merge branch 'ps/submodule-sanitize-path-upon-add' into maint 2015-03-05 13:13:10 -08:00
git-svn.perl git-svn: lazy load some modules 2015-02-26 20:19:21 +00:00
git-web--browse.sh git-web--browse.sh: use the $( ... ) construct for command substitution 2014-04-23 15:17:02 -07:00
git.c Merge branch 'nd/multiple-work-trees' 2015-05-11 14:23:39 -07:00
git.rc
git.spec.in
gpg-interface.c Merge branch 'jc/push-cert' 2014-10-08 13:05:25 -07:00
gpg-interface.h gpg-interface: move parse_signature() to where it should be 2014-09-15 13:23:20 -07:00
graph.c Merge branch 'rs/graph-simplify' 2014-09-29 12:36:11 -07:00
graph.h
grep.c Merge branch 'jk/blame-commit-label' into maint 2015-02-24 22:09:54 -08:00
grep.h grep: add color.grep.matchcontext and color.grep.matchselected 2014-10-28 10:33:50 -07:00
hashmap.c hashmap: add string interning API 2014-07-07 13:56:38 -07:00
hashmap.h hashmap: add string interning API 2014-07-07 13:56:38 -07:00
help.c Merge branch 'bc/object-id' 2015-06-05 12:17:37 -07:00
help.h
hex.c define utility functions for object IDs 2015-03-13 22:43:11 -07:00
http-backend.c Merge branch 'bc/object-id' 2015-06-05 12:17:37 -07:00
http-fetch.c
http-push.c Merge branch 'sb/leaks' 2015-03-27 13:02:32 -07:00
http-walker.c http-walker: simplify process_alternates_response() using strbuf 2014-09-02 10:57:14 -07:00
http.c Merge branch 'ls/http-ssl-cipher-list' 2015-05-22 12:41:45 -07:00
http.h http.c: make finish_active_slot() and handle_curl_result() static 2015-01-15 11:00:52 -08:00
ident.c Merge branch 'jk/commit-author-parsing' 2014-09-19 11:38:33 -07:00
imap-send.c imap-send: use cURL automatically when NO_OPENSSL defined 2015-03-10 15:19:05 -07:00
khash.h use REALLOC_ARRAY for changing the allocation size of arrays 2014-09-18 09:13:42 -07:00
kwset.c kwset: use unsigned char to store values with high-bit set 2015-03-02 12:32:24 -08:00
kwset.h kwset: use unsigned char to store values with high-bit set 2015-03-02 12:32:24 -08:00
levenshtein.c
levenshtein.h
line-log.c Merge branch 'jk/color-diff-plain-is-context' 2015-06-11 09:29:53 -07:00
line-log.h line-log.c: make line_log_data_init() static 2015-01-15 11:05:47 -08:00
line-range.c
line-range.h
list-objects.c Merge branch 'jk/squelch-missing-link-warning-for-unreachable' 2015-06-11 09:29:59 -07:00
list-objects.h
ll-merge.c ll-merge.c: refactor `read_merge_config()` to use `git_config_string()` 2014-08-13 12:36:21 -07:00
ll-merge.h
lockfile.c Merge branch 'jc/ignore-epipe-in-filter' 2015-05-22 12:41:57 -07:00
lockfile.h lockfile: allow file locking to be retried with a timeout 2015-05-14 14:51:08 -07:00
log-tree.c add_ref_decoration(): convert local variable original_sha1 to object_id 2015-05-25 12:19:34 -07:00
log-tree.h Merge branch 'jn/parse-config-slot' 2014-10-20 12:23:48 -07:00
mailmap.c mailmap: use higher level string list functions 2014-12-04 15:10:21 -08:00
mailmap.h
match-trees.c use xstrfmt to replace xmalloc + sprintf 2014-06-19 15:20:54 -07:00
merge-blobs.c merge-blobs.c: fix a memleak 2015-03-23 11:12:58 -07:00
merge-blobs.h
merge-recursive.c use file_exists() to check if a file exists in the worktree 2015-05-20 13:49:10 -07:00
merge-recursive.h
merge.c lockfile.h: extract new header file for the functions in lockfile.c 2014-10-01 13:56:14 -07:00
mergesort.c
mergesort.h
name-hash.c hashmap: add simplified hashmap_get_from_hash() API 2014-07-07 13:56:35 -07:00
notes-cache.c Merge branch 'jk/commit-buffer-length' 2014-07-02 12:53:02 -07:00
notes-cache.h
notes-merge.c Merge branch 'nd/multiple-work-trees' 2015-05-11 14:23:39 -07:00
notes-merge.h
notes-utils.c use strbuf_complete_line() for adding a newline if needed 2014-12-12 11:23:45 -08:00
notes-utils.h commit_tree: take a pointer/len pair rather than a const strbuf 2014-06-12 10:29:41 -07:00
notes.c string_list_add_one_ref(): rewrite to take an object_id argument 2015-05-25 12:19:34 -07:00
notes.h
object.c Merge branch 'jk/type-from-string-gently' into maint 2015-05-13 14:05:54 -07:00
object.h drop add_object_array_with_mode 2014-10-19 15:28:30 -07:00
pack-bitmap-write.c Merge branch 'jk/pack-bitmap' 2014-12-12 14:31:42 -08:00
pack-bitmap.c Merge branch 'rs/plug-leak-in-pack-bitmaps' into maint 2015-06-05 12:00:22 -07:00
pack-bitmap.h pack-bitmap.c: make pack_bitmap_filename() static 2015-01-15 11:04:10 -08:00
pack-check.c
pack-objects.c use REALLOC_ARRAY for changing the allocation size of arrays 2014-09-18 09:13:42 -07:00
pack-objects.h
pack-revindex.c pack-revindex.c: rearrange xcalloc arguments 2014-05-27 14:02:45 -07:00
pack-revindex.h
pack-write.c pack-write: simplify index_pack_lockfile using skip_prefix() and xstrfmt() 2014-09-02 10:37:24 -07:00
pack.h
pager.c Merge branch 'jk/decimal-width-for-uintmax' into maint 2015-03-05 13:12:59 -08:00
parse-options-cb.c
parse-options.c Merge branch 'jc/parseopt-verify-short-name' 2014-09-19 11:38:38 -07:00
parse-options.h Merge branch 'iu/fix-parse-options-h-comment' into maint 2015-04-21 12:12:20 -07:00
patch-delta.c
patch-ids.c
patch-ids.h
path.c Merge branch 'pt/xdg-config-path' into maint 2015-06-05 12:00:04 -07:00
pathspec.c Merge branch 'maint' 2014-07-21 12:35:39 -07:00
pathspec.h
pkt-line.c pkt-line: show packets in async processes as "sideband" 2015-09-01 15:11:57 -07:00
pkt-line.h comments: fix misuses of "nor" 2014-03-31 15:29:27 -07:00
preload-index.c cache.h: rename cache_def_free to cache_def_clear 2014-07-13 10:12:37 -07:00
pretty.c Merge branch 'rs/simple-cleanups' into maint 2015-03-06 14:57:57 -08:00
prio-queue.c prio-queue: make output stable with respect to insertion 2014-07-15 11:02:54 -07:00
prio-queue.h prio-queue: make output stable with respect to insertion 2014-07-15 11:02:54 -07:00
progress.c progress: treat "no terminal" as being in the foreground 2015-05-19 09:35:14 -07:00
progress.h
prompt.c prompt.c: remove git_getpass() nobody uses 2015-01-15 11:02:06 -08:00
prompt.h prompt.c: remove git_getpass() nobody uses 2015-01-15 11:02:06 -08:00
quote.c ls-tree: remove path filtering logic in show_tree 2014-12-01 11:32:34 -08:00
quote.h ls-tree: remove path filtering logic in show_tree 2014-12-01 11:32:34 -08:00
reachable.c add_one_ref(): rewrite to take an object_id argument 2015-05-25 12:19:34 -07:00
reachable.h pack-objects: match prune logic for discarding objects 2014-10-16 10:10:43 -07:00
read-cache.c Merge branch 'jk/diagnose-config-mmap-failure' 2015-06-11 09:29:55 -07:00
reflog-walk.c refs.c: change resolve_ref_unsafe reading argument to be a flags field 2014-10-15 10:47:24 -07:00
reflog-walk.h stylefix: asterisks stick to the variable, not the type 2014-09-02 11:33:32 -07:00
refs.c Merge branch 'mh/verify-lock-error-report' 2015-06-11 09:29:54 -07:00
refs.h each_ref_fn_adapter(): remove adapter 2015-05-25 12:19:39 -07:00
remote-curl.c Merge branch 'rs/deflate-init-cleanup' into maint 2015-03-23 11:23:38 -07:00
remote-testsvn.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
remote.c Merge branch 'bc/object-id' 2015-06-05 12:17:37 -07:00
remote.h remote.c: add branch_get_push 2015-05-22 09:33:08 -07:00
replace_object.c register_replace_ref(): rewrite to take an object_id argument 2015-05-25 12:19:35 -07:00
rerere.c Merge branch 'jk/rerere-forget-check-enabled' into maint 2015-06-05 12:00:25 -07:00
rerere.h rerere.h: mark string for translation 2014-09-15 11:29:46 -07:00
resolve-undo.c resolve-undo: be specific what part of the index has changed 2014-06-13 11:49:38 -07:00
resolve-undo.h
revision.c Merge branch 'jk/squelch-missing-link-warning-for-unreachable' 2015-06-11 09:29:59 -07:00
revision.h Merge branch 'jc/unused-symbols' 2015-02-11 13:44:07 -08:00
run-command.c run-command: provide in_async query function 2015-09-01 15:11:53 -07:00
run-command.h run-command: provide in_async query function 2015-09-01 15:11:53 -07:00
send-pack.c Merge branch 'bc/object-id' 2015-05-05 21:00:23 -07:00
send-pack.h send-pack.c: add --atomic command line argument 2015-01-07 19:56:44 -08:00
sequencer.c Merge branch 'mg/sequencer-commit-messages-always-verbatim' 2015-03-17 16:01:32 -07:00
sequencer.h Merge branch 'jc/conflict-hint' into cc/interpret-trailers-more 2014-11-10 09:56:39 -08:00
server-info.c add_info_ref(): rewrite to take an object_id argument 2015-05-25 12:19:35 -07:00
setup.c Merge branch 'nd/dwim-wildcards-as-pathspecs' 2015-05-19 13:17:58 -07:00
sh-i18n--envsubst.c use REALLOC_ARRAY for changing the allocation size of arrays 2014-09-18 09:13:42 -07:00
sha1-array.c
sha1-array.h
sha1-lookup.c sha1-lookup: handle duplicates in sha1_pos() 2014-10-01 13:32:19 -07:00
sha1-lookup.h
sha1_file.c Merge branch 'jk/diagnose-config-mmap-failure' 2015-06-11 09:29:55 -07:00
sha1_name.c Merge branch 'bc/object-id' 2015-06-05 12:17:37 -07:00
shallow.c shallow: rewrite functions to take object_id arguments 2015-05-25 12:19:36 -07:00
shell.c use xstrfmt to replace xmalloc + strcpy/strcat 2014-06-19 15:20:54 -07:00
shortlog.h
show-index.c
sideband.c sideband.c: do not use ANSI control sequence on non-terminal 2014-06-02 11:02:27 -07:00
sideband.h
sigchain.c cleanups: ensure that git-compat-util.h is included first 2014-09-15 12:05:14 -07:00
sigchain.h
split-index.c ewah: add convenient wrapper ewah_serialize_strbuf() 2015-03-12 13:45:16 -07:00
split-index.h split-index: the reading part 2014-06-13 11:49:40 -07:00
strbuf.c strbuf_getwholeline: use getdelim if it is available 2015-04-16 08:15:05 -07:00
strbuf.h strbuf_addch: avoid calling strbuf_grow 2015-04-16 08:15:05 -07:00
streaming.c Merge branch 'sb/plug-streaming-leak' 2015-04-14 11:49:09 -07:00
streaming.h
string-list.c Merge branch 'sb/string-list' 2014-12-22 12:27:30 -08:00
string-list.h Merge branch 'sb/string-list' 2014-12-22 12:27:30 -08:00
submodule.c Merge branch 'bc/object-id' 2015-06-05 12:17:37 -07:00
submodule.h
symlinks.c symlinks: remove PATH_MAX limitation 2014-07-07 11:22:42 -07:00
tag.c gpg-interface: move parse_signature() to where it should be 2014-09-15 13:23:20 -07:00
tag.h gpg-interface: move parse_signature() to where it should be 2014-09-15 13:23:20 -07:00
tar.h
test-chmtime.c comments: fix misuses of "nor" 2014-03-31 15:29:27 -07:00
test-config.c add tests for `git_config_get_string_const()` 2014-08-07 11:41:20 -07:00
test-ctype.c
test-date.c date: use strbufs in date-formatting functions 2014-08-27 10:32:56 -07:00
test-delta.c
test-dump-cache-tree.c Merge branch 'dt/cache-tree-repair' 2014-09-11 10:33:32 -07:00
test-dump-split-index.c t1700: new tests for split-index mode 2014-06-13 11:49:42 -07:00
test-dump-untracked-cache.c untracked cache: guard and disable on system changes 2015-03-12 13:45:18 -07:00
test-genrandom.c
test-hashmap.c Merge branch 'js/test-hashmap-squelch-gcc' 2014-12-22 12:27:46 -08:00
test-index-version.c
test-line-buffer.c
test-match-trees.c
test-mergesort.c
test-mktemp.c
test-parse-options.c parse-options: remove unused OPT_SET_PTR 2014-03-31 13:01:19 -07:00
test-path-utils.c
test-prio-queue.c
test-read-cache.c
test-regex.c cleanups: ensure that git-compat-util.h is included first 2014-09-15 12:05:14 -07:00
test-revision-walking.c
test-run-command.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
test-scrap-cache-tree.c lockfile.h: extract new header file for the functions in lockfile.c 2014-10-01 13:56:14 -07:00
test-sha1-array.c sha1-array: add test-sha1-array and basic tests 2014-10-01 13:32:10 -07:00
test-sha1.c
test-sha1.sh
test-sigchain.c cleanups: ensure that git-compat-util.h is included first 2014-09-15 12:05:14 -07:00
test-string-list.c
test-subprocess.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
test-svn-fe.c
test-urlmatch-normalization.c
test-wildmatch.c
thread-utils.c thread-utils.c: detect CPU count on older BSD-like systems 2015-03-10 15:13:28 -07:00
thread-utils.h pack-objects: set number of threads before checking and warning 2014-10-13 12:53:46 -07:00
trace.c pkt-line: support tracing verbatim pack contents 2015-06-16 13:24:22 -07:00
trace.h pkt-line: support tracing verbatim pack contents 2015-06-16 13:24:22 -07:00
trailer.c trailer: use capture_command 2015-03-22 21:39:18 -07:00
trailer.h trailer: put all the processing together and print 2014-10-13 13:55:27 -07:00
transport-helper.c Merge branch 'jc/push-cert' into maint 2015-03-05 13:12:58 -08:00
transport.c write_one_ref(): rewrite to take an object_id argument 2015-05-25 12:19:36 -07:00
transport.h push.c: add an --atomic argument 2015-01-07 19:56:44 -08:00
tree-diff.c diff: convert struct combine_diff_path to object_id 2015-03-13 22:43:13 -07:00
tree-walk.c tree-walk: learn get_tree_entry_follow_symlinks 2015-05-20 13:45:49 -07:00
tree-walk.h tree-walk: learn get_tree_entry_follow_symlinks 2015-05-20 13:45:49 -07:00
tree.c Merge branch 'jk/squelch-missing-link-warning-for-unreachable' 2015-06-11 09:29:59 -07:00
tree.h Merge branch 'jk/squelch-missing-link-warning-for-unreachable' 2015-06-11 09:29:59 -07:00
unicode_width.h Update of unicode_width.h to Unicode Version 7.0 2014-06-18 10:53:45 -07:00
unimplemented.sh
unix-socket.c Merge branch 'rs/strbuf-getcwd' 2014-09-02 13:28:44 -07:00
unix-socket.h
unpack-trees.c untracked cache: invalidate at index addition or removal 2015-03-12 13:45:16 -07:00
unpack-trees.h
update_unicode.sh update_unicode.sh: delete the command group 2014-12-22 10:03:37 -08:00
upload-pack.c Merge branch 'bc/object-id' 2015-06-05 12:17:37 -07:00
url.c use strbuf_addch for adding single characters 2014-07-10 14:06:46 -07:00
url.h
urlmatch.c urlmatch.c: make match_urls() static 2015-01-15 11:05:48 -08:00
urlmatch.h urlmatch.c: make match_urls() static 2015-01-15 11:05:48 -08:00
usage.c
userdiff.c do not include the same header twice 2015-02-13 13:16:12 -08:00
userdiff.h
utf8.c utf8-bom: introduce skip_utf8_bom() helper 2015-04-16 11:35:06 -07:00
utf8.h utf8-bom: introduce skip_utf8_bom() helper 2015-04-16 11:35:06 -07:00
varint.c cleanups: ensure that git-compat-util.h is included first 2014-09-15 12:05:14 -07:00
varint.h cleanups: ensure that git-compat-util.h is included first 2014-09-15 12:05:14 -07:00
version.c
version.h
versioncmp.c versionsort: support reorder prerelease suffixes 2015-02-27 13:38:22 -08:00
walker.c mark_complete(): rewrite to take an object_id argument 2015-05-25 12:19:37 -07:00
walker.h
wildmatch.c
wildmatch.h
wrap-for-bin.sh
wrapper.c Merge branch 'nd/multiple-work-trees' 2015-05-11 14:23:39 -07:00
write_or_die.c refs: write packed_refs file using stdio 2014-09-10 10:58:32 -07:00
ws.c use strchrnul() in place of strchr() and strlen() 2014-03-10 08:35:30 -07:00
wt-status.c Merge branch 'jk/at-push-sha1' 2015-06-05 12:17:36 -07:00
wt-status.h wt-status: refactor detached HEAD analysis 2015-03-06 11:52:35 -08:00
xdiff-interface.c
xdiff-interface.h
zlib.c zlib: initialize git_zstream in git_deflate_init{,_gzip,_raw} 2015-03-05 15:46:03 -08:00

////////////////////////////////////////////////////////////////

	Git - the stupid content tracker

////////////////////////////////////////////////////////////////

"git" can mean anything, 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

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.

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).

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

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.