A fork of Git containing Microsoft-specific patches.
Перейти к файлу
Linus Torvalds 8d2dfc49b1 process_{tree,blob}: show objects without buffering
Here's a less trivial thing, and slightly more dubious one.

I was looking at that "struct object_array objects", and wondering why we
do that. I have honestly totally forgotten. Why not just call the "show()"
function as we encounter the objects? Rather than add the objects to the
object_array, and then at the very end going through the array and doing a
'show' on all, just do things more incrementally.

Now, there are possible downsides to this:

 - the "buffer using object_array" _can_ in theory result in at least
   better I-cache usage (two tight loops rather than one more spread out
   one). I don't think this is a real issue, but in theory..

 - this _does_ change the order of the objects printed. Instead of doing a
   "process_tree(revs, commit->tree, &objects, NULL, "");" in the loop
   over the commits (which puts all the root trees _first_ in the object
   list, this patch just adds them to the list of pending objects, and
   then we'll traverse them in that order (and thus show each root tree
   object together with the objects we discover under it)

   I _think_ the new ordering actually makes more sense, but the object
   ordering is actually a subtle thing when it comes to packing
   efficiency, so any change in order is going to have implications for
   packing. Good or bad, I dunno.

 - There may be some reason why we did it that odd way with the object
   array, that I have simply forgotten.

Anyway, now that we don't buffer up the objects before showing them
that may actually result in lower memory usage during that whole
traverse_commit_list() phase.

This is seriously not very deeply tested. It makes sense to me, it seems
to pass all the tests, it looks ok, but...

Does anybody remember why we did that "object_array" thing? It used to be
an "object_list" a long long time ago, but got changed into the array due
to better memory usage patterns (those linked lists of obejcts are
horrible from a memory allocation standpoint). But I wonder why we didn't
do this back then. Maybe there's a reason for it.

Or maybe there _used_ to be a reason, and no longer is.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-04-12 17:28:31 -07:00
Documentation Documentation: clarify .gitattributes search 2009-04-07 21:58:25 -07:00
arm War on whitespace 2007-06-07 00:04:01 -07:00
compat compat/mingw.c: Teach mingw_rename() to replace read-only files 2008-11-23 19:26:42 -08:00
contrib Fix bash completion in path with spaces 2009-03-30 09:07:03 -07:00
git-gui Merge branch 'maint' of git://repo.or.cz/git-gui into maint 2008-11-01 22:31:14 -07:00
gitk-git Merge git://git.kernel.org/pub/scm/gitk/gitk 2008-08-16 23:21:07 -07:00
gitweb GIT 1.6.0.6 2008-12-19 19:27:35 -08:00
mozilla-sha1 War on whitespace 2007-06-07 00:04:01 -07:00
perl Git.pm: call Error::Simple() properly 2009-01-13 22:52:35 -08:00
ppc War on whitespace 2007-06-07 00:04:01 -07:00
t Merge branch 'ks/maint-1.6.0-mailinfo-folded' into maint-1.6.0 2009-03-12 21:48:43 -07:00
templates Fix permission bits on sources checked out with an overtight umask 2008-09-09 13:32:32 -07:00
xdiff xdiff: give up scanning similar lines early 2008-12-02 23:45:37 -08:00
.gitattributes Define the project whitespace policy 2008-02-11 13:23:15 -08:00
.gitignore Merge branch 'dr/ceiling' 2008-07-07 02:17:23 -07:00
.mailmap .mailmap update 2008-07-19 11:25:51 -07:00
COPYING Add a COPYING notice, making it explicit that the license is GPLv2. 2005-04-11 10:18:16 -07:00
GIT-VERSION-GEN GIT 1.6.0.2 2008-09-12 16:18:47 -07:00
INSTALL Fix typos in INSTALL 2008-08-04 21:52:08 -07:00
Makefile add test-dump-cache-tree in Makefile 2009-02-03 22:11:44 -08:00
README README: tutorial.txt is now called gittutorial.txt 2009-01-06 22:12:07 -08:00
RelNotes GIT 1.6.0.6 2008-12-19 19:27:35 -08:00
abspath.c Allow add_path() to add non-existent directories to the path 2008-07-25 17:41:13 -07:00
alias.c Move split_cmdline() to alias.c 2008-06-30 22:45:50 -07:00
alloc.c Clean up object creation to use more common code 2007-04-16 23:36:16 -07:00
archive-tar.c archive: remove unused headers 2008-07-19 11:17:43 -07:00
archive-zip.c archive: remove unused headers 2008-07-19 11:17:43 -07:00
archive.c git-archive: work in bare repos 2008-10-26 16:19:59 -07:00
archive.h archive: declare struct archiver where it's needed 2008-07-25 17:21:04 -07:00
attr.c Fix buffer overflow in prepare_attr_stack 2008-07-16 14:05:50 -07:00
attr.h Fix funny types used in attribute value representation 2007-04-18 16:17:13 -07:00
base85.c decode_85(): fix missing return. 2007-05-30 15:03:50 -07:00
blob.c Clean up object creation to use more common code 2007-04-16 23:36:16 -07:00
blob.h [PATCH] Anal retentive 'const unsigned char *sha1' 2005-06-08 13:04:53 -07:00
branch.c Fix "checkout --track -b newbranch" on detached HEAD 2008-10-17 14:35:06 -07:00
branch.h branch: optionally setup branch.*.merge from upstream local branches 2008-02-19 21:17:45 -08:00
builtin-add.c Merge branch 'jc/add-addremove' 2008-07-20 17:53:17 -07:00
builtin-annotate.c War on whitespace 2007-06-07 00:04:01 -07:00
builtin-apply.c apply: fix access to an uninitialized mode variable, found by valgrind 2009-02-03 22:04:31 -08:00
builtin-archive.c git-archive: work in bare repos 2008-10-26 16:19:59 -07:00
builtin-blame.c builtin-blame: Fix blame -C -C with submodules. 2008-10-05 23:49:55 -07:00
builtin-branch.c Fix git branch -m for symrefs. 2008-10-26 14:42:57 -07:00
builtin-bundle.c Start conforming code to "git subcmd" style 2008-08-30 13:50:48 -07:00
builtin-cat-file.c Start conforming code to "git subcmd" style 2008-08-30 13:50:48 -07:00
builtin-check-attr.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-check-ref-format.c Start conforming code to "git subcmd" style 2008-08-30 13:50:48 -07:00
builtin-checkout-index.c Start conforming code to "git subcmd" style part 2 2008-09-09 08:41:29 -07:00
builtin-checkout.c git checkout: don't warn about unborn branch if -f is already passed 2008-11-27 18:35:28 -08:00
builtin-clean.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-clone.c builtin-clone: fix typo 2008-09-19 22:05:31 -07:00
builtin-commit-tree.c Start conforming code to "git subcmd" style part 2 2008-09-09 08:41:29 -07:00
builtin-commit.c commit: abort commit if interactive add failed 2009-04-05 00:37:32 -07:00
builtin-config.c Use git_pathdup instead of xstrdup(git_path(...)) 2008-10-30 17:52:24 -07:00
builtin-count-objects.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-describe.c Merge branch 'sb/dashless' 2008-07-16 17:22:50 -07:00
builtin-diff-files.c diff/diff-files: do not use --cc too aggressively 2008-09-18 10:49:03 -07:00
builtin-diff-index.c diff*: fix worktree setup 2008-08-28 20:50:10 -07:00
builtin-diff-tree.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-diff.c "git diff <tree>{3,}": do not reverse order of arguments 2008-12-07 14:57:57 -08:00
builtin-fast-export.c fast-export: ensure we traverse commits in topological order 2009-02-11 18:30:17 -08:00
builtin-fetch--tool.c Error out when user doesn't have access permission to the repository 2007-11-30 13:10:11 -08:00
builtin-fetch-pack.c fetch-pack: Avoid memcpy() with src==dst 2008-12-07 02:41:45 -08:00
builtin-fetch.c Fix fetch/pull when run without --update-head-ok 2008-10-13 10:46:03 -07:00
builtin-fmt-merge-msg.c Merge branch 'sb/dashless' 2008-07-16 17:22:50 -07:00
builtin-for-each-ref.c Use strchrnul() instead of strchr() plus manual workaround 2008-09-29 08:56:26 -07:00
builtin-fsck.c builtin-fsck: fix off by one head count 2009-01-17 22:37:41 -08:00
builtin-gc.c builtin-gc.c: use new pack_keep bitfield to detect .keep file existence 2008-11-12 10:28:14 -08:00
builtin-grep.c grep: pass -I (ignore binary) down to external grep 2009-02-02 10:58:20 -08:00
builtin-http-fetch.c Start conforming code to "git subcmd" style part 2 2008-09-09 08:41:29 -07:00
builtin-init-db.c git init: --bare/--shared overrides system/global config 2008-10-08 07:18:44 -07:00
builtin-log.c git-show: do not segfault when showing a bad tag 2008-12-15 01:29:44 -08:00
builtin-ls-files.c Teach ls-files --with-tree=<tree> to work with options other than -c 2008-11-16 00:15:50 -08:00
builtin-ls-remote.c git ls-remote: make usage string match manpage 2008-11-11 13:24:00 -08:00
builtin-ls-tree.c Add output flushing before fork() 2008-08-04 21:46:42 -07:00
builtin-mailinfo.c mailinfo: 'From:' header should be unfold as well 2009-01-12 15:22:11 -08:00
builtin-mailsplit.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
builtin-merge-base.c merge-base: die with an error message if not passed a commit ref 2008-07-28 23:02:12 -07:00
builtin-merge-file.c Merge branch 'maint' 2008-03-14 00:16:42 -07:00
builtin-merge-ours.c git-merge-ours: make it a builtin. 2007-11-22 14:21:59 -08:00
builtin-merge-recursive.c Use remove_path from dir.c instead of own implementation 2008-09-29 08:37:07 -07:00
builtin-merge.c builtin-merge.c: allocate correct amount of memory 2008-10-09 08:13:29 -07:00
builtin-mv.c builtin-mv.c: check for unversionned files before looking at the destination. 2009-02-04 11:07:42 -08:00
builtin-name-rev.c Merge branch 'maint' 2008-08-03 14:14:10 -07:00
builtin-pack-objects.c process_{tree,blob}: show objects without buffering 2009-04-12 17:28:31 -07:00
builtin-pack-refs.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-prune-packed.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-prune.c builtin-prune.c: prune temporary packs in <object_dir>/pack directory 2008-09-23 01:53:07 -07:00
builtin-push.c git-push.txt: Describe --repo option in more detail 2008-10-08 07:15:53 -07:00
builtin-read-tree.c checkout: Fix "initial checkout" detection 2008-11-12 14:16:50 -08:00
builtin-reflog.c Use git_pathdup instead of xstrdup(git_path(...)) 2008-10-30 17:52:24 -07:00
builtin-remote.c Fix non-literal format in printf-style calls 2008-11-11 14:43:59 -08:00
builtin-rerere.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
builtin-reset.c Fix git branch -m for symrefs. 2008-10-26 14:42:57 -07:00
builtin-rev-list.c process_{tree,blob}: show objects without buffering 2009-04-12 17:28:31 -07:00
builtin-rev-parse.c rev-parse: Add support for the ^! and ^@ syntax 2008-07-27 14:14:01 -07:00
builtin-revert.c Merge branch 'ar/maint-mksnpath' into maint 2008-11-08 16:13:19 -08:00
builtin-rm.c git rm: refresh index before up-to-date check 2008-10-08 07:04:44 -07:00
builtin-send-pack.c Merge branch 'cb/maint-update-ref-fix' into maint 2008-11-08 17:32:49 -08:00
builtin-shortlog.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
builtin-show-branch.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-show-ref.c 'git foo' program identifies itself without dash in die() messages 2008-08-31 09:39:19 -07:00
builtin-stripspace.c Clean up stripspace a bit, use strbuf even more. 2007-09-27 00:33:33 -07:00
builtin-symbolic-ref.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-tag.c tag: delete TAG_EDITMSG only on successful tag 2008-12-07 02:53:45 -08:00
builtin-tar-tree.c Cosmetical command name fix 2008-09-15 23:11:35 -07:00
builtin-unpack-objects.c Start conforming code to "git subcmd" style part 3 2008-09-15 23:11:35 -07:00
builtin-update-index.c Start conforming code to "git subcmd" style part 3 2008-09-15 23:11:35 -07:00
builtin-update-ref.c Fix git update-ref --no-deref -d. 2008-10-26 14:44:25 -07:00
builtin-upload-archive.c archive: define MAX_ARGS where it's needed 2008-07-25 17:20:55 -07:00
builtin-verify-pack.c discard revindex data when pack list changes 2008-08-22 22:00:22 -07:00
builtin-verify-tag.c builtin-verify-tag: fix -v option parsing 2008-07-28 23:02:11 -07:00
builtin-write-tree.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin.h Allow pager of diff command be enabled/disabled 2008-07-23 11:14:47 -07:00
bundle.c Fix non-literal format in printf-style calls 2008-11-11 14:43:59 -08:00
bundle.h Move bundle specific stuff into bundle.[ch] 2007-09-19 03:22:30 -07:00
cache-tree.c cache-tree.c: make cache_tree_find() static 2008-07-16 08:50:27 -07:00
cache-tree.h cache-tree.c: make cache_tree_find() static 2008-07-16 08:50:27 -07:00
cache.h Clear the delta base cache during fast-import checkpoint 2009-02-10 15:30:59 -08:00
check-builtins.sh cherry is built-in, do not ship git-cherry.sh 2006-11-05 11:26:21 -08:00
check-racy.c ce_match_stat, run_diff_files: use symbolic constants for readability 2007-11-10 00:24:51 -08:00
check_bindir Move all dashed-form commands to libexecdir 2008-06-19 16:00:38 -07:00
color.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
color.h Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
combine-diff.c diff: Help "less" hide ^M from the output 2008-08-30 20:34:45 -07:00
command-list.txt Officially deprecate repo-config. 2008-01-17 22:52:40 -08:00
commit.c sort_in_topological_order(): avoid setting a commit flag 2008-08-01 23:14:22 -07:00
commit.h pretty=format: respect date format options 2008-08-29 00:14:29 -07:00
config.c Use git_pathdup instead of xstrdup(git_path(...)) 2008-10-30 17:52:24 -07:00
config.mak.in Move all dashed-form commands to libexecdir 2008-06-19 16:00:38 -07:00
configure.ac Consistency: Use "libcurl" instead of "cURL library" and "curl" 2008-06-15 13:35:10 -07:00
connect.c 'git foo' program identifies itself without dash in die() messages 2008-08-31 09:39:19 -07:00
convert.c Fixed text file auto-detection: treat EOF character 032 at the end of file as printable 2008-07-11 21:14:27 -07:00
copy.c copy.c: copy_fd - correctly report write errors 2008-04-22 21:21:08 -07:00
csum-file.c fix pread()'s short read in index-pack 2008-10-10 07:09:30 -07:00
csum-file.h fix pread()'s short read in index-pack 2008-10-10 07:09:30 -07:00
ctype.c ctype.c: protect tiny C preprocessor constants 2008-08-27 16:14:22 -07:00
daemon.c git-daemon: SysV needs the signal handler reinstated. 2008-08-12 15:41:08 -07:00
date.c date/time: do not get confused by fractional seconds 2008-11-13 09:06:58 -08:00
decorate.c decorate: allow const objects to be decorated 2008-08-20 13:30:49 -07:00
decorate.h decorate: allow const objects to be decorated 2008-08-20 13:30:49 -07:00
delta.h Support fetching the memory usage of a delta index 2007-07-12 14:32:35 -07:00
diff-delta.c fix style of a few comments in diff-delta.c 2007-12-18 15:22:28 -08:00
diff-lib.c Fix buffer overflow in git diff 2008-07-16 14:03:24 -07:00
diff-no-index.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
diff.c diff.c: output correct index lines for a split diff 2009-01-27 00:48:00 -08:00
diff.h diff --cumulative is a sub-option of --dirstat 2008-09-03 22:37:03 -07:00
diffcore-break.c rename: Break filepairs with different types. 2007-12-02 02:24:46 -08:00
diffcore-delta.c optimize diffcore-delta by sorting hash entries. 2007-10-04 00:05:36 -07:00
diffcore-order.c Use xmemdupz() in many places. 2007-09-18 17:42:17 -07:00
diffcore-pickaxe.c War on whitespace 2007-06-07 00:04:01 -07:00
diffcore-rename.c Add file delete/create info when we overflow rename_limit 2008-10-28 08:58:42 -07:00
diffcore.h Add reference for status letters in documentation. 2008-11-02 15:57:10 -08:00
dir.c Support "\" in non-wildcard exclusion entries 2009-02-12 11:36:43 -08:00
dir.h Add remove_path: a function to remove as much as possible of a path 2008-09-29 08:37:07 -07:00
editor.c editor.c: Libify launch_editor() 2008-07-25 17:09:38 -07:00
entry.c 'git foo' program identifies itself without dash in die() messages 2008-08-31 09:39:19 -07:00
environment.c Fix non-literal format in printf-style calls 2008-11-11 14:43:59 -08:00
exec_cmd.c Refactor, adding prepare_git_cmd(const char **argv) 2008-07-28 23:02:11 -07:00
exec_cmd.h Refactor, adding prepare_git_cmd(const char **argv) 2008-07-28 23:02:11 -07:00
fast-import.c Clear the delta base cache during fast-import checkpoint 2009-02-10 15:30:59 -08:00
fetch-pack.h Teach fetch-pack/upload-pack about --include-tag 2008-03-04 23:28:14 -08:00
fixup-builtins make remove-dashes: apply to scripts and programs as well, not just to builtins 2008-07-11 21:13:17 -07:00
fsck.c Fix non-literal format in printf-style calls 2008-11-11 14:43:59 -08:00
fsck.h add common fsck error printing function 2008-02-25 23:57:35 -08:00
generate-cmdlist.sh generate-cmdlist.sh: avoid selecting synopsis at wrong place 2008-11-30 18:16:32 -08:00
git-add--interactive.perl add -p: warn if only binary changes present 2008-10-26 16:20:24 -07:00
git-am.sh git-am: ignore --binary option 2008-08-16 02:32:36 -07:00
git-archimport.perl Make usage strings dash-less 2008-07-13 14:12:48 -07:00
git-bisect.sh bisect: fix another instance of eval'ed string 2009-02-27 14:30:34 -08:00
git-compat-util.h Merge branch 'mv/merge-in-c' 2008-07-15 19:09:46 -07:00
git-cvsexportcommit.perl Make usage strings dash-less 2008-07-13 14:12:48 -07:00
git-cvsimport.perl Merge branch 'maint' 2008-08-05 21:21:08 -07:00
git-cvsserver.perl cvsserver: Add cvs co -c support 2008-07-19 11:17:43 -07:00
git-filter-branch.sh filter-branch: be more helpful when an annotated tag changes 2008-08-08 16:19:51 -07:00
git-instaweb.sh Make usage strings dash-less 2008-07-13 14:12:48 -07:00
git-lost-found.sh Merge branch 'ph/parseopt-sh' 2007-11-17 21:39:37 -08:00
git-merge-octopus.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-merge-one-file.sh git-merge-one-file: fix longstanding stupid thinko 2008-03-18 22:17:17 -07:00
git-merge-resolve.sh Fixing comment in merge strategies 2007-08-30 17:18:22 -07:00
git-mergetool.sh git-mergetool: properly handle "git mergetool -- filename" 2008-12-19 19:10:58 -08:00
git-parse-remote.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-pull.sh pull: allow "git pull origin $something:$current_branch" into an unborn branch 2008-10-17 11:26:20 -07:00
git-quiltimport.sh Rename .git/rebase to .git/rebase-apply 2008-07-21 18:51:47 -07:00
git-rebase--interactive.sh Avoid spurious error messages on error mistakes. 2009-01-13 00:21:31 -08:00
git-rebase.sh Teach rebase -i to honor pre-rebase hook 2008-10-06 01:19:14 -07:00
git-relink.perl Make usage strings dash-less 2008-07-13 14:12:48 -07:00
git-repack.sh git-repack: use non-dashed update-server-info 2009-04-05 00:08:49 -07:00
git-request-pull.sh request-pull: make usage string match manpage 2008-11-17 02:27:18 -08:00
git-send-email.perl git-send-email: handle email address with quoted comma 2008-12-19 19:10:48 -08:00
git-sh-setup.sh Make usage strings dash-less 2008-07-13 14:12:48 -07:00
git-stash.sh git-stash.sh: fix flawed fix of invalid ref handling (commit da65e7c1) 2008-10-09 09:09:50 -07:00
git-submodule.sh git-submodule: Avoid printing a spurious message. 2008-11-11 13:48:04 -08:00
git-svn.perl git-svn: Make following parents atomic 2008-12-08 16:29:34 -08:00
git-web--browse.sh web--browse: use custom commands defined at config time 2008-03-14 00:31:06 -07:00
git.c maint: check return of split_cmdline to avoid bad config strings 2008-09-24 08:58:14 -07:00
git.spec.in Fixed broken git help -w when installing from RPM 2009-02-04 22:00:49 -08:00
graph.c git log --graph: print '*' for all commits, including merges 2008-06-06 11:56:43 -07:00
graph.h log --graph --left-right: show left/right information in place of '*' 2008-05-25 12:06:52 -07:00
grep.c Fix non-literal format in printf-style calls 2008-11-11 14:43:59 -08:00
grep.h log --author/--committer: really match only with name part 2008-09-04 22:21:56 -07:00
hash-object.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
hash.c Add 'const' where appropriate to index handling functions 2008-03-09 00:43:48 -08:00
hash.h Add 'const' where appropriate to index handling functions 2008-03-09 00:43:48 -08:00
help.c Fix 'git help help' 2008-08-21 22:18:21 -07:00
http-push.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
http-walker.c Merge branch 'maint' 2008-07-19 11:28:06 -07:00
http.c http.c: use 'git_config_string' to get 'curl_http_proxy' 2008-12-07 02:41:55 -08:00
http.h Work around gcc warnings from curl headers 2008-07-04 00:37:40 -07:00
ident.c Replace uses of "git-var" with "git var" 2008-07-30 11:42:01 -07:00
imap-send.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
index-pack.c rehabilitate 'git index-pack' inside the object store 2008-10-21 13:20:03 -07:00
interpolate.c Avoid unnecessary "if-before-free" tests. 2008-02-22 14:14:40 -08:00
interpolate.h Lift 16kB limit of log message output 2007-06-13 00:41:21 -07:00
list-objects.c process_{tree,blob}: show objects without buffering 2009-04-12 17:28:31 -07:00
list-objects.h process_{tree,blob}: show objects without buffering 2009-04-12 17:28:31 -07:00
ll-merge.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
ll-merge.h merge-recursive: split low-level merge functions out. 2008-02-18 00:46:13 -08:00
lockfile.c Enhance hold_lock_file_for_{update,append}() API 2008-10-19 12:35:37 -07:00
log-tree.c format-patch: Produce better output with --inline or --attach 2008-07-29 23:18:15 -07:00
log-tree.h Remove dead code: show_log() sep argument and diff_options.msg_sep 2008-05-03 11:48:03 -07:00
mailmap.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
mailmap.h Rename path_list to string_list 2008-07-21 19:11:50 -07:00
match-trees.c Improved const correctness for strings 2007-10-21 01:43:27 -04:00
merge-file.c xdl_diff: identify call sites. 2007-12-13 23:04:26 -08:00
merge-index.c 'git foo' program identifies itself without dash in die() messages 2008-08-31 09:39:19 -07:00
merge-recursive.h Build-in merge-recursive 2008-02-09 23:16:51 -08:00
merge-tree.c Make 'traverse_trees()' traverse conflicting DF entries in parallel 2008-03-09 00:43:47 -08:00
mktag.c mktag.c: tweak validation of tagger field and adjust test script 2008-03-31 22:43:34 -07:00
mktree.c Rework unquote_c_style to work on a strbuf. 2007-09-20 23:32:18 -07:00
name-hash.c Make hash_name_lookup able to do case-independent lookups 2008-04-09 01:22:25 -07:00
object.c parse_object_buffer: don't ignore errors from the object specific parsing functions 2008-02-03 16:04:57 -08:00
object.h Remove unused object-ref code 2008-02-25 23:57:35 -08:00
pack-check.c verify-pack: check packed object CRC when using index version 2 2008-06-24 23:58:57 -07:00
pack-redundant.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
pack-refs.c Enhance hold_lock_file_for_{update,append}() API 2008-10-19 12:35:37 -07:00
pack-refs.h Move pack_refs() and friends into libgit 2008-06-19 15:53:13 -07:00
pack-revindex.c discard revindex data when pack list changes 2008-08-22 22:00:22 -07:00
pack-revindex.h discard revindex data when pack list changes 2008-08-22 22:00:22 -07:00
pack-write.c Do not perform cross-directory renames when creating packs 2008-09-22 12:19:14 -07:00
pack.h improve reliability of fixup_pack_header_footer() 2008-08-29 21:51:27 -07:00
pager.c pager: do not dup2 stderr if it is already redirected 2008-12-15 01:37:15 -08:00
parse-options.c Sync with 1.5.6.5 2008-08-06 13:50:48 -07:00
parse-options.h Sync with 1.5.6.5 2008-08-06 13:50:48 -07:00
patch-delta.c make patch_delta() error cases a bit more verbose 2006-12-18 15:30:17 -08:00
patch-id.c War on whitespace 2007-06-07 00:04:01 -07:00
patch-ids.c Make the diff_options bitfields be an unsigned with explicit masks. 2007-11-11 16:54:15 -08:00
patch-ids.h Refactor patch-id filtering out of git-cherry and git-format-patch. 2007-04-11 20:02:03 -07:00
path.c Fix non-literal format in printf-style calls 2008-11-11 14:43:59 -08:00
pkt-line.c Cleanup xread() loops to use read_in_full() 2008-05-03 22:15:25 -07:00
pkt-line.h Fix pkt-line.h to compile with a non-GCC compiler 2006-06-26 02:11:53 -07:00
pretty.c pretty=format: respect date format options 2008-08-29 00:14:29 -07:00
progress.c progress.c: avoid use of dynamic-sized array 2008-06-08 13:56:32 -07:00
progress.h nicer display of thin pack completion 2007-11-08 15:43:41 -08:00
quote.c shrink git-shell by avoiding redundant dependencies 2008-06-27 23:22:00 -07:00
quote.h Make private quote_path() in wt-status.c available as quote_path_relative() 2008-03-07 21:22:25 -08:00
reachable.c process_{tree,blob}: Remove useless xstrdup calls 2009-04-08 22:58:43 -07:00
reachable.h Move traversal of reachable objects into a separate library. 2007-01-06 22:57:34 -08:00
read-cache.c checkout: Fix "initial checkout" detection 2008-11-12 14:16:50 -08:00
receive-pack.c Fix git branch -m for symrefs. 2008-10-26 14:42:57 -07:00
reflog-walk.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
reflog-walk.h git log -g: Complain, but do not fail, when no reflogs are there 2007-07-24 17:28:10 -07:00
refs.c Fix non-literal format in printf-style calls 2008-11-11 14:43:59 -08:00
refs.h Allow for having for_each_ref() list extra refs 2008-05-04 17:41:44 -07:00
remote.c git push: Interpret $GIT_DIR/branches in a Cogito compatible way 2008-11-11 15:26:40 -08:00
remote.h Refactor "tracking statistics" code used by "git checkout" 2008-07-02 23:32:25 -07:00
rerere.c Merge branch 'ar/maint-mksnpath' into maint 2008-11-08 16:13:19 -08:00
rerere.h Rename path_list to string_list 2008-07-21 19:11:50 -07:00
revision.c process_{tree,blob}: show objects without buffering 2009-04-12 17:28:31 -07:00
revision.h process_{tree,blob}: show objects without buffering 2009-04-12 17:28:31 -07:00
run-command.c Add output flushing before fork() 2008-08-04 21:46:42 -07:00
run-command.h Windows: Implement asynchronous functions as threads. 2008-06-26 08:45:08 +02:00
send-pack.h Teach send-pack a mirror mode 2007-11-09 21:14:10 -08:00
server-info.c Use git_pathdup instead of xstrdup(git_path(...)) 2008-10-30 17:52:24 -07:00
setup.c make prefix_path() never return NULL 2008-10-06 00:37:30 -07:00
sha1-lookup.c sha1-lookup: make selection of 'middle' less aggressive 2008-04-09 01:30:18 -07:00
sha1-lookup.h sha1-lookup: more memory efficient search in sorted list of SHA-1 2008-04-09 01:23:52 -07:00
sha1_file.c close_sha1_file(): make it easier to diagnose errors 2009-03-24 14:39:20 -07:00
sha1_name.c get_sha1_basic(): fix invalid memory access, found by valgrind 2009-01-27 15:16:31 -08:00
shallow.c Merge branch 'mk/maint-parse-careful' 2008-02-18 20:56:01 -08:00
shell.c shell: do not play duplicated definition games to shrink the executable 2008-08-29 22:38:41 -07:00
shortlog.h Rename path_list to string_list 2008-07-21 19:11:50 -07:00
show-index.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
sideband.c improve handling of sideband message display 2008-09-03 14:51:10 -07:00
sideband.h atomic write for sideband remote messages 2006-10-11 11:13:01 -07:00
strbuf.c Add some useful functions for strbuf manipulation. 2008-07-13 14:04:04 -07:00
strbuf.h editor.c: Libify launch_editor() 2008-07-25 17:09:38 -07:00
string-list.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
string-list.h Rename path_list to string_list 2008-07-21 19:11:50 -07:00
symlinks.c Optimize symlink/directory detection 2008-05-10 18:16:31 -07:00
tag.c Merge branch 'mk/maint-parse-careful' 2008-03-02 15:11:07 -08:00
tag.h Be careful when dereferencing tags. 2005-11-02 16:50:58 -08:00
tar.h tar-tree: Introduce write_entry() 2006-03-25 16:35:43 -08:00
test-chmtime.c Add --verbose|-v to test-chmtime 2008-10-31 00:19:52 -07:00
test-date.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
test-delta.c Fix compilation of test-delta 2007-05-01 02:59:08 -07:00
test-dump-cache-tree.c add test-dump-cache-tree in Makefile 2009-02-03 22:11:44 -08:00
test-genrandom.c simple random data generator for tests 2007-04-11 19:23:32 -07:00
test-match-trees.c A new merge stragety 'subtree'. 2007-04-07 02:29:40 -07:00
test-parse-options.c test-parse-options: use appropriate cast in length_callback 2008-08-13 18:11:44 -07:00
test-path-utils.c test-path-utils: Fix off by one, found by valgrind 2009-01-27 15:16:41 -08:00
test-sha1.c test-sha1: test hashing large buffer 2006-06-24 02:59:20 -07:00
test-sha1.sh more tr portability test script fixes 2008-03-13 00:57:52 -07:00
thread-utils.c pack-objects: Add runtime detection of online CPU's 2008-02-23 12:00:32 -08:00
thread-utils.h pack-objects: Add runtime detection of online CPU's 2008-02-23 12:00:32 -08:00
trace.c Trace and quote with argv: get rid of unneeded count argument. 2007-12-03 22:11:53 -08:00
transport.c Fix fetch/clone --quiet when stdout is connected 2008-10-06 00:01:07 -07:00
transport.h Mark the list of refs to fetch as const 2008-05-04 17:41:44 -07:00
tree-diff.c 'git foo' program identifies itself without dash in die() messages 2008-08-31 09:39:19 -07:00
tree-walk.c Fix tree-walking compare_entry() in the presense of --prefix 2008-03-09 00:43:47 -08:00
tree-walk.h Make 'traverse_trees()' traverse conflicting DF entries in parallel 2008-03-09 00:43:47 -08:00
tree.c add context pointer to read_tree_recursive() 2008-07-15 07:17:59 -07:00
tree.h add context pointer to read_tree_recursive() 2008-07-15 07:17:59 -07:00
unpack-file.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
unpack-trees.c merge: fix out-of-bounds memory access 2009-01-31 10:39:55 -08:00
unpack-trees.h checkout: do not lose staged removal 2008-09-09 22:55:22 -07:00
update-server-info.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
upload-pack.c process_{tree,blob}: show objects without buffering 2009-04-12 17:28:31 -07:00
usage.c print warning/error/fatal messages in one shot 2007-11-09 22:25:36 -08:00
utf8.c utf8_width(): allow non NUL-terminated input 2008-01-06 20:53:46 -08:00
utf8.h utf8_width(): allow non NUL-terminated input 2008-01-06 20:53:46 -08:00
var.c Replace uses of "git-var" with "git var" 2008-07-30 11:42:01 -07:00
walker.c Fix "git clone http://$URL" to check out the worktree when asked 2008-06-04 13:33:25 -07:00
walker.h Make walker.fetch_ref() take a struct ref. 2008-04-26 17:36:17 -07:00
wrapper.c Move read_in_full() and write_in_full() to wrapper.c 2008-07-20 17:17:09 -07:00
write_or_die.c Move read_in_full() and write_in_full() to wrapper.c 2008-07-20 17:17:09 -07:00
ws.c Teach "diff --check" about new blank lines at end 2008-06-26 22:07:26 -07:00
wt-status.c refactor handling of "other" files in ls-files and status 2008-10-17 12:46:59 -07:00
wt-status.h Add argument 'no' commit/status option -u|--untracked-files 2008-06-09 15:48:19 -07:00
xdiff-interface.c xdiff-interface.c: strip newline (and cr) from line before pattern matching 2008-10-16 08:31:56 -07:00
xdiff-interface.h diff.c: associate a flag with each pattern and use it for compiling regex 2008-09-18 20:06:23 -07:00

README

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

	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.
It was originally written by Linus Torvalds with help of a group of
hackers around the net. It is currently maintained by Junio C Hamano.

Please read the file INSTALL for installation instructions.
See Documentation/gittutorial.txt to get started, then see
Documentation/everyday.txt for a useful minimum set of commands,
and "man git-commandname" for documentation of each command.
CVS users may also want to read Documentation/cvs-migration.txt.

Many Git online resources are accessible from http://git.or.cz/
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. 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://marc.theaimsgroup.com/?l=git and other archival sites.

The messages titled "A note from the maintainer", "What's in
git.git (stable)" and "What's cooking in git.git (topics)" and
the discussion following them on the mailing list give a good
reference for project status, development direction and
remaining tasks.