aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* builtin-grep: workaround for non GNU grep.Junio C Hamano2006-05-17
| | | | | | | | | | | | | Some implementations do not know what to do with -H; define NO_H_OPTION_IN_GREP when you build git if your grep lacks -H. Most of the time, it can be worked around by prepending /dev/null to the argument list, but that causes -L and -c to slightly misbehave (they both expose /dev/null is given), so when these options are given, do not run external grep that does not understand -H. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Remove old "git-grep.sh" remnantsLinus Torvalds2006-05-16
| | | | | | | It's built-in now. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Merge branch 'maint'Junio C Hamano2006-05-16
|\ | | | | | | | | | | * maint: merge-base: Clarify the comments on post processing. Update the documentation for git-merge-base
| * merge-base: Clarify the comments on post processing.Junio C Hamano2006-05-16
| | | | | | | | | | | | | | The comment fooled myself believing that we still had an unsolved horizon effect. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Update the documentation for git-merge-baseFredrik Kuivinen2006-05-15
| | | | | | | | | | Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'np/pack'Junio C Hamano2006-05-16
|\ \ | | | | | | | | | | | | | | | | | | * np/pack: improve depth heuristic for maximum delta size pack-object: slightly more efficient simple euristic for further free packing improvements
| * | improve depth heuristic for maximum delta sizeNicolas Pitre2006-05-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This provides a linear decrement on the penalty related to delta depth instead of being an 1/x function. With this another 5% reduction is observed on packs for both the GIT repo and the Linux kernel repo, as well as fixing a pack size regression in another sample repo I have. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | pack-object: slightly more efficientNicolas Pitre2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid creating a delta index for objects with maximum depth since they are not going to be used as delta base anyway. This also reduce peak memory usage slightly as the current object's delta index is not useful until the next object in the loop is considered for deltification. This saves a bit more than 1% on CPU usage. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | simple euristic for further free packing improvementsNicolas Pitre2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Given that the early eviction of objects with maximum delta depth may exhibit bad packing on its own, why not considering a bias against deep base objects in try_delta() to mitigate that bad behavior. This patch adjust the MAX_size allowed for a delta based on the depth of the base object as well as enabling the early eviction of max depth objects from the object window. When used separately, those two things produce slightly better and much worse results respectively. But their combined effect is a surprising significant packing improvement. With this really simple patch the GIT repo gets nearly 15% smaller, and the Linux kernel repo about 5% smaller, with no significantly measurable CPU usage difference. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'se/tag'Junio C Hamano2006-05-15
|\ \ \ | | | | | | | | | | | | | | | | * se/tag: Strip useless "tags/" prefix from git-tag -l output
| * | | Strip useless "tags/" prefix from git-tag -l outputSean2006-05-15
| | | |
* | | | Merge branch 'se/rev-parse'Junio C Hamano2006-05-15
|\ \ \ \ | |/ / / | | | | | | | | | | | | * se/rev-parse: Add "--branches", "--tags" and "--remotes" options to git-rev-parse.
| * | | Add "--branches", "--tags" and "--remotes" options to git-rev-parse.Sean2006-05-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "git branch" uses "rev-parse --all" and becomes much too slow when there are many tags (it scans all refs). Use the new "--branches" option of rev-parse to speed things up. Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Merge branch 'se/diff'Junio C Hamano2006-05-15
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | * se/diff: Convert some "apply --summary" users to "diff --summary". Add "--summary" option to git diff.
| * | | | Convert some "apply --summary" users to "diff --summary".Sean2006-05-14
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | Add "--summary" option to git diff.Sean2006-05-14
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the need to pipe git diff through git apply to get the extended headers summary. Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Merge branch 'se/rebase'Junio C Hamano2006-05-15
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | * se/rebase: Make git rebase interactive help match documentation.
| * | | | Make git rebase interactive help match documentation.Sean2006-05-14
| |/ / / | | | | | | | | | | | | | | | | Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | builtin-diff: fix comparison between two blobs.Junio C Hamano2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The code forgot that setup_revisions() leaves parsed object names in reverse in the list. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Merge branch 'lt/oneway'Junio C Hamano2006-05-15
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | * lt/oneway: read-tree --reset -u fix. read-tree -u one-way merge fix to check out locally modified paths. Simplify "git reset --hard" Allow one-way tree merge to remove old files
| * | | read-tree --reset -u fix.Linus Torvalds2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous commit makes -u to mean "I do want to remove the local changes, just update it from the read tree" only for one-way merge. It makes sense to have it depend on the "--reset" flag instead. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | read-tree -u one-way merge fix to check out locally modified paths.Junio C Hamano2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "-u" flag means "update the working tree files", but to other types of merges, it also implies "I want to keep my local changes" -- because they prevent local changes from getting lost by using verify_uptodate. The one-way merge is different from other merges in that its purpose is opposite of doing something else while keeping unrelated local changes. The point of one-way merge is to nuke local changes. So while it feels somewhat wrong that this actively loses local changes, it is the right thing to do. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | Simplify "git reset --hard"Linus Torvalds2006-05-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that the one-way merge strategy does the right thing wrt files that do not exist in the result, just remove all the random crud we did in "git reset" to do this all by hand. Instead, just pass in "-u" to git-read-tree when we do a hard reset, and depend on git-read-tree to update the working tree appropriately. This basically means that git reset turns into # Always update the HEAD ref git update-ref HEAD "$rev" case "--soft" # do nothing to index/working tree case "--hard" # read index _and_ update working tree git-read-tree --reset -u "$rev" case "--mixed" # update just index, report on working tree differences git-read-tree --reset "$rev" git-update-index --refresh which is what it was always semantically doing, it just did it in a rather strange way because it was written to not expect git-read-tree to do anything to the working tree. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | Allow one-way tree merge to remove old filesLinus Torvalds2006-05-14
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For some random reason (probably just because nobody noticed), the one-way merge strategy didn't mark deleted files as deleted, so if you used git-read-tree -m -u <newtree> it would update the files that got changed in the index, but it would not delete the files that got deleted. This should fix it, and I can't imagine that anybody depends on the old strange "update only existing files" behaviour. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'ew/send-email'Junio C Hamano2006-05-15
|\ \ \ | | | | | | | | | | | | | | | | | | | | * ew/send-email: send-email: quiet some warnings, reject invalid addresses send-email: allow sendmail binary to be used instead of SMTP
| * | | send-email: quiet some warnings, reject invalid addressesEric Wong2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I'm not sure why we never actually rejected invalid addresses in the first place. We just seemed to be using our email validity checkers to kill duplicates. Now we just drop invalid email addresses completely and warn the user about it. Since we support local sendmail, we'll also accept username-only addresses. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | send-email: allow sendmail binary to be used instead of SMTPEric Wong2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This should make local mailing possible for machines without a connection to an SMTP server. It'll default to using /usr/sbin/sendmail or /usr/lib/sendmail if no SMTP server is specified (the default). If it can't find either of those paths, it'll fall back to connecting to an SMTP server on localhost. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Merge branch 'lt/config'Junio C Hamano2006-05-15
|\ \ \ \ | | | | | | | | | | | | | | | * lt/config:
| * \ \ \ Merge branch 'lt/fix-config' into lt/configJunio C Hamano2006-05-13
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lt/fix-config: git config syntax updates Another config file parsing fix. checkout: use --aggressive when running a 3-way merge (-m). Fix git-pack-objects for 64-bit platforms with manual adjustment of t/t1300 for "git repo-config --list" option. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | \ \ \ \ Merge branch 'jc/grep'Junio C Hamano2006-05-15
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * jc/grep: (22 commits) Fix silly typo in new builtin grep builtin-grep: unparse more command line options. builtin-grep: use external grep when we can take advantage of it builtin-grep: -F (--fixed-strings) builtin-grep: -w fix builtin-grep: typofix builtin-grep: tighten argument parsing. builtin-grep: documentation Teach -f <file> option to builtin-grep. builtin-grep: -L (--files-without-match). builtin-grep: binary files -a and -I builtin-grep: terminate correctly at EOF builtin-grep: tighten path wildcard vs tree traversal. builtin-grep: support -w (--word-regexp). builtin-grep: support -c (--count). builtin-grep: allow more than one patterns. builtin-grep: allow -<n> and -[ABC]<n> notation for context lines. builtin-grep: printf %.*s length is int, not ptrdiff_t. builtin-grep: do not use setup_revisions() builtin-grep: support '-l' option. ...
| * | | | | | Fix silly typo in new builtin grepLinus Torvalds2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "-F" flag apparently got mis-translated due to some over-eager copy-paste work into a duplicate "-H" when using the external grep. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: unparse more command line options.Junio C Hamano2006-05-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The earlier one to use external grep missed some often used options. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: use external grep when we can take advantage of itLinus Torvalds2006-05-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's not perfect, but it gets the "git grep some-random-string" down to the good old half-a-second range for the kernel. It should convert more of the argument flags for "grep", that should be trivial to expand (I did a few just as an example). It should also bother to try to return the right "hit" value (which it doesn't, right now - the code is kind of there, but I didn't actually bother to do it _right_). Also, right now it _just_ limits by number of arguments, but it should also strictly speaking limit by total argument size (ie add up the length of the filenames, and do the "exec_grep()" flush call if it's bigger than some random value like 32kB). But I think that it's _conceptually_ doing all the right things, and it seems to work. So maybe somebody else can do some of the final polish. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: -F (--fixed-strings)Junio C Hamano2006-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: -w fixJunio C Hamano2006-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: typofixJunio C Hamano2006-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: tighten argument parsing.Junio C Hamano2006-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I mistyped git grep next -e '"^@"' '*.c' and got many hits that contain "next" without complaint. Obviously what I meant to say was: git grep -e '"^@"' next -- '*.c' This tightens the argument parsing rule a bit: - All "grep" parameters should come first; - If there is no -e nor -f to specify pattern, the first non option string is the parameter; - After that, zero or more revs can follow. - An optional '--' can be present, and is skipped. - All the rest are pathspecs. If '--' was not there, they must be paths that exist in the working tree. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: documentationJunio C Hamano2006-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | Teach -f <file> option to builtin-grep.Junio C Hamano2006-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: -L (--files-without-match).Junio C Hamano2006-05-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: binary files -a and -IJunio C Hamano2006-05-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: terminate correctly at EOFJunio C Hamano2006-05-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It barfed and segfaulted with an incomplete line. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: tighten path wildcard vs tree traversal.Junio C Hamano2006-05-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The earlier code descended into Documentation/technical when given "Documentation/how*" as the pattern, which was too loose. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: support -w (--word-regexp).Junio C Hamano2006-05-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: support -c (--count).Junio C Hamano2006-05-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: allow more than one patterns.Junio C Hamano2006-05-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: allow -<n> and -[ABC]<n> notation for context lines.Junio C Hamano2006-05-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: printf %.*s length is int, not ptrdiff_t.Junio C Hamano2006-05-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: do not use setup_revisions()Junio C Hamano2006-05-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Grep may want to grok multiple revisions, but it does not make much sense to walk revisions while doing so. This stops calling the code to parse parameters for the revision walker. The parameter parsing for the optional "-e" option becomes a lot simpler with it as well. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | | builtin-grep: support '-l' option.Junio C Hamano2006-05-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>