summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2006-07-05git-grep: boolean expression on pattern matching.Libravatar Junio C Hamano1-51/+327
This extends the behaviour of git-grep when multiple -e options are given. So far, we allowed multiple -e to behave just like regular grep with multiple -e, i.e. the patterns are OR'ed together. With this change, you can also have multiple patterns AND'ed together, or form boolean expressions, like this (the parentheses are quoted from the shell in this example): $ git grep -e _PATTERN --and \( -e atom -e token \) Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-05Merge branch 'lt/gitweb'Libravatar Junio C Hamano1-35/+31
* lt/gitweb: gitweb: Declare global variables with "our" gitweb: Enable tree (directory) history display gitweb: optimize per-file history generation
2006-07-05Merge branch 'jc/fmt-merge-msg-test'Libravatar Junio C Hamano1-0/+163
* jc/fmt-merge-msg-test: t6200: fmt-merge-msg test.
2006-07-05Merge branch 'jc/sha1'Libravatar Junio C Hamano4-156/+331
* jc/sha1: A better-scheduled PPC SHA-1 implementation. test-sha1: test hashing large buffer Makefile: add framework to verify and bench sha1 implementations.
2006-07-05Merge branch 'jc/diff-test'Libravatar Junio C Hamano10-0/+263
* jc/diff-test: t4013: add "diff" UI program tests.
2006-07-05Merge branch 'th/diff'Libravatar Junio C Hamano110-205/+4722
* th/diff: builtin-diff: turn recursive on when defaulting to --patch format. t4013: note improvements brought by the new output code. t4013: add format-patch tests. format-patch: fix diff format option implementation combine-diff.c: type sanity. t4013 test updates for new output code. Fix some more diff options changes. Fix diff-tree -s log --raw: Don't descend into subdirectories by default diff-tree: Use ---\n as a message separator Print empty line between raw, stat, summary and patch t4013: add more tests around -c and --cc whatchanged: Default to DIFF_FORMAT_RAW Don't xcalloc() struct diffstat_t Add msg_sep to diff_options DIFF_FORMAT_RAW is not default anymore Set default diff output format after parsing command line Make --raw option available for all diff commands Merge with_raw, with_stat and summary variables to output_format t4013: add tests for diff/log family output options.
2006-07-05Merge branch 'jc/grepfix'Libravatar Junio C Hamano1-10/+26
* jc/grepfix: git-grep: use a bit more specific error messages. git-grep: fix exit code when we use external grep. git-grep: fix parsing of pathspec separator '--'
2006-07-05Merge branch 'js/fmt-merge-msg'Libravatar Junio C Hamano5-177/+362
* js/fmt-merge-msg: Make git-fmt-merge-msg a builtin
2006-07-05Fix print-log and diff compatibility with recent vc versionsLibravatar Ville Skytt,Ad(B1-6/+7
Here's a patch that fixes print-log and diff compatibility with recent vc versions, such as current GNU Emacs CVS. Signed-off-by: Ville Skytt,Ad(B <scop@xemacs.org>
2006-07-05git-svn: avoid fetching files outside of the URL we're trackingLibravatar Eric Wong1-1/+1
Thanks to Santi <sbejar@gmail.com> for the bug report and explanation: > /path/to/repository/project/file > /path/to/repository/project-2/file <...> > you end up with a project with the following files: > > file > -2/file Signed-off-by: Eric Wong <normalperson@yhbt.net>
2006-07-04Improve git-peek-remoteLibravatar Linus Torvalds4-13/+58
This makes git-peek-remote able to basically do everything that git-ls-remote does (but obviously just for the native protocol, so no http[s]: or rsync: support). The default behaviour is the same, but you can now give a mixture of "--refs", "--tags" and "--heads" flags, where "--refs" forces git-peek-remote to only show real refs (ie none of the fakey tag lookups, but also not the special pseudo-refs like HEAD and MERGE_HEAD). The "--tags" and "--heads" flags respectively limit the output to just regular tags and heads, of course. You can still also ask to limit them by name too. You can combine the flags, so git peek-remote --refs --tags . will show all local _true_ tags, without the generated tag lookups (compare the output without the "--refs" flag). And "--tags --heads" will show both tags and heads, but will avoid (for example) any special refs outside of the standard locations. I'm also planning on adding a "--ignore-local" flag that allows us to ask it to ignore any refs that we already have in the local tree, but that's an independent thing. All this is obviously gearing up to making "git fetch" cheaper. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-04git-grep: use a bit more specific error messages.Libravatar Junio C Hamano1-4/+11
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-04git-grep: fix exit code when we use external grep.Libravatar Junio C Hamano1-5/+10
Upon hit, we should exit with status 0. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-04git-grep: fix parsing of pathspec separator '--'Libravatar Junio C Hamano1-1/+5
We used to misparse git grep -e foo -- '*.sh' Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-04t8001-annotate: fix a bash-ism in this testLibravatar Eric Wong1-2/+2
Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-03Make git-fmt-merge-msg a builtinLibravatar Johannes Schindelin5-177/+362
Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-03t6200: fmt-merge-msg test.Libravatar Junio C Hamano1-0/+163
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-03send-email: do not barf when Term::ReadLine does not like your terminalLibravatar Junio C Hamano2-5/+24
As long as we do not need to readline from the terminal, we should not barf when starting up the program. Without this patch, t9001 test on Cygwin occasionally died with the following error message: Unable to get Terminal Size. The TIOCGWINSZ ioctl didn't work. The COLUMNS and LINES environment variables didn't work. The resize program didn't work. at /usr/lib/perl5/vendor_perl/5.8/cygwin/Term/ReadKey.pm line 362. Compilation failed in require at /usr/lib/perl5/vendor_perl/5.8/Term/ReadLine/Perl.pm line 58. Acked-by: Ryan Anderson <ryan@michonline.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-03boolean: accept yes and no as wellLibravatar Junio C Hamano1-2/+2
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-03annotate: Correct most merge following to annotate correctly.Libravatar Ryan Anderson1-58/+139
There is still a bug involving octopus merges, somewhere, but this gets normal merges correct, so it's still an improvement over the existing version. Signed-off-by: Ryan Anderson <ryan@michonline.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-03annotate: Support annotation of files on other revisions.Libravatar Ryan Anderson1-0/+6
This is a bug fix, and cleans up one or two other things spotted during the course of tracking down the main bug here. Also, the test-suite is updated to reflect this case. Signed-off-by: Ryan Anderson <ryan@michonline.com> (cherry picked from 2f7554b4db3ab2c2d3866b160245c91c9236fc9a commit) Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-03Make zlib compression level configurable, and change default.Libravatar Joachim B Haga8-5/+23
With the change in default, "git add ." on kernel dir is about twice as fast as before, with only minimal (0.5%) change in object size. The speed difference is even more noticeable when committing large files, which is now up to 8 times faster. The configurability is through setting core.compression = [-1..9] which maps to the zlib constants; -1 is the default, 0 is no compression, and 1..9 are various speed/size tradeoffs, 9 being slowest. Signed-off-by: Joachim B Haga (cjhaga@fys.uio.no) Acked-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-03Makefile: tighten git-http-{fetch,push} dependenciesLibravatar Junio C Hamano1-2/+2
Although our "git-%$X:" implicit target had dependency on $(GITLIBS) which included xdiff/lib.a, git-http-{fetch,push} had their own building rules and with an obsolete dependency on $(LIB_FILES). Update the rules to depend on $(GITLIBS), to make parallel build work correctly. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-02Empty author may be presented by svn as an empty string or a null value.Libravatar Robin Rosenberg1-1/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-02revision.c: fix "dense" under --remove-emptyLibravatar Linus Torvalds1-1/+1
It had the wrong test for whether a commit was a merge. What it did was to say that a non-merge has exactly one parent (which sounds almost right), but the fact is, initial trees have no parent at all, but they're obviously not merges. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-01builtin-diff: turn recursive on when defaulting to --patch format.Libravatar Junio C Hamano1-1/+3
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-01t4013: add "diff" UI program tests.Libravatar Junio C Hamano10-0/+263
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-01gitweb: Declare global variables with "our"Libravatar Dennis Stosberg1-28/+27
Variables declared with "my" in the file scope cannot be accessed from subroutines with mod_perl. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-01gitweb: Enable tree (directory) history displayLibravatar Luben Tuikov1-0/+1
This patch allows history display of whole trees/directories a la "git-rev-list HEAD -- <dir or file>". I find this useful especially when a project lives in its own subdirectory, as opposed to being all of the GIT repository (i.e. when a sub-project is merged into a super-project). Signed-off-by: Luben Tuikov <ltuikov@yahoo.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-01gitweb: optimize per-file history generationLibravatar Junio C Hamano1-7/+3
The rev-list command that is recent enough can filter commits based on paths they touch, so use it instead of generating the full list and limiting it by passing it with diff-tree --stdin. [jc: The patch originally came from Luben Tuikov but the it was corrupt, but it was short enough to be applied by hand. I added the --full-history to make the output compatible with the original while doing so.] Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-01git object hash cleanupsLibravatar Linus Torvalds1-44/+53
This IMNSHO cleans up the object hashing. The hash expansion is separated out into a function of its own, the hash array (and size) names are made more obvious, and the code is generally made to look a bit more like the object-ref hashing. It also gets rid of "find_object()" returning an index (or negative position if no object is found), since that is made redundant by the simplified object rehashing. The basic operation is now "lookup_object()" which just returns the object itself. There's an almost unmeasurable speed increase, but more importantly, I think the end result is more readable. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-01revision.c: --full-history fix.Libravatar Linus Torvalds1-4/+14
With history simplification, we still show merges that are required to make the history _complete_, i.e. say that you had: a | b / \ c d | | and neither "a" nor "b" actually changed the file, but both "c" and "d" did: in this case we have to leave "b" around just because otherwise there would be no way to show the _relationship_, even if "b" itself doesn't actually change the tree in any way what-so-ever. It would make sense to make that further simplification if the "--parents" flag wasn't present. In that case the user is literally asking for a list of commits and is not interested in the relationship between them. This patch also fixes a real bug. Without this patch, the "--parents --full-history" combination (which you'd get if you do something like gitk --full-history Makefile or similar) will actually _drop_ merges where all children are identical. That's wrong in the --full-history case, because it means that the graph ends up missing lots of entries. In the process, this also should make git-rev-list --full-history Makefile give just the _true_ list of all commits that changed Makefile (and properly ignore merges that were identical in one parent), because now we're not asking for "--parent", so we don't need the unnecessary merge commits to keep the history together. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-01Fix errno usage in connect.cLibravatar Petr Baudis1-6/+12
errno was used after it could've been modified by a subsequent library call. Spotted by Morten Welinder. Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-07-01Minor documentation fixup.Libravatar Robin Rosenberg1-3/+3
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-30git-svn: allow a local target directory to be specified for initLibravatar Eric Wong1-2/+12
git-svn init url://to/the/repo local-repo will create the local-repo dirrectory if doesn't exist yet and populate it as expected. Original patch by Luca Barbato, cleaned up and made to work for the current version of git-svn by me (Eric Wong). Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-30don't load objects needlessly when repackingLibravatar Nicolas Pitre1-17/+28
If no delta is attempted on some objects then it is useless to load them in memory, neither create any delta index for them. The best thing to do is therefore to load and index them only when really needed. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-30upload-pack.c: <sys/poll.h> includes <ctype.h> on OpenBSD 3.8Libravatar Junio C Hamano1-3/+3
Merlyn reports that <sys/poll.h> on OpenBSD 3.8 includes <ctype.h> and having our custom ctype (done in git-compat-util.h which is included via cache.h) makes upload-pack.c uncompilable. Try to work it around by including the system headers first. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-29Abstract out accesses to object hash arrayLibravatar Linus Torvalds4-13/+27
There are a few special places where some programs accessed the object hash array directly, which bothered me because I wanted to play with some simple re-organizations. So this patch makes the object hash array data structures all entirely local to object.c, and the few users who wanted to look at it now get to use a function to query how many object index entries there can be, and to actually access the array. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-29consider previous pack undeltified object state only when reusing delta dataLibravatar Nicolas Pitre1-2/+3
Without this there would never be a chance to improve packing for previously undeltified objects. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-29Merge branch 'jc/test-3402'Libravatar Junio C Hamano1-1/+1
* jc/test-3402: Racy GIT (part #3)
2006-06-29Do not try futile object pairs when repacking.Libravatar Linus Torvalds1-0/+7
In the repacking window, if both objects we are looking at already came from the same (old) pack-file, don't bother delta'ing them against each other. That means that we'll still always check for better deltas for (and against!) _unpacked_ objects, but assuming incremental repacks, you'll avoid the delta creation 99% of the time. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-29Racy GIT (part #3)Libravatar Junio C Hamano1-1/+1
Commit 29e4d3635709778bcc808dbad0477efad82f8d7e fixed the underlying update-index races but git-commit was not careful enough to preserve the index file timestamp when copying the index file. This caused t3402 test to occasionally fail. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-29Merge branch 'jc/diff-test-updates' into th/diffLibravatar Junio C Hamano4-6/+68
* jc/diff-test-updates: t4013: note improvements brought by the new output code.
2006-06-29t4013: note improvements brought by the new output code.Libravatar Junio C Hamano4-6/+68
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-29Merge branch 'jc/diff-test' into jc/diff-test-updatesLibravatar Junio C Hamano7-1/+581
* jc/diff-test: t4013: add format-patch tests.
2006-06-29Merge branch 'jc/diff-test' into th/diffLibravatar Junio C Hamano7-1/+581
* jc/diff-test: t4013: add format-patch tests.
2006-06-29t4013: add format-patch tests.Libravatar Junio C Hamano7-1/+581
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-29format-patch: fix diff format option implementationLibravatar Junio C Hamano1-1/+2
The updates forgot to make the diff go recursive.
2006-06-28Merge branch 'jc/repack'Libravatar Junio C Hamano1-3/+18
* jc/repack: git-repack: Be careful when updating the same pack as an existing one.
2006-06-28Merge branch 'js/patch'Libravatar Junio C Hamano4-0/+284
* js/patch: diff.c: fix get_patch_id() t4014: fix test commit labels. format-patch: use clear_commit_marks() instead of some ad-hockery t4014: fix for whitespace from "wc -l" t4014: add format-patch --ignore-if-in-upstream test format-patch: introduce "--ignore-if-in-upstream" add diff_flush_patch_id() to calculate the patch id