git-commit-vandalism/Documentation
Eric W. Biederman 4749588713 Implement limited context matching in git-apply.
Ok this really should be the good version.  The option
handling has been reworked to be automation safe.

Currently to import the -mm tree I have to work around
git-apply by using patch.  Because some of Andrews
patches in quilt will only apply with fuzz.

I started out implementing a --fuzz option and then I realized
fuzz is not a very safe concept for an automated system.  What
you really want is a minimum number of context lines that must
match.  This allows policy to be set without knowing how many
lines of context a patch actually provides.   By default
the policy remains to match all provided lines of context.

Allowng git-apply to match a restricted set of context makes
it much easier to import the -mm tree into git.  I am still only
processing  1.5 to 1.6 patches a second for the 692 patches in
2.6.17-rc1-mm2 is still painful but it does help.

If I just loop through all of Andrews patches in order
and run git-apply --index -C1 I process the entire patchset
in 1m53s or about 6 patches per second.  So running
git-mailinfo, git-write-tree, git-commit-tree, and
git-update-ref everytime has a measurable impact,
and shows things can be speeded up even more.

All of these timings were taking on my poor 700Mhz Athlon
with 512MB of ram.  So people with fast machiens should
see much better performance.

When a match is found after the number of context are reduced a
warning is generated.  Since this is a rare event and possibly
dangerous this seems to make sense.  Unless you are patching
a single file the error message is a little bit terse at
the moment, but it should be easy to go back and fix.

I have also updated the documentation for git-apply to reflect
the new -C option that sets the minimum number of context
lines that must match.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-10 19:44:08 -07:00
..
howto Add howto about separating topics. 2006-02-12 05:02:42 -08:00
technical Add Documentation/technical/pack-format.txt 2006-04-07 02:07:40 -07:00
.gitignore Don't include ../README in git.txt - make a local copy 2006-01-24 23:16:31 -08:00
asciidoc.conf Tweak asciidoc output to work with broken docbook-xsl 2006-03-05 22:38:12 -08:00
build-docdep.perl Clean build annoyance. 2005-11-08 08:58:52 -08:00
core-tutorial.txt git-commit: revamp the git-commit semantics. 2006-02-06 23:20:32 -08:00
cvs-migration.txt documentation: cvs migration - typofix. 2006-01-30 21:01:25 -08:00
diff-format.txt Documentation: diff -c/--cc 2006-01-28 02:26:30 -08:00
diff-options.txt Support for pickaxe matching regular expressions 2006-04-04 13:44:15 -07:00
diffcore.txt Fix recent documentation format breakage. 2005-10-29 00:50:42 -07:00
everyday.txt Documentation: typos and small fixes in "everyday". 2005-12-18 12:11:27 -08:00
fetch-options.txt git-fetch --upload-pack: disambiguate. 2006-01-26 18:11:06 -08:00
git-add.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-am.txt war on whitespaces: documentation. 2006-03-02 00:52:59 -08:00
git-apply.txt Implement limited context matching in git-apply. 2006-04-10 19:44:08 -07:00
git-applymbox.txt Brief documentation for the mysterious git-am script 2005-10-20 22:32:07 -07:00
git-applypatch.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-archimport.txt git/Documentation: fix SYNOPSIS style bugs 2006-03-05 17:02:02 -08:00
git-bisect.txt Documentation: talk about pathspec in bisect. 2005-12-05 00:15:24 -08:00
git-branch.txt Call out the two different uses of git-branch and fix a typo. 2006-03-17 20:42:30 -08:00
git-cat-file.txt Wrap synopsis lines and use [verse] to keep formatting 2006-01-05 18:44:28 -08:00
git-check-ref-format.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-checkout-index.txt Add --temp and --stage=all options to checkout-index. 2006-03-05 00:58:13 -08:00
git-checkout.txt Rewrite synopsis to clarify the two primary uses of git-checkout. 2006-03-17 20:42:38 -08:00
git-cherry-pick.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-cherry.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-clean.txt Add git-clean command 2006-04-05 02:51:27 -07:00
git-clone-pack.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-clone.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-commit-tree.txt trivial: clarify, what are the config's user.name and user.email about 2006-01-05 17:23:21 -08:00
git-commit.txt Tweaks to make asciidoc play nice. 2006-04-05 15:46:54 -07:00
git-convert-objects.txt Convert usage of GIT and Git into git 2005-10-10 16:01:31 -07:00
git-count-objects.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-cvsexportcommit.txt cvsexportcommit: add some examples to the documentation 2006-01-29 23:25:42 -08:00
git-cvsimport.txt Fix multi-paragraph list items in OPTIONS section 2006-03-20 14:37:33 -08:00
git-cvsserver.txt cvsserver: updated documentation 2006-03-05 02:22:53 -08:00
git-daemon.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-describe.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-diff-files.txt Documentation: diff -c/--cc 2006-01-28 02:26:30 -08:00
git-diff-index.txt Documentation: spell. 2005-12-29 01:32:56 -08:00
git-diff-stages.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-diff-tree.txt Improve the git-diff-tree -c/-cc documentation 2006-04-09 11:11:19 -07:00
git-diff.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-fetch-pack.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-fetch.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-fmt-merge-msg.txt Documentation for git-fmt-merge-msg 2005-11-01 14:45:49 -08:00
git-format-patch.txt Describe how to add extra mail header lines in mail generated by git-format-patch. 2006-03-09 22:01:10 -08:00
git-fsck-objects.txt fsck-objects: Remove --standalone 2006-03-09 13:10:31 -08:00
git-get-tar-commit-id.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-grep.txt Format tweaks for asciidoc. 2006-03-22 11:06:19 -08:00
git-hash-object.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-http-fetch.txt Wrap synopsis lines and use [verse] to keep formatting 2006-01-05 18:44:28 -08:00
git-http-push.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-imap-send.txt Add documentation for git-imap-send. 2006-04-05 20:48:40 -07:00
git-index-pack.txt Add git-index-pack utility 2005-10-12 18:32:02 -07:00
git-init-db.txt Document the default source of template files. 2006-03-17 20:42:31 -08:00
git-local-fetch.txt Convert usage of GIT and Git into git 2005-10-10 16:01:31 -07:00
git-log.txt Documentation/git-log.txt: trivial typo fix. 2005-11-16 13:19:37 -08:00
git-lost-found.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-ls-files.txt Merge branch 'master' into next 2006-03-26 23:44:14 -08:00
git-ls-remote.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-ls-tree.txt ls-tree: add --abbrev[=<n>] option 2006-03-17 14:10:24 -08:00
git-mailinfo.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-mailsplit.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-merge-base.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-merge-index.txt Use uniform description for the '--' option. 2005-12-08 15:50:13 -08:00
git-merge-one-file.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-merge.txt Examples of resetting. 2005-12-16 18:23:33 -08:00
git-mktag.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-mv.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-name-rev.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-pack-objects.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-pack-redundant.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-parse-remote.txt [PATCH] Documentation: Update all files to use the new gitlink: macro 2005-09-20 15:07:52 -07:00
git-patch-id.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-peek-remote.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-prune-packed.txt cosmetics: change from 'See-Also' to 'See Also' 2006-03-05 00:57:37 -08:00
git-prune.txt git-prune: never lose objects reachable from our refs. 2005-12-08 23:18:41 -08:00
git-pull.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-push.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-read-tree.txt Documentation: read-tree --aggressive 2006-03-02 01:11:05 -08:00
git-rebase.txt Document git-rebase behavior on conflicts. 2006-03-26 19:07:43 -08:00
git-receive-pack.txt Documentation: push/receive hook references. 2005-12-05 00:58:23 -08:00
git-relink.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-repack.txt cosmetics: change from 'See-Also' to 'See Also' 2006-03-05 00:57:37 -08:00
git-repo-config.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-request-pull.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-rerere.txt git-rerere: reuse recorded resolve. 2006-02-06 21:53:11 -08:00
git-reset.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-resolve.txt The synopsis of the manpages should use the hyphenated version 2005-10-10 16:01:32 -07:00
git-rev-list.txt Merge branch 'lt/rev-list' 2006-03-04 13:21:17 -08:00
git-rev-parse.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-revert.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-rm.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-send-email.txt send-email: Add --cc 2006-02-13 03:32:10 -05:00
git-send-pack.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-sh-setup.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-shell.txt git/Documentation: fix SYNOPSIS style bugs 2006-03-05 17:02:02 -08:00
git-shortlog.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-show-branch.txt Fix minor typo. 2006-03-17 20:42:36 -08:00
git-show-index.txt Convert usage of GIT and Git into git 2005-10-10 16:01:31 -07:00
git-show.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-ssh-fetch.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-ssh-upload.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-status.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-stripspace.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-svnimport.txt Fix multi-paragraph list items in OPTIONS section 2006-03-20 14:37:33 -08:00
git-symbolic-ref.txt Documentation: do not blindly run 'cat' .git/HEAD, or echo into it. 2005-11-15 01:31:04 -08:00
git-tag.txt Fix some inconsistencies in the docs 2006-03-09 11:43:58 -08:00
git-tar-tree.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-tools.txt Add a Documentation/git-tools.txt 2006-03-03 23:29:56 -08:00
git-unpack-file.txt Remove the version tags from the manpages 2005-10-10 14:49:52 -07:00
git-unpack-objects.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-update-index.txt "assume unchanged" git: documentation. 2006-02-12 01:48:47 -08:00
git-update-ref.txt git/Documentation: fix SYNOPSIS style bugs 2006-03-05 17:02:02 -08:00
git-update-server-info.txt Documentation: HTTP needs update-server-info. 2005-12-17 11:39:39 -08:00
git-upload-pack.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-var.txt git/Documentation: fix SYNOPSIS style bugs 2006-03-05 17:02:02 -08:00
git-verify-pack.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-verify-tag.txt Remove trailing dot after short description 2006-03-09 11:44:11 -08:00
git-whatchanged.txt Format tweaks for asciidoc. 2006-03-22 11:06:19 -08:00
git-write-tree.txt Added documentation for few missing options. 2005-12-05 21:47:16 -08:00
git.txt Documentation: revise top of git man page 2006-04-02 21:17:32 -07:00
gitk.txt Add examples for git-log documentation and others. 2005-10-30 22:54:39 -08:00
glossary.txt glossary: explain "master" and "origin" 2006-01-10 16:02:54 -08:00
hooks.txt Clarify and expand some hook documentation. 2006-03-24 22:24:02 -08:00
howto-index.sh Allow asciidoc formatted documentation in howto/ 2005-08-29 22:38:12 -07:00
install-webdoc.sh Install asciidoc sources as well. 2005-11-06 01:12:32 -08:00
Makefile Documentation/Makefile: Some `git-*.txt' files aren't manpages. 2006-03-05 02:32:13 -08:00
merge-options.txt Documentation: recursive is the default strategy these days. 2005-12-08 14:04:33 -08:00
merge-strategies.txt Documentation: recursive is the default strategy these days. 2005-12-08 14:04:33 -08:00
pull-fetch-param.txt Docs: move git url and remotes text to separate sections 2006-02-06 21:14:56 -08:00
repository-layout.txt Clarify and expand some hook documentation. 2006-03-24 22:24:02 -08:00
sort_glossary.pl Documentation(glossary): minor formatting clean-ups. 2005-12-07 16:16:04 -08:00
SubmittingPatches SubmittingPatches: note on whitespaces 2006-02-17 16:15:26 -08:00
tutorial.txt AsciiDoc fix for tutorial 2006-03-04 13:50:04 -08:00
urls.txt Docs: move git url and remotes text to separate sections 2006-02-06 21:14:56 -08:00