Go to file
Julian Phillips 73cf0822b2 remote: Make ref_remove_duplicates faster for large numbers of refs
The ref_remove_duplicates function was very slow at dealing with very
large numbers of refs.  This is because it was using a linear search
through all remaining refs to find any duplicates of the current ref.

Rewriting it to use a string list to keep track of which refs have
already been seen and removing duplicates when they are found is much
more efficient.

Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-10-27 23:38:43 -07:00
Documentation Merge 1.6.4.4 in 2009-09-16 15:04:21 -07:00
block-sha1 remove ARM and Mozilla SHA1 implementations 2009-08-18 14:19:40 -07:00
compat start_command: do not clobber cmd->env on Windows code path 2009-09-11 16:33:54 -07:00
contrib completion: Replace config --list with --get-regexp 2009-09-13 13:40:25 -07:00
git-gui
gitk-git Merge git://git.kernel.org/pub/scm/gitk/gitk 2009-08-16 03:46:51 -07:00
gitweb Merge branch 'mr/gitweb-snapshot' 2009-08-31 22:09:53 -07:00
perl
ppc
t Merge branch 'jc/maint-unpack-objects-strict' into maint 2009-09-16 14:45:18 -07:00
templates
xdiff Merge branch 'tf/diff-whitespace-incomplete-line' into maint 2009-09-16 14:27:08 -07:00
.gitattributes .gitattributes: CR at the end of the line is an error 2009-06-21 10:42:37 -07:00
.gitignore Merge branch 'db/vcs-helper' 2009-09-13 01:31:55 -07:00
.mailmap Nicolas Pitre has a new email address 2009-09-14 02:23:36 -07:00
COPYING
GIT-VERSION-GEN GIT 1.6.4.4 2009-09-16 14:53:26 -07:00
INSTALL INSTALL: Describe dependency knobs from Makefile 2009-09-10 21:34:43 -07:00
Makefile Merge branch 'jk/unwanted-advices' 2009-09-13 01:33:18 -07:00
README
RelNotes GIT 1.6.4.4 2009-09-16 14:53:26 -07:00
abspath.c abspath.c: move declaration of 'len' into inner block and use appropriate type 2009-08-27 16:20:53 -07:00
advice.c status: make "how to stage" messages optional 2009-09-11 21:33:24 -07:00
advice.h status: make "how to stage" messages optional 2009-09-11 21:33:24 -07:00
alias.c
alloc.c
archive-tar.c
archive-zip.c
archive.c git-archive: add '-o' as a alias for '--output' 2009-09-13 13:23:40 -07:00
archive.h
attr.c attr: plug minor memory leak 2009-06-30 16:12:24 -07:00
attr.h
base85.c Fix big left-shifts of unsigned char 2009-06-18 09:22:46 -07:00
bisect.c git-bisect: call the found commit "*the* first bad commit" 2009-08-26 12:05:57 -07:00
bisect.h
blob.c
blob.h
branch.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
branch.h
builtin-add.c don't dereference NULL upon fdopen failure 2009-09-13 01:32:20 -07:00
builtin-annotate.c
builtin-apply.c builtin-apply.c: get rid of an unnecessary use of temporary array 2009-09-01 08:02:51 -07:00
builtin-archive.c git-archive: infer output format from filename when unspecified 2009-09-13 13:54:39 -07:00
builtin-bisect--helper.c
builtin-blame.c Style fixes, add a space after if/for/while. 2009-08-31 23:26:28 -07:00
builtin-branch.c UI consistency: allow --force for where -f means force 2009-08-29 14:08:03 -07:00
builtin-bundle.c
builtin-cat-file.c
builtin-check-attr.c
builtin-check-ref-format.c
builtin-checkout-index.c
builtin-checkout.c Merge branch 'jk/maint-1.6.3-checkout-unborn' into maint 2009-09-16 14:26:56 -07:00
builtin-clean.c UI consistency: allow --force for where -f means force 2009-08-29 14:08:03 -07:00
builtin-clone.c preserve mtime of local clone 2009-09-13 01:32:26 -07:00
builtin-commit-tree.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
builtin-commit.c git commit --dry-run -v: show diff in color when asked 2009-08-15 02:33:21 -07:00
builtin-config.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
builtin-count-objects.c
builtin-describe.c git-describe: Die early if there are no possible descriptions 2009-08-06 13:35:55 -07:00
builtin-diff-files.c
builtin-diff-index.c
builtin-diff-tree.c
builtin-diff.c Show usage string for 'git log -h', 'git show -h' and 'git diff -h' 2009-08-07 14:40:29 -07:00
builtin-fast-export.c git fast-export: add --no-data option 2009-07-31 07:48:09 -07:00
builtin-fetch--tool.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
builtin-fetch-pack.c
builtin-fetch.c fetch: Speed up fetch by rewriting find_non_local_tags 2009-09-18 16:32:33 -07:00
builtin-fmt-merge-msg.c Use die_errno() instead of die() when checking syscalls 2009-06-27 11:14:53 -07:00
builtin-for-each-ref.c Style fixes, add a space after if/for/while. 2009-08-31 23:26:28 -07:00
builtin-fsck.c Merge branch 'cc/replace' 2009-08-21 18:47:53 -07:00
builtin-gc.c
builtin-grep.c Merge branch 'maint' 2009-09-13 01:30:53 -07:00
builtin-help.c Fix various sparse warnings in the git source code 2009-06-20 21:52:55 -07:00
builtin-init-db.c Merge branch 'ns/init-mkdir' 2009-08-05 12:39:33 -07:00
builtin-log.c git-log: allow --decorate[=short|full] 2009-08-26 12:05:58 -07:00
builtin-ls-files.c Add 'fill_directory()' helper function for directory traversal 2009-07-09 01:11:26 -07:00
builtin-ls-remote.c
builtin-ls-tree.c
builtin-mailinfo.c add documentation for mailinfo.scissors and '--no-scissors' 2009-09-11 00:23:07 -07:00
builtin-mailsplit.c don't dereference NULL upon fdopen failure 2009-09-13 01:32:20 -07:00
builtin-merge-base.c git-merge-base/git-show-branch: Cleanup documentation and usage 2009-08-05 10:28:05 -07:00
builtin-merge-file.c
builtin-merge-ours.c
builtin-merge-recursive.c
builtin-merge.c Merge branch 'jk/maint-merge-msg-fix' 2009-08-16 04:13:04 -07:00
builtin-mktree.c
builtin-mv.c UI consistency: allow --force for where -f means force 2009-08-29 14:08:03 -07:00
builtin-name-rev.c
builtin-pack-objects.c Merge branch 'np/maint-1.6.3-deepen' 2009-09-07 15:23:50 -07:00
builtin-pack-refs.c
builtin-prune-packed.c prune-packed: migrate to parse-options 2009-07-10 23:57:21 -07:00
builtin-prune.c
builtin-push.c git-push: Accept -n as a synonym for --dry-run. 2009-09-13 11:29:18 -07:00
builtin-read-tree.c read-tree: Fix regression with creation of a new index file. 2009-08-17 09:20:52 -07:00
builtin-receive-pack.c receive-pack: remove unnecessary run_status report 2009-07-06 02:45:52 -07:00
builtin-reflog.c use write_str_in_full helper to avoid literal string lengths 2009-09-13 01:31:10 -07:00
builtin-remote.c Style fixes, add a space after if/for/while. 2009-08-31 23:26:28 -07:00
builtin-replace.c
builtin-rerere.c
builtin-reset.c Merge branch 'tr/reset-checkout-patch' 2009-09-07 15:24:38 -07:00
builtin-rev-list.c
builtin-rev-parse.c Merge branch 'tr/die_errno' 2009-07-06 09:39:46 -07:00
builtin-revert.c Use die_errno() instead of die() when checking syscalls 2009-06-27 11:14:53 -07:00
builtin-rm.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
builtin-send-pack.c transport: pass "quiet" flag to pack-objects 2009-08-05 20:14:09 -07:00
builtin-shortlog.c Style fixes, add a space after if/for/while. 2009-08-31 23:26:28 -07:00
builtin-show-branch.c git-merge-base/git-show-branch --merge-base: Documentation and test 2009-08-05 10:29:37 -07:00
builtin-show-ref.c show-ref: migrate to parse-options 2009-06-20 23:50:42 -07:00
builtin-stripspace.c Use die_errno() instead of die() when checking syscalls 2009-06-27 11:14:53 -07:00
builtin-symbolic-ref.c
builtin-tag.c UI consistency: allow --force for where -f means force 2009-08-29 14:08:03 -07:00
builtin-tar-tree.c Use die_errno() instead of die() when checking syscalls 2009-06-27 11:14:53 -07:00
builtin-unpack-objects.c Merge branch 'jc/maint-unpack-objects-strict' into maint 2009-09-16 14:45:18 -07:00
builtin-update-index.c
builtin-update-ref.c
builtin-update-server-info.c update-server-info: make builtin, use parseopt 2009-08-29 14:07:25 -07:00
builtin-upload-archive.c Merge branch 'pb/maint-1.6.2-userdiff-fix' into maint 2009-06-21 21:08:05 -07:00
builtin-verify-pack.c Merge branch 'maint' 2009-08-07 22:35:17 -07:00
builtin-verify-tag.c verify-tag: migrate to parse-options 2009-07-10 23:57:15 -07:00
builtin-write-tree.c write-tree: migrate to parse-options 2009-07-10 23:56:40 -07:00
builtin.h update-server-info: make builtin, use parseopt 2009-08-29 14:07:25 -07:00
bundle.c don't dereference NULL upon fdopen failure 2009-09-13 01:32:20 -07:00
bundle.h
cache-tree.c Improve on the 'invalid object' error message at commit time 2009-07-14 13:50:33 -07:00
cache-tree.h
cache.h Merge branch 'jk/unwanted-advices' 2009-09-13 01:33:18 -07:00
check-builtins.sh
check-racy.c
check_bindir
color.c
color.h
combine-diff.c Merge branch 'maint' 2009-07-22 21:56:46 -07:00
command-list.txt
commit.c use write_str_in_full helper to avoid literal string lengths 2009-09-13 01:31:10 -07:00
commit.h Merge branch 'tr/reset-checkout-patch' 2009-09-07 15:24:38 -07:00
config.c Merge branch 'jk/unwanted-advices' 2009-09-13 01:33:18 -07:00
config.mak.in configure.ac: rework/fix the NEEDS_RESOLV and NEEDS_LIBGEN tests 2009-07-22 21:56:51 -07:00
configure.ac remove ARM and Mozilla SHA1 implementations 2009-08-18 14:19:40 -07:00
connect.c Style fixes, add a space after if/for/while. 2009-08-31 23:26:28 -07:00
convert.c run_command: return exit code as positive value 2009-07-05 12:16:27 -07:00
copy.c preserve mtime of local clone 2009-09-13 01:32:26 -07:00
csum-file.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
csum-file.h
ctype.c
daemon.c Merge branch 'tr/die_errno' 2009-07-06 09:39:46 -07:00
date.c fix approxidate parsing of relative months and years 2009-08-30 22:04:56 -07:00
decorate.c
decorate.h
delta.h Fix big left-shifts of unsigned char 2009-06-18 09:22:46 -07:00
diff-delta.c Nicolas Pitre has a new email address 2009-09-14 02:23:36 -07:00
diff-lib.c Merge branch 'jc/shortstatus' 2009-08-28 19:38:19 -07:00
diff-no-index.c
diff.c Style fixes, add a space after if/for/while. 2009-08-31 23:26:28 -07:00
diff.h
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c
diffcore.h
dir.c clean: require double -f options to nuke nested git repository and work tree 2009-07-29 12:22:30 -07:00
dir.h clean: require double -f options to nuke nested git repository and work tree 2009-07-29 12:22:30 -07:00
editor.c
entry.c check_path(): allow symlinked directories to checkout-index --prefix 2009-08-18 03:32:45 -07:00
environment.c Merge branch 'cc/replace' 2009-08-21 18:47:53 -07:00
exec_cmd.c
exec_cmd.h
fast-import.c Use die_errno() instead of die() when checking syscalls 2009-06-27 11:14:53 -07:00
fetch-pack.h
fixup-builtins
fsck.c Allow the Unix epoch to be a valid commit date 2009-07-06 09:36:16 -07:00
fsck.h
generate-cmdlist.sh
git-add--interactive.perl Merge branch 'tr/reset-checkout-patch' 2009-09-07 15:24:38 -07:00
git-am.sh am/mailinfo: Disable scissors processing by default 2009-08-26 22:22:22 -07:00
git-archimport.perl
git-bisect.sh git-bisect: call the found commit "*the* first bad commit" 2009-08-26 12:05:57 -07:00
git-compat-util.h Merge branch 'lt/block-sha1' 2009-08-27 17:00:35 -07:00
git-cvsexportcommit.perl Avoid generating a warning if $fullname{$file} is undefined 2009-07-06 09:36:43 -07:00
git-cvsimport.perl Do not scramble password read from .cvspass 2009-09-05 22:34:27 -07:00
git-cvsserver.perl git-cvsserver: no longer use deprecated 'git-subcommand' commands 2009-09-02 18:41:42 -07:00
git-difftool--helper.sh
git-difftool.perl
git-filter-branch.sh filter-branch: make the usage string fit on 80 chars terminals. 2009-08-18 13:35:55 -07:00
git-instaweb.sh Add support for the Mongoose web server. 2009-08-23 15:03:53 -07:00
git-lost-found.sh
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh
git-mergetool.sh
git-parse-remote.sh
git-pull.sh allow pull --rebase on branch yet to be born 2009-08-12 15:50:09 -07:00
git-quiltimport.sh
git-rebase--interactive.sh Fix rebase -p --onto 2009-07-22 11:15:06 -07:00
git-rebase.sh rebase: use plumbing to show dirty state 2009-09-11 21:41:15 -07:00
git-relink.perl
git-repack.sh Merge branch 'js/maint-graft-unhide-true-parents' 2009-07-25 00:45:03 -07:00
git-request-pull.sh request-pull: optionally show a patch as well 2009-07-29 11:02:49 -07:00
git-send-email.perl Merge branch 'maint-1.6.3' into maint 2009-08-05 12:37:24 -07:00
git-sh-setup.sh git-sh-setup: introduce say() for quiet options 2009-06-18 09:50:31 -07:00
git-stash.sh Merge branch 'tr/reset-checkout-patch' 2009-09-07 15:24:38 -07:00
git-submodule.sh Merge branch 'jh/submodule-foreach' 2009-08-27 16:59:25 -07:00
git-svn.perl Merge branch 'maint' 2009-09-13 01:30:53 -07:00
git-web--browse.sh web--browse: fix Mac OS X GUI detection for 10.6 2009-09-14 02:27:25 -07:00
git.c Merge branch 'db/vcs-helper' 2009-09-13 01:31:55 -07:00
git.spec.in Nicolas Pitre has a new email address 2009-09-14 02:23:36 -07:00
graph.c Merge branch 'as/maint-graph-interesting-fix' 2009-08-27 16:59:56 -07:00
graph.h
grep.c grep: simplify -p output 2009-07-02 21:36:42 -07:00
grep.h Merge branch 'maint' 2009-09-13 01:30:53 -07:00
hash-object.c Use die_errno() instead of die() when checking syscalls 2009-06-27 11:14:53 -07:00
hash.c
hash.h
help.c Merge branch 'maint-1.6.3' into maint 2009-08-12 16:15:55 -07:00
help.h
http-fetch.c git-http-fetch: not a builtin 2009-08-05 18:37:12 -07:00
http-push.c http-push: fix xml_entities() string parsing overrun 2009-07-06 09:36:08 -07:00
http-walker.c Merge branch 'rc/maint-http-local-slot-fix' into maint 2009-06-21 21:15:31 -07:00
http.c Merge branch 'maint' 2009-09-14 14:48:27 -07:00
http.h
ident.c
imap-send.c Fix various sparse warnings in the git source code 2009-06-20 21:52:55 -07:00
index-pack.c Merge branch 'tr/die_errno' 2009-07-06 09:39:46 -07:00
levenshtein.c
levenshtein.h
list-objects.c
list-objects.h
ll-merge.c Merge branch 'js/run-command-updates' 2009-08-10 22:14:57 -07:00
ll-merge.h
lockfile.c
log-tree.c git-log: allow --decorate[=short|full] 2009-08-26 12:05:58 -07:00
log-tree.h git-log: allow --decorate[=short|full] 2009-08-26 12:05:58 -07:00
mailmap.c Fix various sparse warnings in the git source code 2009-06-20 21:52:55 -07:00
mailmap.h
match-trees.c
merge-file.c
merge-index.c
merge-recursive.c merge-recursive: give less scary messages when merge did not start 2009-09-08 14:46:36 -07:00
merge-recursive.h
merge-tree.c
mktag.c Merge branch 'cc/replace' 2009-08-21 18:47:53 -07:00
name-hash.c
object.c
object.h
pack-check.c
pack-redundant.c Style fixes, add a space after if/for/while. 2009-08-31 23:26:28 -07:00
pack-refs.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
pack-refs.h
pack-revindex.c janitor: useless checks before free 2009-07-22 21:57:41 -07:00
pack-revindex.h
pack-write.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
pack.h
pager.c pager: set LESS=FRSX also on Windows 2009-09-11 16:35:08 -07:00
parse-options.c Merge branch 'cc/replace' 2009-08-21 18:47:53 -07:00
parse-options.h Merge branch 'cc/replace' 2009-08-21 18:47:53 -07:00
patch-delta.c Nicolas Pitre has a new email address 2009-09-14 02:23:36 -07:00
patch-id.c
patch-ids.c
patch-ids.h
path.c
pkt-line.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
pkt-line.h
preload-index.c janitor: add DIV_ROUND_UP and use it. 2009-07-22 21:57:41 -07:00
pretty.c git-log: allow --decorate[=short|full] 2009-08-26 12:05:58 -07:00
progress.c Nicolas Pitre has a new email address 2009-09-14 02:23:36 -07:00
progress.h
quote.c Fix various sparse warnings in the git source code 2009-06-20 21:52:55 -07:00
quote.h
reachable.c
reachable.h
read-cache.c reset: make the reminder output consistent with "checkout" 2009-08-21 21:19:35 -07:00
reflog-walk.c
reflog-walk.h
refs.c Merge branch 'cc/replace' 2009-08-21 18:47:53 -07:00
refs.h
remote-curl.c Use an external program to implement fetching with curl 2009-08-05 10:34:09 -07:00
remote.c remote: Make ref_remove_duplicates faster for large numbers of refs 2009-10-27 23:38:43 -07:00
remote.h Merge branch 'mg/pushurl' 2009-06-20 21:47:27 -07:00
replace_object.c
rerere.c use write_str_in_full helper to avoid literal string lengths 2009-09-13 01:31:10 -07:00
rerere.h
revision.c Merge branch 'maint-1.5.6' into maint-1.6.0 2009-08-27 20:03:35 -07:00
revision.h Merge branch 'as/maint-graph-interesting-fix' 2009-08-27 16:59:56 -07:00
run-command.c start_command: do not clobber cmd->env on Windows code path 2009-09-11 16:33:54 -07:00
run-command.h run_command: report failure to execute the program, but optionally don't 2009-07-06 02:45:50 -07:00
send-pack.h transport: pass "quiet" flag to pack-objects 2009-08-05 20:14:09 -07:00
server-info.c
setup.c Use die_errno() instead of die() when checking syscalls 2009-06-27 11:14:53 -07:00
sha1-lookup.c
sha1-lookup.h
sha1_file.c Merge branch 'cc/replace' 2009-08-21 18:47:53 -07:00
sha1_name.c sha1_name.c: avoid unnecessary strbuf_release 2009-07-16 15:09:21 -07:00
shallow.c
shell.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
shortlog.h
show-index.c
sideband.c
sideband.h
sigchain.c
sigchain.h
strbuf.c strbuf: add new function strbuf_getwholeline() 2009-08-05 12:13:56 -07:00
strbuf.h strbuf: add new function strbuf_getwholeline() 2009-08-05 12:13:56 -07:00
string-list.c
string-list.h
symlinks.c lstat_cache: guard against full match of length of 'name' parameter 2009-07-29 20:20:12 -07:00
tag.c
tag.h
tar.h
test-chmtime.c
test-ctype.c
test-date.c refactor test-date interface 2009-08-30 22:04:46 -07:00
test-delta.c Nicolas Pitre has a new email address 2009-09-14 02:23:36 -07:00
test-dump-cache-tree.c
test-genrandom.c
test-match-trees.c
test-parse-options.c Fix various sparse warnings in the git source code 2009-06-20 21:52:55 -07:00
test-path-utils.c
test-sha1.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
test-sha1.sh
test-sigchain.c
thread-utils.c
thread-utils.h
trace.c
transport-helper.c don't dereference NULL upon fdopen failure 2009-09-13 01:32:20 -07:00
transport.c Merge branch 'db/vcs-helper' 2009-09-13 01:31:55 -07:00
transport.h Merge branch 'db/vcs-helper' 2009-09-13 01:31:55 -07:00
tree-diff.c Merge branch 'ne/maint-1.6.0-diff-tree-t-r-show-directory' 2009-07-01 19:40:47 -07:00
tree-walk.c
tree-walk.h
tree.c
tree.h
unimplemented.sh
unpack-file.c Use die_errno() instead of die() when checking syscalls 2009-06-27 11:14:53 -07:00
unpack-trees.c Merge branch 'maint' 2009-07-18 16:57:47 -07:00
unpack-trees.h read-tree: migrate to parse-options 2009-06-27 14:11:28 -07:00
upload-pack.c don't dereference NULL upon fdopen failure 2009-09-13 01:32:20 -07:00
usage.c die_errno(): double % in strerror() output just in case 2009-06-27 11:14:53 -07:00
userdiff.c avoid exponential regex match for java and objc function names 2009-06-18 09:52:10 -07:00
userdiff.h
utf8.c
utf8.h
var.c Style fixes, add a space after if/for/while. 2009-08-31 23:26:28 -07:00
walker.c janitor: useless checks before free 2009-07-22 21:57:41 -07:00
walker.h
wrapper.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
write_or_die.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
ws.c Fix severe breakage in "git-apply --whitespace=fix" 2009-07-25 01:29:20 -07:00
wt-status.c status: make "how to stage" messages optional 2009-09-11 21:33:24 -07:00
wt-status.h wt-status: collect untracked files in a separate "collect" phase 2009-08-10 12:56:43 -07:00
xdiff-interface.c userdiff: add xdiff_clear_find_func() 2009-07-01 19:16:37 -07:00
xdiff-interface.h userdiff: add xdiff_clear_find_func() 2009-07-01 19:16:37 -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
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.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.