1
0
mirror of https://github.com/git/git.git synced 2024-10-21 19:58:11 +02:00
Git Source Code Mirror. Please follow Documentation/SubmittingPatches procedure for any of your improvements.
Go to file
Paolo Bonzini 959e2e64a5 avoid exponential regex match for java and objc function names
In the old regex

^[ \t]*(([ \t]*[A-Za-z_][A-Za-z_0-9]*){2,}[ \t]*\([^;]*)$
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

you can backtrack arbitrarily from [A-Za-z_0-9]* into [A-Za-z_], thus
causing an exponential number of backtracks.  Ironically it also causes
the regex not to work as intended; for example "catch" can match the
underlined part of the regex, the first repetition matching "c" and
the second matching "atch".

The replacement regex avoids this problem, because it makes sure that
at least a space/tab is eaten on each repetition.  In other words,
a suffix of a repetition can never be a prefix of the next repetition.

Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-18 09:52:10 -07:00
arm
compat optimize compat/ memmem() 2009-03-02 18:28:06 -08:00
contrib Merge branch 'maint-1.6.1' into maint 2009-03-30 13:25:27 -07:00
Documentation Merge branch 'maint-1.6.1' into maint-1.6.2 2009-06-13 17:09:50 -07:00
git-gui
gitk-git Merge git://git.kernel.org/pub/scm/gitk/gitk 2009-03-01 22:20:52 -08:00
gitweb gitweb: Hyperlink multiple git hashes on the same commit message line 2009-02-19 22:49:55 -08:00
mozilla-sha1
perl
ppc
t Merge branch 'jc/maint-read-tree-multi' into maint-1.6.2 2009-05-12 09:58:21 -07:00
templates
xdiff Merge branch 'kc/maint-diff-bwi-fix' into maint 2009-02-05 17:52:22 -08:00
.gitattributes
.gitignore Revert "Merge branch 'js/notes'" 2009-02-10 21:32:10 -08:00
.mailmap
abspath.c
alias.c
alloc.c
archive-tar.c
archive-zip.c
archive.c tree.c: allow read_tree_recursive() to traverse gitlink entries 2009-02-07 12:14:34 -08:00
archive.h
attr.c
attr.h
base85.c
blob.c
blob.h
branch.c Teach the "@{-1} syntax to "git branch" 2009-02-13 23:46:28 -08:00
branch.h
builtin-add.c git add: trivial codestyle cleanup 2009-02-25 00:49:54 -08:00
builtin-annotate.c
builtin-apply.c builtin-apply: keep information about files to be deleted 2009-04-20 13:46:58 -07:00
builtin-archive.c
builtin-blame.c Merge branch 'jc/maint-1.6.0-blame-s' into maint-1.6.1 2009-04-08 23:02:17 -07:00
builtin-branch.c Merge branch 'bc/maint-1.6.1-branch-deleted-was' into maint 2009-04-02 12:02:18 -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 Revert "checkout branch: prime cache-tree fully" 2009-05-12 09:57:21 -07:00
builtin-clean.c
builtin-clone.c Install the default "master" branch configuration after cloning a void 2009-02-12 22:37:35 -08:00
builtin-commit-tree.c
builtin-commit.c Merge branch 'maint-1.6.1' into maint 2009-04-05 01:04:54 -07:00
builtin-config.c
builtin-count-objects.c Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1 2009-05-03 15:01:31 -07:00
builtin-describe.c
builtin-diff-files.c
builtin-diff-index.c
builtin-diff-tree.c
builtin-diff.c
builtin-fast-export.c builtin-fast-export.c: handle nested tags 2009-04-19 12:29:26 -07:00
builtin-fetch--tool.c
builtin-fetch-pack.c honor repack.usedeltabaseoffset when fetching packs 2009-05-01 22:13:43 -07:00
builtin-fetch.c Give error when no remote is configured 2009-03-10 23:14:20 -07:00
builtin-fmt-merge-msg.c
builtin-for-each-ref.c
builtin-fsck.c Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1 2009-05-03 15:01:31 -07:00
builtin-gc.c gc: make --prune useful again by accepting an optional parameter 2009-02-14 21:14:07 -08:00
builtin-grep.c Merge branch 'maint-1.6.0' into maint 2009-02-03 00:32:29 -08:00
builtin-help.c Move computation of absolute paths from Makefile to runtime (in preparation for RUNTIME_PREFIX) 2009-01-26 00:26:05 -08:00
builtin-http-fetch.c
builtin-init-db.c Merge branch 'maint-1.6.0' into maint 2009-04-18 13:39:52 -07:00
builtin-log.c format-patch: --numbered-files and --stdout aren't mutually exclusive 2009-03-21 22:45:28 -07:00
builtin-ls-files.c ls-files: require worktree when --deleted is given 2009-03-21 23:19:27 -07:00
builtin-ls-remote.c
builtin-ls-tree.c tree.c: allow read_tree_recursive() to traverse gitlink entries 2009-02-07 12:14:34 -08:00
builtin-mailinfo.c mailinfo: cleanup extra spaces for complex 'From:' 2009-02-01 12:11:15 -08:00
builtin-mailsplit.c
builtin-merge-base.c
builtin-merge-file.c
builtin-merge-ours.c
builtin-merge-recursive.c
builtin-merge.c Merge branch 'maint-1.6.1' into maint 2009-04-28 00:46:25 -07:00
builtin-mv.c builtin-mv.c: check for unversionned files before looking at the destination. 2009-02-04 11:07:42 -08:00
builtin-name-rev.c
builtin-pack-objects.c Merge branch 'lt/pack-object-memuse' into maint 2009-05-03 15:02:40 -07:00
builtin-pack-refs.c
builtin-prune-packed.c has_sha1_pack(): refactor "pretend these packs do not exist" interface 2009-02-28 01:06:06 -08:00
builtin-prune.c
builtin-push.c Give error when no remote is configured 2009-03-10 23:14:20 -07:00
builtin-read-tree.c read-tree -m A B: prime cache-tree from the switched-to tree 2009-04-20 04:16:41 -07:00
builtin-receive-pack.c builtin-receive-pack.c: fix compiler warnings about format string 2009-02-15 11:14:12 -08:00
builtin-reflog.c Speed up reflog pruning of unreachable commits 2009-04-19 12:31:56 -07:00
builtin-remote.c Merge branch 'js/maint-1.6.1-remote-remove-mirror' into maint-1.6.1 2009-03-12 21:45:56 -07:00
builtin-rerere.c
builtin-reset.c
builtin-rev-list.c Merge branch 'lt/pack-object-memuse' into maint 2009-05-03 15:02:40 -07:00
builtin-rev-parse.c
builtin-revert.c Merge branch 'maint-1.6.1' into maint 2009-03-07 21:00:27 -08:00
builtin-rm.c
builtin-send-pack.c send-pack: do not send unknown object name from ".have" to pack-objects 2009-01-27 23:46:59 -08:00
builtin-shortlog.c Change current mailmap usage to do matching on both name and email of author/committer. 2009-02-08 12:36:54 -08:00
builtin-show-branch.c
builtin-show-ref.c
builtin-stripspace.c
builtin-symbolic-ref.c symbolic-ref: allow refs/<whatever> in HEAD 2009-02-13 18:20:44 -08:00
builtin-tag.c git-tag: Add --contains option 2009-01-28 11:33:51 -08:00
builtin-tar-tree.c
builtin-unpack-objects.c Merge branch 'lt/maint-wrap-zlib' into maint 2009-02-05 18:01:00 -08:00
builtin-update-index.c Merge branch 'maint' 2009-02-19 23:44:07 -08:00
builtin-update-ref.c
builtin-upload-archive.c
builtin-verify-pack.c Replace deprecated dashed git commands in usage 2009-02-04 15:08:49 -08:00
builtin-verify-tag.c
builtin-write-tree.c
builtin.h
bundle.c
bundle.h
cache-tree.c Move prime_cache_tree() to cache-tree.c 2009-04-20 04:16:41 -07:00
cache-tree.h Move prime_cache_tree() to cache-tree.c 2009-04-20 04:16:41 -07:00
cache.h Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1 2009-05-03 15:01:31 -07:00
check_bindir
check-builtins.sh
check-racy.c
color.c
color.h
combine-diff.c Merge branch 'maint-1.6.0' into maint-1.6.1 2009-04-29 13:43:13 -07:00
command-list.txt Revert "Merge branch 'js/notes'" 2009-02-10 21:32:10 -08:00
commit.c Revert "Merge branch 'js/notes'" 2009-02-10 21:32:10 -08:00
commit.h Make has_commit() non-static 2009-01-28 11:33:03 -08:00
config.c improve error message in config.c 2009-05-05 22:49:43 -07:00
config.mak.in config.mak.in: define paths without trailing slash 2009-02-05 00:29:23 -08:00
configure.ac
connect.c
convert.c
copy.c
COPYING
csum-file.c
csum-file.h
ctype.c
daemon.c Add calls to git_extract_argv0_path() in programs that call git_config_* 2009-01-26 00:26:05 -08:00
date.c Work around BSD whose typeof(tv.tv_sec) != time_t 2009-05-05 22:19:14 -07:00
decorate.c
decorate.h
delta.h
diff-delta.c
diff-lib.c Generalize and libify index_is_dirty() to index_differs_from(...) 2009-02-10 22:25:39 -08:00
diff-no-index.c Merge branch 'maint-1.6.1' into maint 2009-03-28 00:41:50 -07:00
diff.c Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1 2009-05-03 15:01:31 -07:00
diff.h Generalize and libify index_is_dirty() to index_differs_from(...) 2009-02-10 22:25:39 -08:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c pickaxe: count regex matches only once 2009-03-21 23:18:53 -07:00
diffcore-rename.c
diffcore.h
dir.c Merge branch 'maint-1.6.0' into maint-1.6.1 2009-05-08 21:12:41 -07:00
dir.h
editor.c
entry.c
environment.c Revert "Merge branch 'js/notes'" 2009-02-10 21:32:10 -08:00
exec_cmd.c Merge branch 'js/maint-1.6.0-exec-path-env' into maint-1.6.1 2009-04-08 23:01:10 -07:00
exec_cmd.h Refactor git_set_argv0_path() to git_extract_argv0_path() 2009-01-26 00:26:05 -08:00
fast-import.c Move chmod(foo, 0444) into move_temp_to_file() 2009-03-27 22:10:58 -07:00
fetch-pack.h
fixup-builtins
fsck.c
fsck.h
generate-cmdlist.sh
git-add--interactive.perl git add -p: add missing "q" to patch prompt 2009-04-20 03:38:44 -07:00
git-am.sh git-am: make --abort less dangerous 2009-02-26 23:06:38 -08:00
git-archimport.perl
git-bisect.sh Merge branch 'maint-1.6.0' into maint-1.6.1 2009-03-12 23:36:57 -07:00
git-compat-util.h Merge branch 'jc/maint-1.6.0-pack-directory' into maint-1.6.1 2009-03-21 22:53:36 -07:00
git-cvsexportcommit.perl
git-cvsimport.perl
git-cvsserver.perl git-cvsserver: run post-update hook *after* update. 2009-01-30 21:11:46 -08:00
git-filter-branch.sh filter-branch -d: Export GIT_DIR earlier 2009-02-18 11:15:17 -08:00
git-instaweb.sh
git-lost-found.sh
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool.sh Merge branch 'cb/mergetool' 2009-02-05 19:40:35 -08:00
git-parse-remote.sh
git-pull.sh git-pull.sh: better warning message for "git pull" on detached head. 2009-04-08 00:39:51 -07:00
git-quiltimport.sh git-quiltimport: preserve standard input to be able to read user input 2009-02-25 00:49:13 -08:00
git-rebase--interactive.sh Merge branch 'js/maint-rebase-i-submodule' 2009-01-31 18:07:55 -08:00
git-rebase.sh disallow providing multiple upstream branches to rebase, pull --rebase 2009-02-18 11:14:04 -08:00
git-relink.perl
git-repack.sh Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1 2009-05-03 15:01:31 -07:00
git-request-pull.sh
git-send-email.perl Merge branch 'tr/maint-1.6.0-send-email-irt' into maint 2009-03-21 23:09:21 -07:00
git-sh-setup.sh git-sh-setup: Use "cd" option, not /bin/pwd, for symlinked work tree 2009-02-07 00:45:29 -08:00
git-stash.sh
git-submodule.sh git submodule: fix usage line 2009-04-05 01:16:31 -07:00
git-svn.perl Merge branch 'rj/maint-1.6.0-svn-parse-fix' into maint 2009-05-05 22:51:49 -07:00
GIT-VERSION-GEN GIT 1.6.2.5 2009-05-03 16:54:14 -07:00
git-web--browse.sh git-web--browse: Fix check for /bin/start 2009-02-09 00:06:36 -08:00
git.c Merge branch 'jk/maint-cleanup-after-exec-failure' 2009-02-03 00:26:12 -08:00
git.spec.in Merge branch 'maint-1.6.0' into maint 2009-02-05 19:38:58 -08:00
graph.c
graph.h
grep.c Merge branch 'maint-1.6.1' into maint 2009-04-28 00:46:25 -07:00
grep.h
hash-object.c Merge branch 'en/maint-hash-object' into maint 2009-03-11 13:51:59 -07:00
hash.c
hash.h
help.c
help.h
http-push.c Merge branch 'maint-1.6.0' into maint-1.6.1 2009-06-13 17:09:45 -07:00
http-walker.c Move chmod(foo, 0444) into move_temp_to_file() 2009-03-27 22:10:58 -07:00
http.c
http.h
ident.c
imap-send.c Add calls to git_extract_argv0_path() in programs that call git_config_* 2009-01-26 00:26:05 -08:00
index-pack.c Move chmod(foo, 0444) into move_temp_to_file() 2009-03-27 22:10:58 -07:00
INSTALL
levenshtein.c
levenshtein.h
list-objects.c show_object(): push path_name() call further down 2009-04-12 17:28:31 -07:00
list-objects.h show_object(): push path_name() call further down 2009-04-12 17:28:31 -07:00
ll-merge.c
ll-merge.h
lockfile.c Make the 'lock file' exists error more informative 2009-03-04 20:35:19 -08:00
log-tree.c log: do not print ellipses with --abbrev-commit 2009-02-13 17:18:22 -08:00
log-tree.h
mailmap.c mailmap: resurrect lower-casing of email addresses 2009-04-01 11:00:54 -07:00
mailmap.h Add map_user() and clear_mailmap() to mailmap 2009-02-08 12:36:38 -08:00
Makefile Makefile: remove {fetch,send}-pack from PROGRAMS as they are builtins 2009-04-19 17:23:42 -07:00
match-trees.c
merge-file.c
merge-index.c Replace deprecated dashed git commands in usage 2009-02-04 15:08:49 -08:00
merge-recursive.c simplify output of conflicting merge 2009-04-05 00:26:33 -07:00
merge-recursive.h
merge-tree.c Replace deprecated dashed git commands in usage 2009-02-04 15:08:49 -08:00
mktag.c Replace deprecated dashed git commands in usage 2009-02-04 15:08:49 -08:00
mktree.c Replace deprecated dashed git commands in usage 2009-02-04 15:08:49 -08:00
name-hash.c
object.c
object.h Merge branch 'js/maint-all-implies-HEAD' into maint 2009-02-05 17:54:12 -08:00
pack-check.c
pack-redundant.c Add calls to git_extract_argv0_path() in programs that call git_config_* 2009-01-26 00:26:05 -08:00
pack-refs.c
pack-refs.h
pack-revindex.c
pack-revindex.h
pack-write.c Merge branch 'jc/maint-1.6.0-pack-directory' into maint-1.6.1 2009-03-21 22:53:36 -07:00
pack.h
pager.c
parse-options.c Make opt_parse_with_commit() non-static 2009-01-28 11:32:27 -08:00
parse-options.h Make opt_parse_with_commit() non-static 2009-01-28 11:32:27 -08:00
patch-delta.c
patch-id.c Replace deprecated dashed git commands in usage 2009-02-04 15:08:49 -08:00
patch-ids.c
patch-ids.h
path.c set_shared_perm(): sometimes we know what the final mode bits should look like 2009-03-28 08:02:15 -07:00
pkt-line.c
pkt-line.h
preload-index.c
pretty.c cleanup: add isascii() 2009-03-07 11:22:42 -08:00
progress.c
progress.h
quote.c
quote.h
reachable.c process_{tree,blob}: Remove useless xstrdup calls 2009-04-08 22:58:43 -07:00
reachable.h
read-cache.c add -u: do not fail to resolve a path as deleted 2009-01-28 17:29:33 -08:00
README README: fix path to "gitcvs-migration.txt" and be more consistent 2009-02-25 00:49:54 -08:00
reflog-walk.c
reflog-walk.h
refs.c remote prune: warn dangling symrefs 2009-02-10 22:26:20 -08:00
refs.h remote prune: warn dangling symrefs 2009-02-10 22:26:20 -08:00
RelNotes GIT 1.6.2.5 2009-05-03 16:54:14 -07:00
remote.c Remove total confusion from git-fetch and git-push 2009-03-16 00:35:09 -07:00
remote.h
rerere.c Drop double-semicolon in C 2009-02-10 22:26:37 -08:00
rerere.h
revision.c Merge branch 'lt/pack-object-memuse' into maint 2009-05-03 15:02:40 -07:00
revision.h Merge branch 'lt/pack-object-memuse' into maint 2009-05-03 15:02:40 -07:00
run-command.c Merge branch 'jk/maint-cleanup-after-exec-failure' 2009-02-03 00:26:12 -08:00
run-command.h fix portability problem with IS_RUN_COMMAND_ERR 2009-04-01 11:05:54 -07:00
send-pack.h
server-info.c
setup.c "core.sharedrepository = 0mode" should set, not loosen 2009-03-27 21:51:04 -07:00
sha1_file.c Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1 2009-05-03 15:01:31 -07:00
sha1_name.c Squelch overzealous "ignoring dangling symref" in an empty repository 2009-02-11 09:22:16 -08:00
sha1-lookup.c
sha1-lookup.h
shallow.c
shell.c
shortlog.h
show-index.c
sideband.c
sideband.h
sigchain.c
sigchain.h
strbuf.c
strbuf.h
string-list.c Add find_insert_index, insert_at_index and clear_func functions to string_list 2009-02-08 12:36:31 -08:00
string-list.h Add find_insert_index, insert_at_index and clear_func functions to string_list 2009-02-08 12:36:31 -08:00
symlinks.c
tag.c
tag.h
tar.h
test-chmtime.c
test-ctype.c
test-date.c
test-delta.c
test-dump-cache-tree.c add test-dump-cache-tree in Makefile 2009-02-03 22:11:44 -08:00
test-genrandom.c test-genrandom: Add newline to usage string 2009-04-23 01:29:00 -07:00
test-match-trees.c
test-parse-options.c
test-path-utils.c Introduce the function strip_path_suffix() 2009-02-19 22:45:48 -08:00
test-sha1.c
test-sha1.sh
test-sigchain.c t0005: use SIGTERM for sigchain test 2009-01-30 01:14:26 -08:00
thread-utils.c
thread-utils.h
trace.c trace: Fixed a minor typo in an error message. 2009-02-25 00:49:53 -08:00
transport.c rsync transport: allow local paths, and fix tests 2009-03-10 23:17:56 -07:00
transport.h
tree-diff.c tree_entry_interesting: a pathspec only matches at directory boundary 2009-04-01 19:35:16 -07:00
tree-walk.c
tree-walk.h
tree.c Fix off-by-one in read_tree_recursive 2009-04-20 13:44:14 -07:00
tree.h
unpack-file.c Replace deprecated dashed git commands in usage 2009-02-04 15:08:49 -08:00
unpack-trees.c Merge branch 'jc/maint-1.6.0-read-tree-overlay' into maint 2009-03-21 23:02:47 -07:00
unpack-trees.h
update-server-info.c Add calls to git_extract_argv0_path() in programs that call git_config_* 2009-01-26 00:26:05 -08:00
upload-pack.c Merge branch 'lt/pack-object-memuse' into maint 2009-05-03 15:02:40 -07:00
usage.c Increase the size of the die/warning buffer to avoid truncation 2009-03-24 16:58:20 -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: add utf8_strwidth() 2009-02-04 16:30:43 -08:00
utf8.h utf8: add utf8_strwidth() 2009-02-04 16:30:43 -08:00
var.c Add calls to git_extract_argv0_path() in programs that call git_config_* 2009-01-26 00:26:05 -08:00
walker.c Drop double-semicolon in C 2009-02-10 22:26:37 -08:00
walker.h
wrapper.c Merge branch 'jc/maint-1.6.0-pack-directory' into maint-1.6.1 2009-03-21 22:53:36 -07:00
write_or_die.c
ws.c
wt-status.c
wt-status.h
xdiff-interface.c
xdiff-interface.h

////////////////////////////////////////////////////////////////

	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.