Git with broken hash generation to generate collisions between object IDs. Don't use this! https://undefinedbehavior.de/posts/commit-vandalism/
Go to file
Linus Torvalds 9d55b2e12f mailinfo: don't require "text" mime type for attachments
Currently "git am" does insane things if the mbox it is given contains
attachments with a MIME type that aren't "text/*".

In particular, it will still decode them, and pass them "one line at a
time" to the mail body filter, but because it has determined that they
aren't text (without actually looking at the contents, just at the mime
type) the "line" will be the encoding line (eg 'base64') rather than a
line of *content*.

Which then will cause the text filtering to fail, because we won't
correctly notice when the attachment text switches from the commit message
to the actual patch. Resulting in a patch failure, even if patch may be a
perfectly well-formed attachment, it's just that the message type may be
(for example) "application/octet-stream" instead of "text/plain".

Just remove all the bogus games with the message_type. The only difference
that code creates is how the data is passed to the filter function
(chunked per-pred-code line or per post-decode line), and that difference
is *wrong*, since chunking things per pre-decode line can never be a
sensible operation, and cannot possibly matter for binary data anyway.

This code goes all the way back to March of 2007, in commit 87ab799234
("builtin-mailinfo.c infrastrcture changes"), and apparently Don used to
pass random mbox contents to git. However, the pre-decode vs post-decode
logic really shouldn't matter even for that case, and more importantly, "I
fed git am crap" is not a valid reason to break *real* patch attachments.

If somebody really cares, and determines that some attachment is binary
data (by looking at the data, not the MIME-type), the whole attachment
should be dismissed, rather than fed in random-sized chunks to
"handle_filter()".

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Don Zickus <dzickus@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-30 17:29:27 -07:00
block-sha1
builtin mailinfo: don't require "text" mime type for attachments 2012-09-30 17:29:27 -07:00
compat Merge branch 'bw/inet-pton-ntop-compat' into maint 2012-02-13 23:26:31 -08:00
contrib post-receive-email: match up $LOGBEGIN..$LOGEND pairs correctly 2012-02-27 11:01:16 -08:00
Documentation Git 1.7.9.7 2012-04-26 10:23:15 -07:00
git_remote_helpers Change check_ref_format() to take a flags argument 2011-10-05 13:45:29 -07:00
git-gui Merge branch 'master' of git://repo.or.cz/git-gui 2011-12-13 16:48:24 -08:00
gitk-git Merge git://ozlabs.org/~paulus/gitk 2011-12-16 22:18:42 -08:00
gitweb Merge branch 'maint-1.7.8' into maint 2012-03-20 15:53:30 -07:00
mergetools Merge branch 'jn/ancient-meld-support' into maint 2012-02-27 15:33:07 -08:00
perl Merge branch 'maint' 2012-01-03 13:48:00 -08:00
po i18n: add infrastructure for translating Git with gettext 2011-12-05 20:46:55 -08:00
ppc
t Merge branch 'tr/cache-tree' into maint-1.7.8 2012-04-09 13:40:32 -07:00
templates Merge branch 'maint-1.7.6' into maint 2011-10-26 16:09:28 -07:00
vcs-svn Fix a bitwise negation assignment issue spotted by Sun Studio 2011-12-21 10:19:40 -08:00
xdiff Merge branch 'rs/diff-cleanup-records-fix' into maint 2011-10-21 10:49:25 -07:00
.gitattributes git-gui: set whitespace warnings appropriate to this project 2011-11-30 11:35:28 +00:00
.gitignore Merge branch 'tr/cache-tree' 2011-12-19 16:05:20 -08:00
.mailmap
abspath.c
aclocal.m4
advice.c i18n of multi-line advice messages 2011-12-22 11:21:26 -08:00
advice.h
alias.c
alloc.c
archive-tar.c
archive-zip.c
archive.c Merge branch 'jk/maint-upload-archive' 2012-01-12 23:34:17 -08:00
archive.h archive: don't let remote clients get unreachable commits 2011-11-21 14:42:25 -08:00
argv-array.c
argv-array.h
attr.c Merge branch 'maint-1.7.6' into maint-1.7.7 2012-01-11 19:11:00 -08:00
attr.h
base85.c
bisect.c Merge branch 'jk/argv-array' into maint 2011-10-26 16:13:31 -07:00
bisect.h rev-list: fix --verify-objects --quiet becoming --objects 2012-02-28 10:47:30 -08:00
blob.c
blob.h
branch.c Merge branch 'jn/maint-sequencer-fixes' into maint 2011-12-28 11:32:39 -08:00
branch.h Merge branch 'jn/branch-move-to-self' 2011-12-13 22:53:08 -08:00
builtin.h Merge branch 'jk/upload-archive-use-start-command' 2011-12-16 22:33:30 -08:00
bulk-checkin.c bulk-checkin: replace fast-import based implementation 2011-12-01 11:46:09 -08:00
bulk-checkin.h bulk-checkin: replace fast-import based implementation 2011-12-01 11:46:09 -08:00
bundle.c Sync with 1.7.8.6 2012-04-26 10:22:20 -07:00
bundle.h Merge branch 'jc/unseekable-bundle' 2011-10-21 16:04:32 -07:00
cache-tree.c Merge branch 'jc/maint-commit-ignore-i-t-a' into maint 2012-02-16 14:08:00 -08:00
cache-tree.h Refactor cache_tree_update idiom from commit 2011-12-06 14:57:36 -08:00
cache.h Merge branch 'jk/git-dir-lookup' into maint 2012-02-21 15:13:16 -08:00
check_bindir
check-builtins.sh
check-racy.c
color.c
color.h
combine-diff.c pass struct commit to diff_tree_combined_merge() 2011-12-17 18:22:29 -08:00
command-list.txt Documentation: Link to gitweb(1) and gitweb.conf(5) in other manpages 2011-10-16 11:09:35 -07:00
commit.c Merge branch 'jc/show-sig' 2012-01-06 12:44:07 -08:00
commit.h Merge branch 'jc/show-sig' 2012-01-06 12:44:07 -08:00
config.c Merge branch 'ms/maint-config-error-at-eol-linecount' into maint 2012-03-26 12:10:05 -07:00
config.mak.in Makefile: introduce CHARSET_LIB to link with -lcharset 2012-02-13 00:11:01 -08:00
configure.ac Merge branch 'js/configure-libintl' into maint 2012-02-26 17:04:53 -08:00
connect.c server_supports(): parse feature list more carefully 2012-01-08 14:26:28 -08:00
connected.c fetch/receive: remove over-pessimistic connectivity check 2012-03-15 15:23:17 -07:00
connected.h
convert.c Merge branch 'jk/maint-avoid-streaming-filtered-contents' into maint 2012-03-04 22:16:40 -08:00
convert.h teach convert_to_git a "dry run" mode 2012-02-24 14:11:27 -08:00
copy.c
COPYING
credential-cache--daemon.c credentials: add "cache" helper 2011-12-11 23:16:25 -08:00
credential-cache.c credential-cache: ignore "connection refused" errors 2012-01-16 22:15:19 -08:00
credential-store.c credentials: add "store" helper 2011-12-12 16:09:38 -08:00
credential.c credential: use git_prompt instead of git_getpass 2011-12-12 16:09:39 -08:00
credential.h credential: make relevance of http path configurable 2011-12-11 23:16:25 -08:00
csum-file.c csum-file: introduce sha1file_checkpoint 2011-11-30 14:27:59 -08:00
csum-file.h csum-file: introduce sha1file_checkpoint 2011-11-30 14:27:59 -08:00
ctype.c ctype.c only wants git-compat-util.h 2012-02-10 12:53:55 -08:00
daemon.c i18n: add infrastructure for translating Git with gettext 2011-12-05 20:46:55 -08:00
date.c Merge branch 'jc/parse-date-raw' into maint 2012-02-13 11:42:15 -08:00
decorate.c
decorate.h
delta.h
diff-delta.c
diff-lib.c diff-index: enable recursive pathspec matching in unpack_trees 2012-01-18 15:44:02 -08:00
diff-no-index.c
diff.c Merge branch 'jc/maint-diff-patch-header' into maint 2012-03-12 15:46:32 -07:00
diff.h Use correct grammar in diffstat summary line 2012-02-03 23:19:42 -08:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c pickaxe: factor out pickaxe 2011-10-07 15:46:14 -07:00
diffcore-rename.c
diffcore.h
dir.c read_directory_recursive: reduce one indentation level 2011-10-27 11:27:57 -07:00
dir.h
editor.c
entry.c
environment.c Merge branch 'jc/stream-to-pack' 2011-12-16 22:33:40 -08:00
exec_cmd.c
exec_cmd.h
fast-import.c Merge branch 'jn/maint-fast-import-empty-ls' into maint 2012-03-26 12:10:25 -07:00
fetch-pack.h
fixup-builtins
fmt-merge-msg.h fmt-merge-msg: use branch.$name.description 2011-10-07 10:11:47 -07:00
fsck.c
fsck.h
generate-cmdlist.sh
gettext.c i18n: add infrastructure for translating Git with gettext 2011-12-05 20:46:55 -08:00
gettext.h i18n: add infrastructure for translating Git with gettext 2011-12-05 20:46:55 -08:00
git-add--interactive.perl
git-am.sh Merge branch 'jc/am-3-nonstandard-popt' into maint 2012-03-12 15:43:15 -07:00
git-archimport.perl
git-bisect.sh Merge branch 'js/bisect-no-checkout' into maint 2011-11-01 16:03:35 -07:00
git-compat-util.h ctype: implement islower/isupper macro 2012-02-10 12:56:29 -08:00
git-cvsexportcommit.perl git-cvsexportcommit: Fix calling Perl's rel2abs() on MSYS 2012-01-11 18:04:08 -08:00
git-cvsimport.perl
git-cvsserver.perl use -h for synopsis and --help for manpage consistently 2011-10-05 10:47:10 -07:00
git-difftool--helper.sh git-difftool: allow skipping file by typing 'n' at prompt 2011-10-10 10:21:11 -07:00
git-difftool.perl use -h for synopsis and --help for manpage consistently 2011-10-05 10:47:10 -07:00
git-filter-branch.sh Merge branch 'jk/filter-branch-require-clean-work-tree' into maint 2011-10-15 20:46:38 -07:00
git-instaweb.sh
git-lost-found.sh
git-merge-octopus.sh
git-merge-one-file.sh Merge branch 'js/maint-merge-one-file-osx-expr' into maint 2011-10-21 10:49:25 -07:00
git-merge-resolve.sh
git-mergetool--lib.sh
git-mergetool.sh mergetool: Provide an empty file when needed 2012-01-23 11:50:22 -08:00
git-parse-remote.sh
git-pull.sh Merge branch 'ab/pull-rebase-config' 2011-12-09 13:37:01 -08:00
git-quiltimport.sh
git-rebase--am.sh
git-rebase--interactive.sh Merge branch 'aw/rebase-i-stop-on-failure-to-amend' into maint 2011-12-28 11:32:34 -08:00
git-rebase--merge.sh rebase -m: only call "notes copy" when rewritten exists and is non-empty 2012-02-26 16:32:37 -08:00
git-rebase.sh Merge branch 'jk/pull-rebase-with-work-tree' into maint 2011-11-01 16:11:00 -07:00
git-relink.perl
git-remote-testgit.py
git-repack.sh
git-request-pull.sh request-pull: explicitly ask tags/$name to be pulled 2012-01-31 21:27:58 -08:00
git-send-email.perl send-email: multiedit is a boolean config option 2012-01-09 15:15:28 -08:00
git-sh-i18n.sh i18n: add infrastructure for translating Git with gettext 2011-12-05 20:46:55 -08:00
git-sh-setup.sh Merge branch 'jc/parse-date-raw' into maint 2012-02-13 11:42:15 -08:00
git-stash.sh stash: Don't fail if work dir contains file named 'HEAD' 2012-01-01 01:11:56 -08:00
git-submodule.sh submodule add: fix breakage when re-adding a deep submodule 2012-01-24 14:18:18 -08:00
git-svn.perl git-svn.perl: close the edit for propedits even with no mods 2011-12-01 14:25:30 -08:00
GIT-VERSION-GEN Git 1.7.9.7 2012-04-26 10:23:15 -07:00
git-web--browse.sh
git.c dashed externals: kill children on exit 2012-01-08 15:07:20 -08:00
git.spec.in git.spec: Workaround localized messages not put in any RPM 2012-02-03 23:06:30 -08:00
gpg-interface.c verify_signed_buffer: fix stale comment 2012-01-05 13:02:26 -08:00
gpg-interface.h Split GPG interface into its own helper library 2011-11-04 21:40:25 -07:00
graph.c
graph.h
grep.c Sync with 1.7.8.5 2012-02-26 16:42:35 -08:00
grep.h grep: respect diff attributes for binary-ness 2012-02-02 10:36:08 -08:00
hash.c
hash.h
help.c pager: find out the terminal width before spawning the pager 2012-02-13 15:08:47 -08:00
help.h
hex.c get_sha1_hex(): do not read past a NUL character 2011-10-05 13:45:16 -07:00
http-backend.c i18n: add infrastructure for translating Git with gettext 2011-12-05 20:46:55 -08:00
http-fetch.c Merge branch 'ab/enable-i18n' 2011-12-19 16:06:41 -08:00
http-push.c Merge branch 'ab/enable-i18n' 2011-12-19 16:06:41 -08:00
http-walker.c
http.c Merge branch 'jk/maint-push-over-dav' into maint 2011-12-28 11:32:37 -08:00
http.h Merge branch 'jk/maint-push-over-dav' into maint 2011-12-28 11:32:37 -08:00
ident.c ident: do not retrieve default ident when unnecessary 2011-10-06 11:16:16 -07:00
imap-send.c Sync with 1.7.6.6 2012-02-05 23:53:21 -08:00
INSTALL Fix build problems related to profile-directed optimization 2012-02-06 00:15:12 -08:00
kwset.c
kwset.h
levenshtein.c
levenshtein.h
LGPL-2.1
list-objects.c tree_entry_interesting(): give meaningful names to return values 2011-10-27 11:38:24 -07:00
list-objects.h
ll-merge.c
ll-merge.h
lockfile.c
log-tree.c Merge branch 'jc/show-sig' 2012-01-06 12:44:07 -08:00
log-tree.h
mailmap.c mailmap: always return a plain mail address from map_user() 2012-02-06 14:00:06 -08:00
mailmap.h
Makefile Merge branch 'tr/cache-tree' into maint-1.7.8 2012-04-09 13:40:32 -07:00
match-trees.c
merge-file.c
merge-file.h
merge-recursive.c Merge branch 'tr/cache-tree' 2011-12-19 16:05:20 -08:00
merge-recursive.h
name-hash.c name-hash.c: always initialize dir_next pointer 2011-11-01 15:29:18 -07:00
notes-cache.c Merge branch 'jc/show-sig' 2012-01-06 12:44:07 -08:00
notes-cache.h
notes-merge.c Merge branch 'jc/show-sig' 2012-01-06 12:44:07 -08:00
notes-merge.h Convert commit_tree() to take strbuf as message 2011-12-15 10:46:42 -08:00
notes.c
notes.h
object.c receive-pack, fetch-pack: reject bogus pack that records objects twice 2011-11-16 22:05:21 -08:00
object.h
pack-check.c fsck: print progress 2011-11-06 20:31:28 -08:00
pack-refs.c Change check_ref_format() to take a flags argument 2011-10-05 13:45:29 -07:00
pack-refs.h
pack-revindex.c
pack-revindex.h
pack-write.c Appease Sun Studio by renaming "tmpfile" 2011-12-21 10:21:04 -08:00
pack.h Merge branch 'jc/stream-to-pack' 2011-12-16 22:33:40 -08:00
pager.c pager: find out the terminal width before spawning the pager 2012-02-13 15:08:47 -08:00
parse-options-cb.c
parse-options.c
parse-options.h
patch-delta.c
patch-ids.c
patch-ids.h
path.c standardize and improve lookup rules for external local repos 2012-02-02 16:41:55 -08:00
pkt-line.c
pkt-line.h
preload-index.c
pretty.c Merge branch 'jc/show-sig' 2012-01-06 12:44:07 -08:00
progress.c
progress.h
prompt.c prompt: fall back to terminal if askpass fails 2012-02-03 14:37:04 -08:00
prompt.h prompt: use git_terminal_prompt 2011-12-12 16:09:38 -08:00
quote.c Merge branch 'jk/argv-array' into maint 2011-10-26 16:13:31 -07:00
quote.h
reachable.c reachable: per-object progress 2011-11-07 22:12:19 -08:00
reachable.h prune: show progress while marking reachable objects 2011-11-07 22:12:19 -08:00
read-cache.c refresh_index: do not show unmerged path that is outside pathspec 2012-02-17 10:11:05 -08:00
README README: point to Documentation/SubmittingPatches 2012-02-23 11:35:59 -08:00
reflog-walk.c Merge branch 'jk/pretty-reglog-ent' 2011-12-22 11:27:28 -08:00
reflog-walk.h pretty: give placeholders to reflog identity 2011-12-16 13:00:15 -08:00
refs.c Merge branch 'mh/ref-api' 2011-12-20 13:25:53 -08:00
refs.h resolve_gitlink_ref(): improve docstring 2011-12-12 09:08:53 -08:00
RelNotes Git 1.7.8.6 2012-04-26 10:14:45 -07:00
remote-curl.c Merge branch 'cb/maint-t5541-make-server-port-portable' into maint-1.7.8 2012-04-09 13:38:41 -07:00
remote.c i18n: format_tracking_info "Your branch is behind" message 2012-02-01 18:09:17 -08:00
remote.h Merge branch 'cn/fetch-prune' 2011-10-26 16:16:29 -07:00
replace_object.c
rerere.c
rerere.h
resolve-undo.c
resolve-undo.h
revision.c Merge branch 'jk/grep-binary-attribute' into maint 2012-02-21 14:57:05 -08:00
revision.h log: --show-signature 2011-11-12 22:27:38 -08:00
run-command.c dashed externals: kill children on exit 2012-01-08 15:07:20 -08:00
run-command.h dashed externals: kill children on exit 2012-01-08 15:07:20 -08:00
send-pack.h
sequencer.c revert: stop creating and removing sequencer-old directory 2011-12-12 13:33:53 -08:00
sequencer.h revert: stop creating and removing sequencer-old directory 2011-12-12 13:33:53 -08:00
server-info.c
setup.c standardize and improve lookup rules for external local repos 2012-02-02 16:41:55 -08:00
sh-i18n--envsubst.c
sha1_file.c Merge branch 'jk/maint-avoid-streaming-filtered-contents' into maint 2012-03-04 22:16:40 -08:00
sha1_name.c Merge branch 'jc/broken-ref-dwim-fix' 2011-10-21 16:04:36 -07:00
sha1-array.c
sha1-array.h
sha1-lookup.c
sha1-lookup.h
shallow.c
shell.c i18n: add infrastructure for translating Git with gettext 2011-12-05 20:46:55 -08:00
shortlog.h
show-index.c i18n: add infrastructure for translating Git with gettext 2011-12-05 20:46:55 -08:00
sideband.c
sideband.h
sigchain.c
sigchain.h
strbuf.c Merge branch 'tr/maint-bundle-long-subject' into maint 2012-03-04 22:16:30 -08:00
strbuf.h Merge branch 'tr/maint-bundle-long-subject' into maint 2012-03-04 22:16:30 -08:00
streaming.c
streaming.h
string-list.c
string-list.h
submodule.c Merge branch 'jl/submodule-status-failure-report' into maint 2011-12-21 11:42:45 -08:00
submodule.h submodule: Search for merges only at end of recursive merge 2011-10-13 10:18:16 -07:00
symlinks.c
tag.c Split GPG interface into its own helper library 2011-11-04 21:40:25 -07:00
tag.h
tar.h
test-chmtime.c
test-credential.c introduce credentials API 2011-12-11 23:16:24 -08:00
test-ctype.c test-ctype: add test for is_pathspec_magic 2011-10-03 11:44:03 -07:00
test-date.c
test-delta.c
test-dump-cache-tree.c Refactor cache_tree_update idiom from commit 2011-12-06 14:57:36 -08:00
test-genrandom.c
test-index-version.c
test-line-buffer.c
test-match-trees.c
test-mktemp.c
test-obj-pool.c
test-parse-options.c
test-path-utils.c
test-run-command.c
test-scrap-cache-tree.c Add test-scrap-cache-tree 2011-12-06 14:52:18 -08:00
test-sha1.c
test-sha1.sh
test-sigchain.c
test-string-pool.c
test-subprocess.c
test-svn-fe.c
test-treap.c Fix a bitwise negation assignment issue spotted by Sun Studio 2011-12-21 10:19:40 -08:00
thread-utils.c
thread-utils.h
trace.c
transport-helper.c Merge branch 'sp/smart-http-failure-to-push' into maint 2012-03-04 22:16:33 -08:00
transport.c push/fetch/clone --no-progress suppresses progress output 2012-02-13 13:06:53 -08:00
transport.h
tree-diff.c use custom rename score during --follow 2011-12-16 12:33:49 -08:00
tree-walk.c Document limited recursion pathspec matching with wildcards 2012-01-14 18:39:04 -08:00
tree-walk.h tree_entry_interesting(): give meaningful names to return values 2011-10-27 11:38:24 -07:00
tree.c tree_entry_interesting(): give meaningful names to return values 2011-10-27 11:38:24 -07:00
tree.h
unimplemented.sh
unix-socket.c unix-socket: do not let close() or chdir() clobber errno during cleanup 2012-01-11 17:37:10 -08:00
unix-socket.h credentials: add "cache" helper 2011-12-11 23:16:25 -08:00
unpack-trees.c tree-walk.c: do not leak internal structure in tree_entry_len() 2011-10-27 11:08:26 -07:00
unpack-trees.h Merge branch 'jc/diff-index-unpack' into maint 2011-10-15 20:46:36 -07:00
upload-pack.c server_supports(): parse feature list more carefully 2012-01-08 14:26:28 -08:00
url.c Merge branch 'jk/http-auth' 2011-10-17 21:37:15 -07:00
url.h
usage.c
userdiff.c Merge branch 'tr/userdiff-c-returns-pointer' into maint 2011-12-21 11:42:45 -08:00
userdiff.h
utf8.c
utf8.h
walker.c Change check_ref_format() to take a flags argument 2011-10-05 13:45:29 -07:00
walker.h
wrap-for-bin.sh i18n: add infrastructure for translating Git with gettext 2011-12-05 20:46:55 -08:00
wrapper.c
write_or_die.c
ws.c
wt-status.c Convert resolve_ref+xstrdup to new resolve_refdup function 2011-12-13 09:26:52 -08:00
wt-status.h
xdiff-interface.c
xdiff-interface.h
zlib.c bulk-checkin: replace fast-import based implementation 2011-12-01 11:46:09 -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.
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
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://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.