Git with broken hash generation to generate collisions between object IDs. Don't use this! https://undefinedbehavior.de/posts/commit-vandalism/
Go to file
Junio C Hamano 6d24ad971c Optimize rename detection for a huge diff
When there are N deleted paths and M created paths, we used to
allocate (N x M) "struct diff_score" that record how similar
each of the pair is, and picked the <src,dst> pair that gives
the best match first, and then went on to process worse matches.

This sorting is done so that when two new files in the postimage
that are similar to the same file deleted from the preimage, we
can process the more similar one first, and when processing the
second one, it can notice "Ah, the source I was planning to say
I am a copy of is already taken by somebody else" and continue
on to match itself with another file in the preimage with a
lessor match.  This matters to a change introduced between
1.5.3.X series and 1.5.4-rc, that lets the code to favor unused
matches first and then falls back to using already used
matches.

This instead allocates and keeps only a handful rename source
candidates per new files in the postimage.  I.e. it makes the
memory requirement from O(N x M) to O(M).

For each dst, we compute similarlity with all sources (i.e. the
number of similarity estimate computations is still O(N x M)),
but we keep handful best src candidates for each dst.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-02-13 15:44:20 -08:00
arm War on whitespace 2007-06-07 00:04:01 -07:00
compat Simplify strchrnul() compat code 2007-11-11 12:10:35 -08:00
contrib git-p4: Fix an obvious typo 2008-02-03 13:00:15 -08:00
Documentation man pages are littered with .ft C and others 2008-02-05 00:30:22 -08:00
git-gui Merge git://repo.or.cz/git-gui 2008-01-23 21:37:12 -08:00
gitk-git Merge git://git.kernel.org/pub/scm/gitk/gitk 2008-01-20 16:57:56 -08:00
gitweb gitweb: Make use of the $git_dir variable at sub git_get_project_description 2008-01-29 23:55:18 -08:00
mozilla-sha1 War on whitespace 2007-06-07 00:04:01 -07:00
perl Don't cache DESTDIR in perl/perl.mak. 2007-12-11 00:38:46 -08:00
ppc War on whitespace 2007-06-07 00:04:01 -07:00
t Test :/string form for checkout 2008-02-04 20:10:07 -08:00
templates Officially deprecate repo-config. 2008-01-17 22:52:40 -08:00
xdiff Remove unreachable statements 2007-11-15 21:23:47 -08:00
.gitignore Remove old generated files from .gitignore. 2007-12-20 17:05:31 -08:00
.mailmap GIT 1.5.4-rc1 2007-12-19 17:24:04 -08:00
alloc.c Clean up object creation to use more common code 2007-04-16 23:36:16 -07:00
archive-tar.c Fix the expansion pattern of the pseudo-static path buffer. 2007-09-20 22:19:17 -07:00
archive-zip.c preserve executable bits in zip archives 2007-09-18 14:56:55 -07:00
archive.c Move sha1_file_to_archive into libgit 2008-01-18 12:33:50 -08:00
archive.h archive: specfile support (--pretty=format: in archive files) 2007-09-03 16:46:16 -07:00
attr.c Merge branch 'maint' 2007-10-19 01:18:55 -04: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
builtin-add.c Improve use of lockfile API 2008-01-16 15:35:35 -08:00
builtin-annotate.c War on whitespace 2007-06-07 00:04:01 -07:00
builtin-apply.c Improve use of lockfile API 2008-01-16 15:35:35 -08:00
builtin-archive.c Move sha1_file_to_archive into libgit 2008-01-18 12:33:50 -08:00
builtin-blame.c Fix grammar nits in documentation and in code comments. 2008-01-03 09:15:17 -08:00
builtin-branch.c git config --get-colorbool 2007-12-05 17:57:11 -08:00
builtin-bundle.c bundle create: keep symbolic refs' names instead of resolving them 2007-11-22 15:15:25 -08:00
builtin-cat-file.c Cleanup variables in cat-file 2007-04-22 00:43:24 -07:00
builtin-check-attr.c Full rework of quote_c_style and write_name_quoted. 2007-09-20 23:45:49 -07:00
builtin-check-ref-format.c
builtin-checkout-index.c Improve use of lockfile API 2008-01-16 15:35:35 -08:00
builtin-clean.c git-clean: fix off-by-one memory access when given no arguments 2008-01-12 11:10:09 -08:00
builtin-commit-tree.c Re-fix "builtin-commit: fix --signoff" 2007-12-09 00:55:55 -08:00
builtin-commit.c Fix "git-commit -C $tag" 2008-02-03 00:56:35 -08:00
builtin-config.c config --get-colorbool: diff.color is a deprecated synonym to color.diff 2007-12-05 23:05:10 -08:00
builtin-count-objects.c Make builtin-count-objects.c use parse_options. 2007-10-29 21:03:31 -07:00
builtin-describe.c make 'git describe --all --contains' work 2007-12-19 14:59:19 -08:00
builtin-diff-files.c add a "basic" diff config callback 2008-01-04 16:05:23 -08:00
builtin-diff-index.c add a "basic" diff config callback 2008-01-04 16:05:23 -08:00
builtin-diff-tree.c add a "basic" diff config callback 2008-01-04 16:05:23 -08:00
builtin-diff.c Improve use of lockfile API 2008-01-16 15:35:35 -08:00
builtin-fast-export.c Fix git-fast-export for zero-sized blobs 2007-12-12 10:59:22 -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 Improve use of lockfile API 2008-01-16 15:35:35 -08:00
builtin-fetch.c Rewrite builtin-fetch option parsing to use parse_options(). 2007-12-04 23:48:39 -08:00
builtin-fmt-merge-msg.c Fix parent rewriting in --early-output 2007-11-14 03:59:37 -08:00
builtin-for-each-ref.c for-each-ref: Fix quoting style constants. 2007-12-06 07:53:20 -08:00
builtin-fsck.c git-fsck: report missing author/commit line in a commit as an error 2008-02-03 16:04:56 -08:00
builtin-gc.c slightly better auto gc message 2008-01-07 14:02:25 -08:00
builtin-grep.c Don't access line[-1] for a zero-length "line" from fgets. 2008-01-04 12:28:58 -08:00
builtin-http-fetch.c http-push and http-fetch: handle URLs without trailing / 2008-01-20 15:18:34 -08:00
builtin-init-db.c fix misuse of prefix_path() 2008-02-03 22:49:01 -08:00
builtin-log.c git show <tag>: show the tagger 2007-12-19 14:59:11 -08:00
builtin-ls-files.c Export three helper functions from ls-files 2007-11-22 17:05:05 -08:00
builtin-ls-remote.c ls-remote: add -t and -h options. 2008-01-15 17:04:21 -08:00
builtin-ls-tree.c Full rework of quote_c_style and write_name_quoted. 2007-09-20 23:45:49 -07:00
builtin-mailinfo.c Make mailsplit and mailinfo strip whitespace from the start of the input 2007-11-02 01:58:40 -07:00
builtin-mailsplit.c Merge branch 'maint' 2007-11-09 00:21:44 -08:00
builtin-merge-base.c Make every builtin-*.c file #include "builtin.h" 2007-07-14 22:44:09 -07:00
builtin-merge-file.c Make every builtin-*.c file #include "builtin.h" 2007-07-14 22:44:09 -07:00
builtin-merge-ours.c git-merge-ours: make it a builtin. 2007-11-22 14:21:59 -08:00
builtin-mv.c Improve use of lockfile API 2008-01-16 15:35:35 -08:00
builtin-name-rev.c Make builtin-name-rev.c use parse_options. 2007-10-29 21:03:31 -07:00
builtin-pack-objects.c pack-objects: Fix segfault when object count is less than thread count 2008-01-21 17:24:12 -08:00
builtin-pack-refs.c Improve use of lockfile API 2008-01-16 15:35:35 -08:00
builtin-prune-packed.c return the prune-packed progress display to the inner loop 2007-11-01 15:22:32 -07:00
builtin-prune.c Add "--expire <time>" option to 'git prune' 2007-11-30 15:47:01 -08:00
builtin-push.c Merge branch 'sp/refspec-match' 2007-12-04 17:07:10 -08:00
builtin-read-tree.c Improve use of lockfile API 2008-01-16 15:35:35 -08:00
builtin-reflog.c reflog-expire: Avoid creating new files in a directory inside readdir(3) loop 2008-01-29 21:48:57 -08:00
builtin-rerere.c Improve use of lockfile API 2008-01-16 15:35:35 -08:00
builtin-reset.c Improve use of lockfile API 2008-01-16 15:35:35 -08:00
builtin-rev-list.c Don't access line[-1] for a zero-length "line" from fgets. 2008-01-04 12:28:58 -08:00
builtin-rev-parse.c git-rev-parse --symbolic-full-name 2008-01-06 18:41:43 -08:00
builtin-revert.c Improve use of lockfile API 2008-01-16 15:35:35 -08:00
builtin-rm.c Improve use of lockfile API 2008-01-16 15:35:35 -08:00
builtin-send-pack.c Update callers of check_ref_format() 2008-01-02 11:20:09 -08:00
builtin-shortlog.c shortlog: mention the "-e" option in the usage 2008-01-09 12:25:27 -08:00
builtin-show-branch.c format-patch -s: add MIME encoding header if signer's name requires so 2007-11-07 18:37:27 -08:00
builtin-show-ref.c Make every builtin-*.c file #include "builtin.h" 2007-07-14 22:44:09 -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 builtin-symbolic-ref.c use parse_options. 2007-10-29 21:03:31 -07:00
builtin-tag.c Fix $EDITOR regression introduced by rewrite in C. 2007-12-22 10:26:08 -08:00
builtin-tar-tree.c prefixcmp(): fix-up mechanical conversion. 2007-02-20 22:03:15 -08:00
builtin-unpack-objects.c relax usage of the progress API 2007-10-30 16:08:40 -07:00
builtin-update-index.c Improve use of lockfile API 2008-01-16 15:35:35 -08:00
builtin-update-ref.c Make builtin-update-ref.c use parse_options 2007-10-29 21:03:31 -07:00
builtin-upload-archive.c short i/o: fix calls to read to use xread or read_in_full 2007-01-08 15:44:47 -08:00
builtin-verify-pack.c Load core configuration in git-verify-pack. 2006-12-29 11:36:45 -08:00
builtin-verify-tag.c verify-tag: also grok CR/LFs in the tag signature 2007-09-03 16:44:35 -07:00
builtin-write-tree.c Improve use of lockfile API 2008-01-16 15:35:35 -08:00
builtin.h Merge branch 'kh/commit' 2007-12-04 17:16:33 -08:00
bundle.c Improve use of lockfile API 2008-01-16 15:35:35 -08:00
bundle.h Move bundle specific stuff into bundle.[ch] 2007-09-19 03:22:30 -07:00
cache-tree.c Small cache_tree_write refactor. 2007-09-26 02:27:06 -07:00
cache-tree.h Small cache_tree_write refactor. 2007-09-26 02:27:06 -07:00
cache.h Fix random fast-import errors when compiled with NO_MMAP 2008-01-17 22:39:20 -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
color.c Support GIT_PAGER_IN_USE environment variable 2007-12-11 00:42:05 -08:00
color.h git config --get-colorbool 2007-12-05 17:57:11 -08:00
combine-diff.c Fix rewrite_diff() name quoting. 2007-12-26 17:13:36 -08:00
command-list.txt Officially deprecate repo-config. 2008-01-17 22:52:40 -08:00
commit.c parse_commit_buffer: tighten checks while parsing 2008-01-20 11:00:57 -08:00
commit.h add -i: Fix running from a subdirectory 2007-11-25 10:23:13 -08:00
config.c fix misuse of prefix_path() 2008-02-03 22:49:01 -08:00
config.mak.in autoconf: define NO_SYS_SELECT_H on systems without <sys/select.h>. 2008-01-25 22:26:08 -08:00
configure.ac autoconf: define NO_SYS_SELECT_H on systems without <sys/select.h>. 2008-01-25 22:26:08 -08:00
connect.c Miscellaneous const changes and utilities 2007-11-02 22:40:43 -07:00
convert.c treat any file with NUL as binary 2008-01-16 09:10:34 -08:00
copy.c War on whitespace 2007-06-07 00:04:01 -07:00
COPYING
csum-file.c remove dead code from the csum-file interface 2007-11-05 12:55:33 -08:00
csum-file.h remove dead code from the csum-file interface 2007-11-05 12:55:33 -08:00
ctype.c War on whitespace 2007-06-07 00:04:01 -07:00
daemon.c Style: place opening brace of a function definition at column 1 2007-11-08 15:35:32 -08:00
date.c parse_date_format(): convert a format name to an enum date_mode 2007-09-29 20:31:59 -07:00
decorate.c Fix a copy-n-paste bug in the object decorator code. 2007-04-20 19:16:12 -07:00
decorate.h Add a generic "object decorator" interface, and make object refs use it 2007-04-16 16:51:09 -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 Use is_absolute_path() in diff-lib.c, lockfile.c, setup.c, trace.c 2007-11-26 12:32:05 -08:00
diff.c color unchanged lines as "plain" in "diff --color-words" 2008-01-18 01:29:38 -08:00
diff.h add a "basic" diff config callback 2008-01-04 16:05:23 -08: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 Optimize rename detection for a huge diff 2008-02-13 15:44:20 -08:00
diffcore.h copy vs rename detection: avoid unnecessary O(n*m) loops 2007-10-26 23:18:06 -07:00
dir.c Fix a memory leak 2007-12-16 12:50:08 -08:00
dir.h per-directory-exclude: lazily read .gitignore files 2007-11-29 02:19:14 -08:00
dump-cache-tree.c Do not use memcmp(sha1_1, sha1_2, 20) with hardcoded length. 2006-08-17 14:23:53 -07:00
entry.c Merge branch 'jc/maint-add-sync-stat' 2007-11-14 14:15:40 -08:00
environment.c Support GIT_PAGER_IN_USE environment variable 2007-12-11 00:42:05 -08:00
exec_cmd.c Trace and quote with argv: get rid of unneeded count argument. 2007-12-03 22:11:53 -08:00
exec_cmd.h use only the $PATH for exec'ing git commands 2007-10-29 20:51:37 -07:00
fast-import.c Document the hairy gfi_unpack_entry part of fast-import 2008-01-21 01:04:12 -08:00
fetch-pack.h Always obtain fetch-pack arguments from struct fetch_pack_args 2007-09-19 03:22:31 -07:00
fixup-builtins Start deprecating "git-command" in favor of "git command" 2007-07-02 22:39:10 -07:00
generate-cmdlist.sh Consolidate command list to one. 2007-12-01 23:48:28 -08:00
git-add--interactive.perl add--interactive: allow diff colors without interactive colors 2008-01-06 18:41:44 -08:00
git-am.sh git-am: fix type in its usage string 2008-02-03 16:01:27 -08:00
git-archimport.perl Make git-archimport log entries more consistent 2007-08-30 19:22:02 -07:00
git-bisect.sh git-bisect visualize: work in non-windowed environments better 2007-12-08 02:58:26 -08:00
git-checkout.sh Fix "git checkout -b foo ':/substring'" 2008-02-01 19:08:14 -08:00
git-clone.sh clone: fix options '-o' and '--origin' to be recognised again 2007-12-19 14:59:18 -08:00
git-compat-util.h pre-POSIX.1-2001 systems do not have <sys/select.h> 2008-01-24 14:01:28 -08:00
git-cvsexportcommit.perl cvsexportcommit: fix massive commits 2007-12-14 12:06:04 -08:00
git-cvsimport.perl cvsimport: remove last use of repo-config from git standard tools 2008-01-13 21:48:22 -08:00
git-cvsserver.perl cvsserver: Fix for histories with multiple roots 2008-01-26 17:58:18 -08:00
git-filter-branch.sh Revert "filter-branch docs: remove brackets so not to imply revision arg is optional" 2008-01-31 13:51:42 -08:00
git-help--browse.sh rename git-browse--help to git-help--browse 2007-12-16 12:52:40 -08:00
git-instaweb.sh instaweb: use 'browser.<tool>.path' config option if it's set. 2008-01-29 00:49:28 -08: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 Support a merge with conflicting gitlink change 2007-12-11 00:40:56 -08:00
git-merge-resolve.sh Fixing comment in merge strategies 2007-08-30 17:18:22 -07:00
git-merge-stupid.sh Fixing comment in merge strategies 2007-08-30 17:18:22 -07:00
git-merge.sh Merge branch 'ph/parseopt-sh' 2007-11-17 21:39:37 -08:00
git-mergetool.sh Allow git-mergetool to handle paths with a leading space 2008-01-07 21:00:54 -08:00
git-parse-remote.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-pull.sh pull --rebase: be cleverer with rebased upstream branches 2008-01-26 18:24:24 -08:00
git-quiltimport.sh Replace instances of export VAR=VAL with VAR=VAL; export VAR 2007-11-28 17:23:18 -08:00
git-rebase--interactive.sh Squelch bogus progress output from git-rebase--interactive 2008-01-14 20:04:02 -08:00
git-rebase.sh Merge branch 'maint' 2007-11-28 17:06:57 -08:00
git-relink.perl git-relink: avoid hard linking in objects/info directory 2008-01-30 00:01:27 -08:00
git-remote.perl Merge branch 'maint' 2007-10-26 23:17:23 -07:00
git-repack.sh Migrate git-repack.sh to use git-rev-parse --parseopt 2007-11-05 22:48:13 -08:00
git-request-pull.sh Merge branch 'ph/parseopt-sh' 2007-11-17 21:39:37 -08:00
git-send-email.perl send-email, fix breakage in combination with --compose 2008-01-21 17:24:12 -08:00
git-sh-setup.sh shell-scripts usage(): consistently exit with non-zero 2007-12-20 12:58:06 -08:00
git-stash.sh git-stash clear: refuse to work with extra parameter for now 2008-01-06 18:41:36 -08:00
git-submodule.sh git-submodule: fix subcommand parser 2008-01-20 20:57:42 -08:00
git-svn.perl Let "git svn" run "git gc --auto" occasionally 2008-02-03 13:00:09 -08:00
GIT-VERSION-GEN GIT 1.5.4 2008-02-01 19:10:10 -08:00
git.c Merge branch 'kh/commit' 2007-12-04 17:16:33 -08:00
git.spec.in Add a BuildRequires for gettext in the spec file. 2008-02-04 23:06:19 -08:00
grep.c Move buffer_is_binary() to xdiff-interface.h 2007-06-15 23:27:23 -07:00
grep.h grep --all-match 2006-09-27 23:59:09 -07:00
hash-object.c git-hash-object should honor config variables 2007-11-11 02:51:53 -08:00
hash.c Do linear-time/space rename logic for exact renames 2007-10-26 23:18:06 -07:00
hash.h Do linear-time/space rename logic for exact renames 2007-10-26 23:18:06 -07:00
help.c rename git-browse--help to git-help--browse 2007-12-16 12:52:40 -08:00
http-push.c http-push and http-fetch: handle URLs without trailing / 2008-01-20 15:18:34 -08:00
http-walker.c Move fetch_ref from http-push.c and http-walker.c to http.c 2007-12-14 21:31:59 -08:00
http.c Move fetch_ref from http-push.c and http-walker.c to http.c 2007-12-14 21:31:59 -08:00
http.h Clarify that http-push being temporarily disabled with older cURL 2008-01-22 00:48:29 -08:00
ident.c Fix grammar nits in documentation and in code comments. 2008-01-03 09:15:17 -08:00
imap-send.c strbuf change: be sure ->buf is never ever NULL. 2007-09-29 02:13:33 -07:00
index-pack.c Merge branch 'np/progress' 2007-11-14 14:04:19 -08:00
INSTALL Mention 'cpio' dependency in INSTALL 2007-10-02 17:35:29 -07:00
interpolate.c Merge branch 'mv/unknown' 2007-10-03 04:28:24 -07:00
interpolate.h Lift 16kB limit of log message output 2007-06-13 00:41:21 -07:00
list-objects.c Fix memory leak in traverse_commit_list 2007-11-10 01:52:54 -08:00
list-objects.h pack-objects: further work on internal rev-list logic. 2006-09-07 02:46:02 -07:00
lockfile.c close_lock_file(): new function in the lockfile API 2008-01-16 15:35:03 -08:00
log-tree.c Make the diff_options bitfields be an unsigned with explicit masks. 2007-11-11 16:54:15 -08:00
log-tree.h rev-list: implement --bisect-all 2007-10-26 23:27:23 -07:00
mailmap.c mailmap: fix bogus for() loop that happened to be safe by accident 2007-12-08 03:40:12 -08:00
mailmap.h Split out mailmap handling out of shortlog 2007-04-29 02:05:06 -07:00
Makefile Add a missing dependency on http.h 2008-01-26 10:52:40 -08: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 War on whitespace 2007-06-07 00:04:01 -07:00
merge-recursive.c Improve use of lockfile API 2008-01-16 15:35:35 -08:00
merge-tree.c xdl_diff: identify call sites. 2007-12-13 23:04:26 -08:00
mktag.c Now that cache.h needs strbuf.h, remove useless includes. 2007-09-16 17:30:03 -07:00
mktree.c Rework unquote_c_style to work on a strbuf. 2007-09-20 23:32:18 -07:00
object-refs.c War on whitespace 2007-06-07 00:04:01 -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 War on whitespace 2007-06-07 00:04:01 -07:00
pack-check.c pack-check: Sort entries by pack offset before unpacking them. 2007-06-06 16:04:02 -07:00
pack-redundant.c War on whitespace 2007-06-07 00:04:01 -07:00
pack-write.c Merge branch 'np/progress' 2007-11-02 16:27:37 -07:00
pack.h Merge branch 'np/progress' 2007-11-02 16:27:37 -07:00
pager.c Support GIT_PAGER_IN_USE environment variable 2007-12-11 00:42:05 -08:00
parse-options.c parse-options: catch likely typo in presense of aggregated options. 2008-01-26 10:53:31 -08:00
parse-options.h parse-options: Allow to hide options from the default usage. 2007-11-22 22:11:28 -08: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-list.c path-list.c: always free strdup'ed paths 2007-08-15 13:43:08 -07:00
path-list.h path-list.c: always free strdup'ed paths 2007-08-15 13:43:08 -07:00
path.c Add is_absolute_path() and make_absolute_path() 2007-08-01 00:38:30 -07:00
pkt-line.c War on whitespace 2007-06-07 00:04:01 -07:00
pkt-line.h
pretty.c custom pretty format: tolerate empty e-mail address 2008-01-06 18:41:43 -08:00
progress.c Flush progress message buffer in display(). 2007-11-20 13:16:15 -08:00
progress.h nicer display of thin pack completion 2007-11-08 15:43:41 -08:00
quote.c Fix rewrite_diff() name quoting. 2007-12-26 17:13:36 -08:00
quote.h Fix rewrite_diff() name quoting. 2007-12-26 17:13:36 -08:00
reachable.c Merge branch 'maint' 2007-07-02 17:12:48 -07:00
reachable.h Move traversal of reachable objects into a separate library. 2007-01-06 22:57:34 -08:00
read-cache.c Merge branch 'jc/maint-add-sync-stat' 2007-11-14 14:15:40 -08:00
README Update README to point at a few key periodical messages to the list 2007-03-25 17:42:32 -07:00
receive-pack.c receive-pack: reject invalid refnames 2008-01-04 15:59:43 -08:00
reflog-walk.c git log -g: Complain, but do not fail, when no reflogs are there 2007-07-24 17:28:10 -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 refs.c: rework ref_locks by abstracting from underlying struct lock_file 2008-01-16 15:36:10 -08:00
refs.h lock_any_ref_for_update(): reject wildcard return from check_ref_format 2008-01-02 02:28:54 -08:00
RelNotes GIT 1.5.3.8 2008-01-07 22:41:43 -08:00
remote.c remote: Fix bogus make_branch() call in configuration reader. 2007-12-14 20:34:56 -08:00
remote.h Add remote.<name>.proxy 2007-12-03 23:43:07 -08:00
revision.c Fix "git log --diff-filter" bug 2007-12-26 11:57:36 -08:00
revision.h shortlog: default to HEAD when the standard input is a tty 2007-12-11 17:01:31 -08:00
run-command.c run-command: Support sending stderr to /dev/null 2007-11-11 17:09:55 -08:00
run-command.h run-command: Support sending stderr to /dev/null 2007-11-11 17:09:55 -08:00
send-pack.h Teach send-pack a mirror mode 2007-11-09 21:14:10 -08:00
server-info.c Don't access line[-1] for a zero-length "line" from fgets. 2008-01-04 12:28:58 -08:00
setup.c Fix grammar nits in documentation and in code comments. 2008-01-03 09:15:17 -08:00
sha1_file.c Fix random fast-import errors when compiled with NO_MMAP 2008-01-17 22:39:20 -08:00
sha1_name.c Merge branch 'sp/refspec-match' 2007-12-04 17:07:10 -08:00
shallow.c War on whitespace 2007-06-07 00:04:01 -07:00
shell.c shell should call the new setup_path() to setup $PATH 2007-10-29 20:51:37 -07:00
show-index.c Use PRIuMAX instead of 'unsigned long long' in show-index 2007-10-21 02:16:57 -04:00
sideband.c recv_sideband: Do not use ANSI escape sequence on dumb terminals. 2008-01-09 12:23:59 -08:00
sideband.h atomic write for sideband remote messages 2006-10-11 11:13:01 -07:00
strbuf.c Uninline prefixcmp() 2008-01-03 01:23:12 -08:00
strbuf.h builtin-commit.c: export GIT_INDEX_FILE for launch_editor as well. 2007-11-26 09:13:17 -08:00
symlinks.c Add has_symlink_leading_path() function. 2007-05-11 22:11:07 -07:00
tag.c parse_tag_buffer: don't parse invalid tags 2008-01-06 18:41:44 -08:00
tag.h
tar.h
test-absolute-path.c Add is_absolute_path() and make_absolute_path() 2007-08-01 00:38:30 -07:00
test-chmtime.c Add test-chmtime: a utility to change mtime on files 2007-02-25 11:09:56 -08: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-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 parse-options: catch likely typo in presense of aggregated options. 2008-01-26 10:53:31 -08:00
test-sha1.c
test-sha1.sh the use of 'tr' in the test suite isn't really portable 2007-12-17 20:49:18 -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 Don't access line[-1] for a zero-length "line" from fgets. 2008-01-04 12:28:58 -08:00
transport.h Merge branch 'aw/mirror-push' into jk/send-pack 2007-11-14 03:13:30 -08:00
tree-diff.c Fix small memory leaks induced by diff_tree_setup_paths 2007-12-12 10:59:22 -08:00
tree-walk.c tree-walk: don't parse incorrect entries 2008-01-06 18:41:44 -08:00
tree-walk.h rename: Break filepairs with different types. 2007-12-02 02:24:46 -08:00
tree.c Optimize "diff --cached" performance. 2007-08-10 11:44:23 -07:00
tree.h
unpack-file.c Use xmkstemp() instead of mkstemp() 2007-08-14 22:20:26 -07:00
unpack-trees.c unpack-trees: FLEX_ARRAY fix 2007-12-18 01:10:24 -08:00
unpack-trees.h Move old index entry removal from "unpack_trees()" into the individual functions 2007-08-10 13:59:19 -07:00
update-server-info.c
upload-pack.c upload-pack: Use finish_{command,async}() instead of waitpid(). 2007-11-05 22:47:28 -08: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 Re-fix "builtin-commit: fix --signoff" 2007-12-09 00:55:55 -08:00
walker.c Clarify error response from 'git fetch' for bad responses 2007-12-17 20:49:18 -08:00
walker.h Modularize commit-walker 2007-09-19 03:22:30 -07:00
write_or_die.c Don't fflush(stdout) when it's not helpful 2007-06-30 20:16:12 -07:00
ws.c whitespace: more accurate initial-indent highlighting 2007-12-16 13:07:58 -08:00
wt-status.c git-commit: squelch needless message during an empty merge 2007-12-12 20:50:33 -08:00
wt-status.h git-commit: squelch needless message during an empty merge 2007-12-12 20:50:33 -08:00
xdiff-interface.c Re(-re)*fix trim_common_tail() 2007-12-20 20:54:23 -08:00
xdiff-interface.h xdl_diff: identify call sites. 2007-12-13 23:04:26 -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/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.