1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-11-07 17:53:12 +01:00
Find a file
Jakub Narebski 39c19ce275 gitweb: cache $parent_commit info in git_blame()
Luben Tuikov changed 'lineno' link from leading to commit which gave
current version of given block of lines, to leading to parent of this
commit in 244a70e (Blame "linenr" link jumps to previous state at
"orig_lineno").  This made possible data mining using 'blame' view.

The current implementation calls rev-parse once per each blamed line
to find parent revision of blamed commit, even when the same commit
appears more than once, which is inefficient.

This patch mitigates this issue by caching $parent_commit info in
%metainfo, which makes gitweb call rev-parse only once per each
unique commit in the output from "git blame".

In the tables below you can see simple benchmark comparing gitweb
performance before and after this patch

File               | L[1] | C[2] || Time0[3] | Before[4] | After[4]
====================================================================
blob.h             |   18 |    4 || 0m1.727s |  0m2.545s |  0m2.474s
GIT-VERSION-GEN    |   42 |   13 || 0m2.165s |  0m2.448s |  0m2.071s
README             |   46 |    6 || 0m1.593s |  0m2.727s |  0m2.242s
revision.c         | 1923 |  121 || 0m2.357s | 0m30.365s |  0m7.028s
gitweb/gitweb.perl | 6291 |  428 || 0m8.080s | 1m37.244s | 0m20.627s

File               | L/C  | Before/After
=========================================
blob.h             |  4.5 |         1.03
GIT-VERSION-GEN    |  3.2 |         1.18
README             |  7.7 |         1.22
revision.c         | 15.9 |         4.32
gitweb/gitweb.perl | 14.7 |         4.71

As you can see the greater ratio of lines in file to unique commits
in blame output, the greater gain from the new implementation.

  Legend:

  [1] Number of lines:
      $ wc -l <file>
  [2] Number of unique commits in the blame output:
      $ git blame -p <file> | grep author-time | wc -l
  [3] Time for running "git blame -p" (user time, single run):
      $ time git blame -p <file> >/dev/null
  [4] Time to run gitweb as Perl script from command line:
      $ gitweb-run.sh "p=.git;a=blame;f=<file>" > /dev/null 2>&1

The gitweb-run.sh script includes slightly modified (with adjusted
pathnames) code from gitweb_run() function from the test script
t/t9500-gitweb-standalone-no-errors.sh; gitweb config file
gitweb_config.perl contents (again up to adjusting pathnames; in
particular $projectroot variable should point to top directory of git
repository) can be found in the same place.

Discussion
~~~~~~~~~~

A possible future improvement would be to open a bidi pipe to
"git cat-file --batch-check", (like in Git::Repo in gitweb caching by
Lea Wiemann), feed $long_rev^ to it, and parse its output, which is
in the following form:

  926b07e694599d86cec668475071b32147c95034 commit 637

This would mean one call to git-cat-file for the whole 'blame' view,
instead of one call to git-rev-parse per each unique commit in blame
output.

Yet another solution would be to change use of validate_refname() to
validate_revision() when checking script parameters (CGI query or
path_info), with validate_revision being something like the following:

  sub validate_revision {
        my $rev = shift;
        return validate_refname(strip_rev_suffixes($rev));
  }

so we don't need to calculate $long_rev^, but can pass "$long_rev^" as
'hb' parameter.

This solution has the advantage that it can be easily adapted to future
incremental blame output.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Luben Tuikov <ltuikov@yahoo.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-12-10 22:59:55 -08:00
arm
compat Merge branch 'js/mingw-rename-fix' 2008-11-27 19:25:06 -08:00
contrib git-p4: Fix bug in p4Where method. 2008-12-04 18:44:16 -08:00
Documentation Point "stale" 1.6.0.5 documentation from the main git documentation page 2008-12-07 17:34:14 -08:00
git-gui Merge git://repo.or.cz/git-gui 2008-12-02 15:27:05 -08:00
gitk-git Merge git://git.kernel.org/pub/scm/gitk/gitk 2008-12-02 15:25:48 -08:00
gitweb gitweb: cache $parent_commit info in git_blame() 2008-12-10 22:59:55 -08:00
mozilla-sha1
perl Git.pm: Make _temp_cache use the repository directory 2008-11-13 22:36:34 -08:00
ppc
t "git diff <tree>{3,}": do not reverse order of arguments 2008-12-07 14:57:57 -08:00
templates
xdiff xdiff: give up scanning similar lines early 2008-12-02 23:45:37 -08:00
.gitattributes
.gitignore add stage to gitignore 2008-12-03 21:29:03 -08:00
.mailmap
abspath.c
alias.c
alloc.c
archive-tar.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
archive-zip.c
archive.c Merge branch 'maint' 2008-10-26 16:21:08 -07:00
archive.h
attr.c
attr.h
base85.c
blob.c
blob.h
branch.c Merge branch 'jc/maint-co-track' 2008-10-21 17:58:11 -07:00
branch.h
builtin-add.c
builtin-annotate.c
builtin-apply.c Merge branch 'ar/maint-mksnpath' into HEAD 2008-10-26 22:24:44 -07:00
builtin-archive.c git-archive: work in bare repos 2008-10-26 16:19:59 -07:00
builtin-blame.c Merge branch 'rs/blame' 2008-11-08 16:05:39 -08:00
builtin-branch.c builtin-branch: use strbuf in rename_branch() 2008-11-18 15:46:42 -08:00
builtin-bundle.c
builtin-cat-file.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
builtin-check-attr.c Fix non-literal format in printf-style calls 2008-11-11 14:50:02 -08:00
builtin-check-ref-format.c
builtin-checkout-index.c parse-opt: migrate builtin-checkout-index. 2008-10-19 14:38:04 -07:00
builtin-checkout.c Merge branch 'maint' 2008-11-27 19:23:51 -08:00
builtin-clean.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
builtin-clone.c builtin_clone: use strbuf in cmd_clone() 2008-11-25 15:34:26 -08:00
builtin-commit-tree.c
builtin-commit.c git add --intent-to-add: do not let an empty blob be committed by accident 2008-11-30 17:59:19 -08:00
builtin-config.c Use git_pathdup instead of xstrdup(git_path(...)) 2008-10-30 17:52:24 -07:00
builtin-count-objects.c
builtin-describe.c describe: Make --tags and --all match lightweight tags more often 2008-10-17 11:35:43 -07:00
builtin-diff-files.c Add cache preload facility 2008-11-14 19:11:49 -08:00
builtin-diff-index.c
builtin-diff-tree.c
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: use an unsorted string list for extra_refs 2008-11-23 19:54:51 -08:00
builtin-fetch--tool.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
builtin-fetch-pack.c Merge branch 'maint' 2008-12-07 15:13:02 -08:00
builtin-fetch.c Teach/Fix pull/fetch -q/-v options 2008-11-14 17:18:32 -08:00
builtin-fmt-merge-msg.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
builtin-for-each-ref.c Fix potentially dangerous uses of mkpath and git_path 2008-10-26 22:25:09 -07:00
builtin-fsck.c Make some of fwrite/fclose/write/close failures visible 2008-12-04 18:05:41 -08:00
builtin-gc.c Merge branch 'bc/maint-keep-pack' 2008-11-12 22:00:43 -08:00
builtin-grep.c
builtin-help.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
builtin-http-fetch.c
builtin-init-db.c
builtin-log.c Merge branch 'lt/decorate' 2008-11-12 21:51:19 -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
builtin-mailinfo.c
builtin-mailsplit.c
builtin-merge-base.c
builtin-merge-file.c
builtin-merge-ours.c
builtin-merge-recursive.c
builtin-merge.c Make some of fwrite/fclose/write/close failures visible 2008-12-04 18:05:41 -08:00
builtin-mv.c
builtin-name-rev.c
builtin-pack-objects.c Merge branch 'bc/maint-keep-pack' into maint 2008-12-02 23:00:04 -08:00
builtin-pack-refs.c
builtin-prune-packed.c
builtin-prune.c
builtin-push.c
builtin-read-tree.c checkout: Fix "initial checkout" detection 2008-11-12 14:16:50 -08:00
builtin-receive-pack.c receive-pack: detect push to current branch of non-bare repo 2008-11-09 10:16:50 -08:00
builtin-reflog.c Merge branch 'ar/maint-mksnpath' into ar/mksnpath 2008-10-30 18:08:58 -07:00
builtin-remote.c git-remote: add verbose mode to git remote update 2008-11-18 15:38:34 -08:00
builtin-rerere.c Always initialize xpparam_t to 0 2008-10-25 12:09:31 -07:00
builtin-reset.c Fix git branch -m for symrefs. 2008-10-26 14:42:57 -07:00
builtin-rev-list.c Add a 'source' decorator for commits 2008-11-04 00:08:03 -08:00
builtin-rev-parse.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
builtin-revert.c Merge branch 'ar/maint-mksnpath' into maint 2008-11-08 16:13:19 -08:00
builtin-rm.c git add --intent-to-add: fix removal of cached emptiness 2008-11-28 19:58:24 -08:00
builtin-send-pack.c Merge branch 'maint' 2008-11-08 21:33:55 -08:00
builtin-shortlog.c
builtin-show-branch.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
builtin-show-ref.c
builtin-stripspace.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
builtin-symbolic-ref.c
builtin-tag.c Merge branch 'maint' 2008-12-07 15:13:02 -08:00
builtin-tar-tree.c
builtin-unpack-objects.c better validation on delta base object offsets 2008-11-02 15:22:34 -08:00
builtin-update-index.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -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
builtin-verify-pack.c
builtin-verify-tag.c
builtin-write-tree.c git add --intent-to-add: do not let an empty blob be committed by accident 2008-11-30 17:59:19 -08:00
builtin.h
bundle.c Fix non-literal format in printf-style calls 2008-11-11 14:43:59 -08:00
bundle.h
cache-tree.c git add --intent-to-add: do not let an empty blob be committed by accident 2008-11-30 17:59:19 -08:00
cache-tree.h
cache.h Merge branch 'bc/maint-keep-pack' into maint 2008-12-02 23:00:04 -08:00
check-builtins.sh
check-racy.c
check_bindir
color.c
color.h
combine-diff.c Always initialize xpparam_t to 0 2008-10-25 12:09:31 -07:00
command-list.txt
commit.c
commit.h builtin-blame: Reencode commit messages according to git-log rules. 2008-10-21 14:09:34 -07:00
config.c Add cache preload facility 2008-11-14 19:11:49 -08:00
config.mak.in Makefile: introduce NO_PTHREADS 2008-12-02 15:29:12 -08:00
configure.ac Makefile: introduce NO_PTHREADS 2008-12-02 15:29:12 -08:00
connect.c connect.c: add a way for git-daemon to pass an error back to client 2008-11-02 01:54:29 -07:00
convert.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
copy.c
COPYING
csum-file.c Merge branch 'maint' 2008-10-10 08:39:20 -07:00
csum-file.h Merge branch 'maint' 2008-10-10 08:39:20 -07:00
ctype.c
daemon.c daemon: deglobalize variable 'directory' 2008-11-23 19:56:36 -08:00
date.c date/time: do not get confused by fractional seconds 2008-11-13 09:06:58 -08:00
decorate.c
decorate.h
delta.h
diff-delta.c
diff-lib.c
diff-no-index.c
diff.c Merge branch 'jk/diff-convfilter' 2008-11-12 21:50:58 -08:00
diff.h userdiff: require explicitly allowing textconv 2008-10-26 14:09:48 -07:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c Add file delete/create info when we overflow rename_limit 2008-10-28 08:58:42 -07:00
diffcore.h Merge branch 'maint' 2008-11-02 16:36:40 -08:00
dir.c
dir.h
dump-cache-tree.c
editor.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
entry.c
environment.c Add cache preload facility 2008-11-14 19:11:49 -08:00
exec_cmd.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
exec_cmd.h
fast-import.c
fetch-pack.h
fixup-builtins
fsck.c Merge branch 'maint' 2008-11-11 14:49:50 -08:00
fsck.h
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: rename apply_opt_extra file to apply-opt 2008-12-05 20:02:10 -08:00
git-archimport.perl
git-bisect.sh Documentation: describe how to "bisect skip" a range of commits 2008-12-02 15:29:12 -08:00
git-compat-util.h
git-cvsexportcommit.perl
git-cvsimport.perl
git-cvsserver.perl
git-filter-branch.sh filter-branch: use git rev-parse -q 2008-12-03 14:27:17 -08:00
git-instaweb.sh
git-lost-found.sh lost-found: use git rev-parse -q 2008-12-03 14:27:17 -08:00
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool.sh
git-parse-remote.sh
git-pull.sh pull: use git rev-parse -q 2008-12-03 14:27:17 -08:00
git-quiltimport.sh
git-rebase--interactive.sh Merge branch 'sh/rebase-i-p' 2008-11-02 16:36:33 -08:00
git-rebase.sh rebase: use git rev-parse -q 2008-12-03 14:27:17 -08:00
git-relink.perl
git-repack.sh repack: only unpack-unreachable if we are deleting redundant packs 2008-11-14 21:39:10 -08:00
git-request-pull.sh request-pull: make usage string match manpage 2008-11-17 02:27:18 -08:00
git-send-email.perl send-email: do not reverse the command line arguments 2008-11-30 22:38:20 -08:00
git-sh-setup.sh
git-stash.sh Revert "git-stash: use git rev-parse -q" 2008-12-07 17:30:35 -08:00
git-submodule.sh submodule: use git rev-parse -q 2008-12-03 14:27:18 -08:00
git-svn.perl git-svn: Make branch use correct svn-remote 2008-12-03 01:54:24 -08:00
GIT-VERSION-GEN
git-web--browse.sh
git.c Make chdir failures visible 2008-12-04 18:05:51 -08:00
git.spec.in Include git-gui--askpass in git-gui RPM package 2008-12-01 00:54:16 -08:00
graph.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
graph.h
grep.c Merge branch 'maint' 2008-11-11 14:49:50 -08:00
grep.h
hash-object.c Fix non-literal format in printf-style calls 2008-11-11 14:50:02 -08:00
hash.c
hash.h
help.c
help.h
http-push.c make alloc_ref_from_str() the new alloc_ref() 2008-10-18 06:53:47 -07:00
http-walker.c
http.c Merge branch 'maint' 2008-12-07 15:13:02 -08:00
http.h
ident.c Add backslash to list of 'crud' characters in real name 2008-12-02 15:29:13 -08:00
imap-send.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
index-pack.c Merge branch 'np/pack-safer' 2008-11-12 22:26:35 -08:00
INSTALL Makefile: add install-man rules (quick and normal) 2008-11-02 20:46:52 -08:00
levenshtein.c Document levenshtein.c 2008-11-23 19:23:34 -08:00
levenshtein.h
list-objects.c
list-objects.h
ll-merge.c merge-recursive: use strbuf_expand() instead of interpolate() 2008-11-23 19:55:52 -08:00
ll-merge.h
lockfile.c Enhance hold_lock_file_for_{update,append}() API 2008-10-19 12:35:37 -07:00
log-tree.c Fix machine-parseability of 'git log --source' 2008-11-16 00:24:41 -08:00
log-tree.h Add a 'source' decorator for commits 2008-11-04 00:08:03 -08:00
mailmap.c
mailmap.h
Makefile Install git-stage in exec-path 2008-12-03 00:30:34 -08:00
match-trees.c
merge-file.c Always initialize xpparam_t to 0 2008-10-25 12:09:31 -07:00
merge-index.c
merge-recursive.c Report symlink failures in merge-recursive 2008-12-04 18:05:51 -08:00
merge-recursive.h
merge-tree.c
mktag.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
mktree.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
name-hash.c
object.c
object.h
pack-check.c
pack-redundant.c
pack-refs.c Enhance hold_lock_file_for_{update,append}() API 2008-10-19 12:35:37 -07:00
pack-refs.h
pack-revindex.c make find_pack_revindex() aware of the nasty world 2008-11-02 15:22:35 -08:00
pack-revindex.h
pack-write.c
pack.h
pager.c
parse-options.c Teach/Fix pull/fetch -q/-v options 2008-11-14 17:18:32 -08:00
parse-options.h Teach/Fix pull/fetch -q/-v options 2008-11-14 17:18:32 -08:00
patch-delta.c
patch-id.c
patch-ids.c
patch-ids.h
path.c Fix non-literal format in printf-style calls 2008-11-11 14:43:59 -08:00
pkt-line.c
pkt-line.h
preload-index.c Makefile: introduce NO_PTHREADS 2008-12-02 15:29:12 -08:00
pretty.c builtin-blame: Reencode commit messages according to git-log rules. 2008-10-21 14:09:34 -07:00
progress.c
progress.h
quote.c
quote.h
reachable.c
reachable.h
read-cache.c git add --intent-to-add: do not let an empty blob be committed by accident 2008-11-30 17:59:19 -08:00
README
reflog-walk.c
reflog-walk.h
refs.c Merge branch 'maint' 2008-11-11 14:49:50 -08:00
refs.h
RelNotes Start 1.6.0.5 cycle 2008-11-12 15:03:03 -08:00
remote.c Merge branch 'mk/maint-cg-push' 2008-11-12 22:26:24 -08:00
remote.h remote: add a new 'origin' variable to the struct 2008-11-11 14:19:29 -08:00
rerere.c Make some of fwrite/fclose/write/close failures visible 2008-12-04 18:05:41 -08:00
rerere.h
revision.c Merge branch 'maint' 2008-11-14 22:12:38 -08:00
revision.h revision traversal: '--simplify-by-decoration' 2008-11-04 00:45:34 -08:00
run-command.c
run-command.h
send-pack.h
server-info.c Use git_pathdup instead of xstrdup(git_path(...)) 2008-10-30 17:52:24 -07:00
setup.c Make chdir failures visible 2008-12-04 18:05:51 -08:00
sha1-lookup.c
sha1-lookup.h
sha1_file.c Merge branch 'bc/maint-keep-pack' into maint 2008-12-02 23:00:04 -08:00
sha1_name.c Merge branch 'ar/maint-mksnpath' into HEAD 2008-10-26 22:24:44 -07:00
shallow.c
shell.c
shortlog.h
show-index.c
sideband.c
sideband.h
strbuf.c add strbuf_expand_dict_cb(), a helper for simple cases 2008-11-23 19:55:47 -08:00
strbuf.h add strbuf_expand_dict_cb(), a helper for simple cases 2008-11-23 19:55:47 -08:00
string-list.c
string-list.h
symlinks.c
tag.c
tag.h
tar.h
test-chmtime.c Add --verbose|-v to test-chmtime 2008-10-31 00:19:52 -07:00
test-date.c
test-delta.c
test-genrandom.c
test-match-trees.c
test-parse-options.c
test-path-utils.c
test-sha1.c
test-sha1.sh
thread-utils.c
thread-utils.h
trace.c
transport.c Merge branch 'rs/alloc-ref' 2008-10-21 17:58:01 -07:00
transport.h Implement git clone -v 2008-10-09 11:26:17 -07:00
tree-diff.c
tree-walk.c
tree-walk.h
tree.c
tree.h
unpack-file.c
unpack-trees.c Fix non-literal format in printf-style calls 2008-11-11 14:43:59 -08:00
unpack-trees.h
update-server-info.c
upload-pack.c
usage.c
userdiff.c userdiff: require explicitly allowing textconv 2008-10-26 14:09:48 -07:00
userdiff.h userdiff: require explicitly allowing textconv 2008-10-26 14:09:48 -07:00
utf8.c
utf8.h
var.c
walker.c make alloc_ref_from_str() the new alloc_ref() 2008-10-18 06:53:47 -07:00
walker.h
wrapper.c
write_or_die.c
ws.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
wt-status.c Merge branch 'jk/commit-v-strip' 2008-11-16 00:48:59 -08:00
wt-status.h
xdiff-interface.c xdiff-interface.c: remove 10 duplicated lines 2008-11-26 10:47:41 -08:00
xdiff-interface.h add xdi_diff_hunks() for callers that only need hunk lengths 2008-10-25 12:09:31 -07: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.
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/tutorial.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.