summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2006-06-02Merge branch 'nh/http'Libravatar Junio C Hamano2-5/+8
* nh/http: http: prevent segfault during curl handle reuse Remove possible segfault in http-fetch.
2006-05-31Merge git://git.kernel.org/pub/scm/gitk/gitkLibravatar Junio C Hamano1-48/+54
* git://git.kernel.org/pub/scm/gitk/gitk: gitk: show_error fix [PATCH] gitk: start-up bugfix [PATCH] gitk: Replace "git-" commands with "git " [PATCH] gitk: Display commit messages with word wrap gitk: Fix bug where page-up/down wouldn't always work properly gitk: Fix display of "(...)" for parents/children we haven't drawn
2006-05-31http: prevent segfault during curl handle reuseLibravatar Nick Hengeveld1-3/+6
If a curl handle is configured with special options, they may reference information that is freed after the request is complete which can cause a segfault if the curl handle is reused for a different type of request. This patch resets these options to a safe state when a transfer slot is assigned to a new request. Signed-off-by: Nick Hengeveld <nickh@reactrix.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-31send-email: only 'require' instead of 'use' Net::SMTPLibravatar Johannes Schindelin1-1/+1
This was proposed by Eric Wong and fixes the test. (Of course, git-send-email does not work, if there is no Net::SMTP here, but it will say what is wrong when you actually try to use send-email.) Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-31Allow multiple -m options to git-commit.Libravatar Shawn Pearce1-7/+30
I find it very convenient to be able to supply multiple paragraphs of text on the command line with a single git-commit call. This change permits multiple -m/--message type options to be supplied to git-commit with each message being added as its own paragraph of text in the commit message. The -m option is still not permitted with -c/-C/-F nor are multiple occurrences of these options permitted. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-30Improved pack format documentation.Libravatar Shawn Pearce1-3/+8
While trying to implement a pack reader in Java I was mislead by some facts listed in this documentation as well as found a few details to be missing about the pack header. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-30git_exec_path, execv_git_cmd: ignore empty environment variablesLibravatar Dmitry V. Levin1-2/+2
Ignoring empty environment variables is good common practice. Ignoring --exec-path with empty argument won't harm, too: if user means current directory, there is a "--exec-path=." Signed-off-by: Dmitry V. Levin <ldv@altlinux.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-30execv_git_cmd: Fix stack buffer overflow.Libravatar Dmitry V. Levin1-9/+23
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-30Fixed Cygwin CR-munging problem in mailsplitLibravatar Salikh Zakirov1-1/+1
Do not open mailbox file as fopen(..., "rt") as this strips CR characters from the diff, thus breaking the patch context for changes in CRLF files. Signed-off-by: Salikh Zakirov <Salikh.Zakirov@Intel.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-30Merge branch 'ew/tests'Libravatar Junio C Hamano5-68/+82
* ew/tests: t6000lib: workaround a possible dash bug t5500-fetch-pack: remove local (bashism) usage. tests: Remove heredoc usage inside quotes t3300-funny-names: shell portability fixes
2006-05-30send-email: do not pass bogus address to local sendmail binaryLibravatar Junio C Hamano2-8/+17
This makes t9001 test happy. Also fixes the warning on uninitialized $references variable again. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29Add a basic test case for git send-email, and fix some real bugs discovered.Libravatar Ryan Anderson1-0/+34
Signed-off-by: Ryan Anderson <rda@google.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29Fix a bug in email extraction used in git-send-email.Libravatar Ryan Anderson1-1/+6
(Also, kill off an accidentally created warning.) Signed-off-by: Ryan Anderson <rda@google.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29Add support for --bcc to git-send-email.Libravatar Ryan Anderson1-2/+8
Signed-off-by: Ryan Anderson <rda@google.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29git-send-email: Add References: headers to emails, in addition to In-Reply-To:Libravatar Ryan Anderson1-2/+11
Signed-off-by: Ryan Anderson <rda@google.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29git-clean fails on files beginning with a dashLibravatar Dennis Stosberg1-2/+2
Reproducible with: $ git init-db $ echo "some text" >-file $ git clean Removing -file rm: invalid option -- l Try `rm --help' for more information. Signed-off-by: Dennis Stosberg <dennis@stosberg.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29git-svn: remove assertion that broke with older versions of svnLibravatar Eric Wong1-1/+0
svn < 1.3.x would display changes to keywords lines as modified if they aren't expanded in the working copy. We already check for changes against the git tree here, so checking against the svn one is probably excessive. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29git-svn: t0001: workaround a heredoc bug in old versions of dashLibravatar Eric Wong1-1/+2
The dash installed on my Debian Sarge boxes don't seem to like <<'' as a heredoc starter. Recent versions of dash do not need this fix. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29Documentation: fix a tutorial-2 typoLibravatar J. Bruce Fields1-1/+1
Fix a typo. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29Documentation: retitle the git-core tutorialLibravatar J. Bruce Fields1-2/+2
Give the git-core tutorial a name that better reflects its intended audience. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29documentation: add brief mention of cat-file to tutorial part ILibravatar J. Bruce Fields1-1/+7
I'd rather avoid git cat-file so early on, but the git-cat-file -p old-commit:/path/to/file trick is too useful.... Also fix a nearby typo while we're at it. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29documentation: mention gitk font adjustment in tutorialLibravatar J. Bruce Fields1-1/+3
Kind of silly, but the font I get by default in gitk makes it mostly unusable for me, so this is the first thing I'd want to know about. (But maybe there's a better suggestion than just Ctrl-='ing until satisfied.) Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29Fix some documentation typoesLibravatar Horst von Brand1-3/+3
Fix some typoes in Documentation/everyday.txt Signed-off-by: Horst H. von Brand <vonbrand@inf.utfsm.cl> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29Make git-diff-tree indicate when it flushesLibravatar Paul Mackerras1-3/+7
There are times when gitk needs to know that the commits it has sent to git-diff-tree --stdin did not match, and it needs to know in a timely fashion even if none of them match. At the moment, git-diff-tree outputs nothing for non-matching commits, so it is impossible for gitk to distinguish between git-diff-tree being slow and git-diff-tree saying no. This makes git-diff-tree flush its output and echo back the input line when it is not a valid-looking object name. Gitk, or other users of git-diff-tree --stdin, can use a blank line or any other "marker line" to indicate that git-diff-tree has processed all the commits on its input up to the echoed back marker line, and any commits that have not been output do not match. [jc: re-done after a couple of back-and-forth discussion on the list.] Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29Remove unnecessary output from t3600-rm.Libravatar Shawn Pearce1-19/+23
Moved the setup commands into test_expect_success blocks so their output is hidden unless -v is used. This makes the test suite look a little cleaner when the rm test-file setup step fails (and was expected to fail for most cases). Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-28Merge branch 'lt/apply'Libravatar Junio C Hamano2-0/+70
* lt/apply: apply: force matching at the beginning. Add a test-case for git-apply trying to add an ending line apply: treat EOF as proper context.
2006-05-28Merge branch 'jc/cache-tree'Libravatar Junio C Hamano15-128/+834
* jc/cache-tree: (26 commits) builtin-rm: squelch compiler warnings. git-write-tree writes garbage on sparc64 Fix crash when reading the empty tree fsck-objects: do not segfault on missing tree in cache-tree cache-tree: a bit more debugging support. read-tree: invalidate cache-tree entry when a new index entry is added. Fix test-dump-cache-tree in one-tree disappeared case. fsck-objects: mark objects reachable from cache-tree cache-tree: replace a sscanf() by two strtol() calls cache-tree.c: typefix test-dump-cache-tree: validate the cached data as well. cache_tree_update: give an option to update cache-tree only. read-tree: teach 1-way merege and plain read to prime cache-tree. read-tree: teach 1 and 2 way merges about cache-tree. update-index: when --unresolve, smudge the relevant cache-tree entries. test-dump-cache-tree: report number of subtrees. cache-tree: sort the subtree entries. Teach fsck-objects about cache-tree. index: make the index file format extensible. cache-tree: protect against "git prune". ... Conflicts: Makefile, builtin.h, git.c: resolved the same way as in next.
2006-05-28Merge branch 'jc/dirwalk-n-cache-tree' into jc/cache-treeLibravatar Junio C Hamano148-2560/+7935
* jc/dirwalk-n-cache-tree: (212 commits) builtin-rm: squelch compiler warnings. Add builtin "git rm" command Move pathspec matching from builtin-add.c into dir.c Prevent bogus paths from being added to the index. builtin-add: fix unmatched pathspec warnings. Remove old "git-add.sh" remnants builtin-add: warn on unmatched pathspecs Do "git add" as a builtin Clean up git-ls-file directory walking library interface libify git-ls-files directory traversal Add a conversion tool to migrate remote information into the config fetch, pull: ask config for remote information Fix build procedure for builtin-init-db read-tree -m -u: do not overwrite or remove untracked working tree files. apply --cached: do not check newly added file in the working tree Implement a --dry-run option to git-quiltimport Implement git-quiltimport Revert "builtin-grep: workaround for non GNU grep." builtin-grep: workaround for non GNU grep. builtin-grep: workaround for non GNU grep. ...
2006-05-28Don't use "sscanf()" for tree mode scanningLibravatar Linus Torvalds1-3/+18
Doing an oprofile run on the result of my git rev-list memory leak fixes and tree parsing cleanups, I was surprised by the third-highest entry being samples % image name app name symbol name 179751 2.7163 libc-2.4.so libc-2.4.so _IO_vfscanf@@GLIBC_2.4 where that 2.7% is actually more than 5% of one CPU, because this was run on a dual CPU setup with the other CPU just being idle. That seems to all be from the use of 'sscanf(tree, "%o", &mode)' for the tree buffer parsing. So do the trivial octal parsing by hand, which also gives us where the first space in the string is (and thus where the pathname starts) so we can get rid of the "strchr(tree, ' ')" call too. This brings the "git rev-list --all --objects" time down from 63 seconds to 55 seconds on the historical kernel archive for me, so it's quite noticeable - tree parsing is a lot of what we end up doing when following all the objects. [ I also see a 5% speedup on a full "git fsck-objects" on the current kernel archive, so that sscanf() really does seem to have hurt our performance by a surprising amount ] Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-28git-fetch: avoid using "case ... in (arm)"Libravatar Junio C Hamano1-3/+3
NetBSD ash chokes on the optional open parenthesis for case arms. Inside $(command substitution), however, bash barfs without. So adjust things accordingly. Originally pointed out by Dennis Stosberg. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-28Merge branch 'jc/mailinfo'Libravatar Junio C Hamano1-1/+8
* jc/mailinfo: mailinfo: skip bogus UNIX From line inside body
2006-05-28Merge branch 'eb/mailinfo'Libravatar Junio C Hamano1-64/+79
* eb/mailinfo: mailinfo: More carefully parse header lines in read_one_header_line() Allow in body headers beyond the in body header prefix. More accurately detect header lines in read_one_header_line In handle_body only read a line if we don't already have one. Refactor commit messge handling. Move B and Q decoding into check header. Make read_one_header_line return a flag not a length.
2006-05-28git-write-tree writes garbage on sparc64Libravatar Dennis Stosberg1-1/+1
In the "next" branch, write_index_ext_header() writes garbage on a 64-bit big-endian machine; the written index file will be unreadable. I noticed this on NetBSD/sparc64. Reproducible with: $ git init-db $ :>file $ git-update-index --add file $ git-write-tree $ git-update-index error: index uses extension, which we do not understand fatal: index file corrupt Signed-off-by: Dennis Stosberg <dennis@stosberg.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-28Fix memory leak in "git rev-list --objects"Libravatar Linus Torvalds1-0/+3
Martin Langhoff points out that "git repack -a" ends up using up a lot of memory for big archives, and that git cvsimport probably should do only incremental repacks in order to avoid having repacking flush all the caches. The big majority of the memory usage of repacking is from git rev-list tracking all objects, and this patch should go a long way in avoiding the excessive memory usage: the bulk of it was due to the object names being leaked from the tree parser. For the historic Linux kernel archive, this simple patch does: Before: /usr/bin/time git-rev-list --all --objects > /dev/null 72.45user 0.82system 1:13.55elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+125376minor)pagefaults 0swaps After: /usr/bin/time git-rev-list --all --objects > /dev/null 75.22user 0.48system 1:16.34elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+43921minor)pagefaults 0swaps where we do end up wasting a bit of time on some extra strdup()s (which could be avoided, but that would require tracking where the pathnames came from), but we avoid a lot of memory usage. Minor page faults track maximum RSS very closely (each page fault maps in one page into memory), so the reduction from 125376 page faults to 43921 means a rough reduction of VM footprint from almost half a gigabyte to about a third of that. Those numbers were also double-checked by looking at "top" while the process was running. (Side note: at least part of the remaining VM footprint is the mapping of the 177MB pack-file, so the remaining memory use is at least partly "well behaved" from a project caching perspective). For the current git archive itself, the memory usage for a "--all --objects" rev-list invocation dropped from 7128 pages to 2318 (27MB to 9MB), so the reduction seems to hold for much smaller projects too. For regular "git-rev-list" usage (ie without the "--objects" flag) this patch has no impact. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-28gitview: Move the console error messages to message dialogLibravatar Aneesh Kumar K.V1-2/+7
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-28gitview: Add key binding for F5.Libravatar Aneesh Kumar K.V2-6/+17
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-28Let git-clone to pass --template=dir option to git-init-db.Libravatar Junio C Hamano2-4/+15
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-28Make cvsexportcommit create parent directories as needed.Libravatar Yann Dirson1-5/+32
This is a quick port of my initial patch for 1.0.7, that I had forgotten to post. Possibly needs some testing before applying to master. Signed-off-by: Yann Dirson <ydirson@altern.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-28Document current cvsexportcommit limitations.Libravatar Yann Dirson1-0/+7
Since there is no bugtracker that I know of, let's just use the scripts themselves to document their limitations. Signed-off-by: Yann Dirson <ydirson@altern.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-28Do not call 'cmp' with non-existant -q flag.Libravatar Yann Dirson1-1/+1
I cannot find when that flag was removed if it ever existed, I can find nothing about it in the ChangeLog and NEWS file of GNU diff. The current flag is -s aka --quiet aka --silent, so let's use -s, assuming it is a portable flag. Feel free to lart me with a POSIX bible if needed. Signed-off-by: Yann Dirson <ydirson@altern.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-28Fix "--abbrev=xyz" for revision listingLibravatar Linus Torvalds1-0/+8
The revision argument parsing was happily parsing "--abbrev", but it didn't parse "--abbrev=<n>". Which was hidden by the fact that the diff options _would_ parse --abbrev=<n>, so it would actually silently parse it, it just wouldn't use it for the same things that a plain "--abbrev" was used for. Which seems a bit insane. With this patch, if you do "git log --abbrev=10" it will abbreviate the merge parent commit ID's to ten hex characters, which was probably what you expected. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-28t1002: use -U0 instead of --unified=0Libravatar Linus Torvalds1-10/+10
Using "-U0" is definitely more portable than using "--unified=0", so we should do that regardless. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-28format-patch: -n and -k are mutually exclusive.Libravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-26Call builtin ls-tree in git-cat-file -pLibravatar Petr Baudis1-1/+1
Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-26built-in format-patch: various fixups.Libravatar Junio C Hamano1-2/+11
- The --start-number handling introduced breakage in the normal code path. It started numbering at 0 when not --numbered, for example. - When generating one file per patch, we needlessly added an extra blank line in front for second and subsequent files. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-26gitk: show_error fixLibravatar Paul Mackerras1-8/+8
Bug noted by Junio C Hamano: show_error can be passed "." (root window) as its $w argument, but appending ".m" and ".ok" results in creating "..m" and "..ok" as window paths, which were invalid. This fixes it in a slightly different way from Junio's patch, though. Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-05-26[PATCH] gitk: start-up bugfixLibravatar Junio C Hamano1-1/+1
The code to extract a message part from the error message was not passing the error message to [string range], and resulted in the show_error not getting called. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-05-26[PATCH] gitk: Replace "git-" commands with "git "Libravatar Timo Hirvonen1-26/+26
git-* commands work only if gitexecdir is in PATH. Signed-off-by: Timo Hirvonen <tihirvon@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-05-26Add instructions to commit template.Libravatar Martin Waitz1-0/+3
New users can be irritated by the git status text in their editor. Let's give them a short help. Signed-off-by: Martin Waitz <tali@admingilde.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-26mailinfo: More carefully parse header lines in read_one_header_line()Libravatar Junio C Hamano1-3/+24
We exited prematurely from header parsing loop when the header field did not have a space after the colon but we insisted on it, and we got the check wrong because we forgot that we strip the trailing whitespace before we do the check. The space after the colon is not even required by RFC2822, so stop requiring it. While we are at it, the header line is specified to be more strict than "anything with a colon in it" (there must be one or more characters before the colon, and they must not be controls, SP or non US-ASCII), so implement that check as well, lest we mistakenly think something like: Bogus not a header line: this is not. as a header line. Signed-off-by: Junio C Hamano <junkio@cox.net>