summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-03-02Merge branch 'rs/optim-text-wrap'Libravatar Junio C Hamano3-37/+42
* rs/optim-text-wrap: utf8.c: speculatively assume utf-8 in strbuf_add_wrapped_text() utf8.c: remove strbuf_write() utf8.c: remove print_spaces() utf8.c: remove print_wrapped_text()
2010-03-02Merge branch 'ml/send-pack-transport-refactor'Libravatar Junio C Hamano4-207/+37
* ml/send-pack-transport-refactor: refactor duplicated code in builtin-send-pack.c and transport.c
2010-03-02Merge branch 'ml/fill-mm-refactor'Libravatar Junio C Hamano4-41/+24
* ml/fill-mm-refactor: refactor duplicated fill_mm() in checkout and merge-recursive
2010-03-02Merge branch 'ml/connect-refactor'Libravatar Junio C Hamano1-54/+29
* ml/connect-refactor: connect.c: move duplicated code to a new function 'get_host_and_port'
2010-03-02Merge branch 'np/compress-loose-object-memsave'Libravatar Junio C Hamano1-14/+19
* np/compress-loose-object-memsave: sha1_file: be paranoid when creating loose objects sha1_file: don't malloc the whole compressed result when writing out objects
2010-03-02Merge branch 'dp/read-not-mmap-small-loose-object'Libravatar Junio C Hamano1-0/+10
* dp/read-not-mmap-small-loose-object: hash-object: don't use mmap() for small files
2010-03-02Merge branch 'jn/makedepend'Libravatar Junio C Hamano2-50/+182
* jn/makedepend: Makefile: clarify definition of TEST_OBJS Makefile: always remove .depend directories on 'make clean' Makefile: tuck away generated makefile fragments in .depend Teach Makefile to check header dependencies Makefile: list standalone program object files in PROGRAM_OBJS Makefile: lazily compute header dependencies Makefile: list generated object files in OBJECTS Makefile: disable default implicit rules Makefile: rearrange dependency rules Makefile: transport.o depends on branch.h now Makefile: drop dependency on $(wildcard */*.h) Makefile: clean up http-walker.o dependency rules Makefile: remove wt-status.h from LIB_H Makefile: make sure test helpers are rebuilt when headers change Makefile: add missing header file dependencies Conflicts: Makefile
2010-03-02Merge branch 'jc/maint-status-preload'Libravatar Junio C Hamano1-1/+1
* jc/maint-status-preload: status: preload index to optimize lstat(2) calls
2010-03-02Merge branch 'gf/maint-sh-setup-nongit-ok'Libravatar Junio C Hamano1-1/+1
* gf/maint-sh-setup-nongit-ok: require_work_tree broken with NONGIT_OK
2010-03-02Merge branch 'jh/maint-submodule-status-in-void'Libravatar Junio C Hamano2-2/+12
* jh/maint-submodule-status-in-void: submodule summary: Don't barf when invoked in an empty repo
2010-03-02Merge branch 'hm/imap-send-cram-md5'Libravatar Junio C Hamano2-15/+135
* hm/imap-send-cram-md5: imap-send: support CRAM-MD5 authentication
2010-03-02Merge branch 'ml/color-when'Libravatar Junio C Hamano12-11/+66
* ml/color-when: Add an optional argument for --color options
2010-03-02Merge branch 'ac/cvsimport-revision-mapping'Libravatar Junio C Hamano3-8/+67
* ac/cvsimport-revision-mapping: cvsimport: new -R option: generate .git/cvs-revisions mapping
2010-03-02Merge branch 'jc/grep-author-all-match-implicit'Libravatar Junio C Hamano6-10/+57
* jc/grep-author-all-match-implicit: "log --author=me --grep=it" should find intersection, not union
2010-03-02fallback SSH_ASKPASS when GIT_ASKPASS not setLibravatar Frank Li1-0/+3
If GIT_ASKPASS is not set and SSH_ASKPASS set, GIT_ASKPASS will use SSH_ASKPASS. Signed-off-by: Frank Li <lznuaa@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-03-01Merge branch 'cc/maint-bisect-paths'Libravatar Junio C Hamano2-0/+11
* cc/maint-bisect-paths: bisect: error out when passing bad path parameters
2010-03-01bisect: error out when passing bad path parametersLibravatar Christian Couder2-0/+11
As reported by Mark Lodato, "git bisect", when it was started with path parameters that match no commit was kind of working without taking account of path parameters and was reporting something like: Bisecting: -1 revisions left to test after this (roughly 0 steps) It is more correct and safer to just error out in this case, before displaying the revisions left, so this patch does just that. Note that this bug is very old, it exists at least since v1.5.5. And it is possible to detect that case earlier in the bisect algorithm, but it is not clear that it would be an improvement to error out earlier, on the contrary it may change the behavior of "git rev-list --bisect-all" for example, which is currently correct. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-28Merge branch 'maint'Libravatar Junio C Hamano5-24/+31
* maint: Git 1.7.0.1 Remove reference to GREP_COLORS from documentation sha1_name: fix segfault caused by invalid index access
2010-02-28Git 1.7.0.1Libravatar Junio C Hamano3-7/+12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-28Remove reference to GREP_COLORS from documentationLibravatar Mark Lodato1-3/+1
There is no longer support for external grep, as per bbc09c2 (grep: rip out support for external grep, 2010-01-12), so remove the reference to it from the documentation. Signed-off-by: Mark Lodato <lodatom@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-28Makefile: clarify definition of TEST_OBJSLibravatar Jonathan Nieder1-2/+1
The definition of TEST_OBJS in commit daa99a91 (Makefile: make sure test helpers are rebuilt when headers change, 2010-01-26) moved a use of $X to before the platform-specific section where it gets defined. There are at least two ways to fix that: - Change the definition of TEST_OBJS to use the = delayed evaluation operator. This way, one need not worry about $(X) needing to be defined before TEST_OBJS is set. - Move the definition of TEST_OBJS to below the definition of $X. Carry out the second. The later site of definition makes the code more readable, since now a reader only has to look down one line to see what TEST_OBJS is meant to be used for. Oddly enough, with or without this change the behavior of the Makefile is the same. Since TEST_PROGRAMS is defined with delayed evaluation, the value of TEST_OBJS := $(patsubst test-%$X,test-%.o,$(TEST_PROGRAMS)) is independent of the value of $X when it is evaluated: the $X in the pattern and the $X in $(TEST_PROGRAMS) will simply always cancel out. Make sure $X has the expected expansion anyway to make the code and the reader’s sanity more robust in the face of future changes. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-28sha1_name: fix segfault caused by invalid index accessLibravatar Markus Heidelberg1-14/+18
The code to see if user input "git show :path" makes sense tried to access the index without properly checking the array bound. Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-26git svn: delay importing SVN::Base until it is neededLibravatar josh robb1-5/+11
Importing functions from a .dll into Git for Windows' perl is pretty slow, so let's avoid importing if it is not necessary. This seems particularly slow in virtualized enviroments. Before this change (on my machine): $ time perl /libexec/git-core/git-svn rebase Current branch master is up to date. real 2m56.750s user 0m3.129s sys 2m39.232s Afterwards: $ time perl /libexec/git-core/git-svn rebase Current branch master is up to date. real 0m33.407s user 0m1.409s sys 0m23.054s git svn rebase -n goes from 3m7.046s to 0m10.312s. Signed-off-by: Josh Robb <josh_robb@fastmail.fm> Acked-by: Eric Wong <normalperson@yhbt.net>
2010-02-26git-svn: Fix discarding of extra parents from svn:mergeinfoLibravatar Tuomas Suutari2-2/+2
If parent J is an ancestor of parent I, then parent J should be discarded, not I. Note that J is an ancestor of I if and only if rev-list I..J is emtpy, which is what we are testing here. Signed-off-by: Tuomas Suutari <tuomas.suutari@gmail.com> Acked-by: Eric Wong <normalperson@yhbt.net>
2010-02-26t9151: Add two new svn:mergeinfo test casesLibravatar Tuomas Suutari3-53/+581
When svn:mergeinfo contains two new parents in a specific order and one is ancestor of the other, it is possible that git-svn discards the wrong one. The first test case ("commit made to merged branch is reachable from the merge") proves this. The second test case ("merging two branches in one commit is detected correctly") is just for completeness, since there was no test for merging two (feature) branches to trunk in one commit. Signed-off-by: Tuomas Suutari <tuomas.suutari@gmail.com> Acked-by: Eric Wong <normalperson@yhbt.net>
2010-02-26t9151: Fix a few commits in the SVN dumpLibravatar Tuomas Suutari2-38/+74
A few "svn cp" commands and commit commands were executed in incorrect order. Therefore some of the desired commits were missing and some were committed with wrong revision number in the commit message. This made it hard to compare the produced git repository with the SVN repository. The dump file is updated too, but only the relevant parts and with hand-edited timestamps to make history linear. Signed-off-by: Tuomas Suutari <tuomas.suutari@gmail.com> Acked-by: Eric Wong <normalperson@yhbt.net>
2010-02-25Merge branch 'maint'Libravatar Junio C Hamano1-0/+1
* maint: t3301-notes: insert a shbang line in ./fake_editor.sh
2010-02-25Merge branch 'maint-1.6.6' into maintLibravatar Junio C Hamano1-0/+1
* maint-1.6.6: t3301-notes: insert a shbang line in ./fake_editor.sh
2010-02-25Windows: redirect f[re]open("/dev/null") to f[re]open("nul")Libravatar Johannes Sixt4-0/+33
On Windows, the equivalent of "/dev/null" is "nul". This implements compatibility wrappers around fopen() and freopen() that check for this particular file name. The new tests exercise code paths where this is relevant. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-25t3301-notes: insert a shbang line in ./fake_editor.shLibravatar Johannes Sixt1-0/+1
This is required on Windows because git-notes is now a built-in rather than a shell script. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-24Merge branch 'maint'Libravatar Junio C Hamano1-1/+1
* maint: commit: quote the user name in the example
2010-02-24commit: quote the user name in the exampleLibravatar Matt Kraai1-1/+1
If the user runs git config --global user.name Your Name as suggested, user.name will be set to "Your". With this patch, the suggested command will be git config --global user.name "Your Name" which will set user.name to "Your Name" and hopefully help users avoid the former mistake. Signed-off-by: Matt Kraai <kraai@ftbfs.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-24Merge branch 'ml/maint-grep-doc' into maintLibravatar Junio C Hamano1-5/+12
* ml/maint-grep-doc: grep documentation: clarify what files match
2010-02-23Merge branch 'maint'Libravatar Junio C Hamano3-6/+9
* maint: am: remove rebase-apply directory before gc rerere: fix memory leak if rerere images can't be read Documentation: mention conflict marker size argument (%L) for merge driver
2010-02-23am: remove rebase-apply directory before gcLibravatar Jonathan Nieder1-2/+1
When git am does an automatic gc it doesn't clean up the rebase-apply directory until after this has finished. This means that if the user aborts the gc then future am or rebase operations will report that an existing operation is in progress, which is undesirable and confusing. Reported by Mark Brown <broonie@debian.org> through http://bugs.debian.org/570966 Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-23rerere: fix memory leak if rerere images can't be readLibravatar Bert Wesarg1-3/+6
Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-23Documentation: mention conflict marker size argument (%L) for merge driverLibravatar Bert Wesarg1-1/+2
23a64c9e (conflict-marker-size: new attribute, 2010-01-16) introduced the new attribute and also pass the conflict marker size as %L to merge driver commands. This documents the substitution. Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-21sha1_file: be paranoid when creating loose objectsLibravatar Nicolas Pitre1-0/+9
We don't want the data being deflated and stored into loose objects to be different from what we expect. While the deflated data is protected by a CRC which is good enough for safe data retrieval operations, we still want to be doubly sure that the source data used at object creation time is still what we expected once that data has been deflated and its CRC32 computed. The most plausible data corruption may occur if the source file is modified while Git is deflating and writing it out in a loose object. Or Git itself could have a bug causing memory corruption. Or even bad RAM could cause trouble. So it is best to make sure everything is coherent and checksum protected from beginning to end. To do so we compute the SHA1 of the data being deflated _after_ the deflate operation has consumed that data, and make sure it matches with the expected SHA1. This way we can rely on the CRC32 checked by the inflate operation to provide a good indication that the data is still coherent with its SHA1 hash. One pathological case we ignore is when the data is modified before (or during) deflate call, but changed back before it is hashed. There is some overhead of course. Using 'git add' on a set of large files: Before: real 0m25.210s user 0m23.783s sys 0m1.408s After: real 0m26.537s user 0m25.175s sys 0m1.358s The overhead is around 5% for full data coherency guarantee. Signed-off-by: Nicolas Pitre <nico@fluxnic.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-21Merge branch 'ml/maint-grep-doc'Libravatar Junio C Hamano1-5/+12
* ml/maint-grep-doc: grep documentation: clarify what files match
2010-02-21Merge branch 'tc/maint-transport-ls-remote-with-void'Libravatar Junio C Hamano2-1/+10
* tc/maint-transport-ls-remote-with-void: transport: add got_remote_refs flag
2010-02-21Merge branch 'hm/maint-imap-send-crlf'Libravatar Junio C Hamano1-1/+39
* hm/maint-imap-send-crlf: git-imap-send: Convert LF to CRLF before storing patch to draft box
2010-02-21Merge branch 'sp/push-sideband'Libravatar Junio C Hamano10-134/+370
* sp/push-sideband: receive-pack: Send internal errors over side-band #2 t5401: Use a bare repository for the remote peer receive-pack: Send hook output over side band #2 receive-pack: Wrap status reports inside side-band-64k receive-pack: Refactor how capabilities are shown to the client send-pack: demultiplex a sideband stream with status data run-command: support custom fd-set in async run-command: Allow stderr to be a caller supplied pipe
2010-02-21Merge branch 'jc/checkout-detached'Libravatar Junio C Hamano5-12/+46
* jc/checkout-detached: Reword "detached HEAD" notification
2010-02-21Merge branch 'jc/maint-fix-test-perm'Libravatar Junio C Hamano2-0/+4
* jc/maint-fix-test-perm: lib-patch-mode.sh: Fix permission t6000lib: Fix permission
2010-02-21Merge branch 'jn/makefile-script-lib'Libravatar Junio C Hamano3-14/+28
* jn/makefile-script-lib: Do not install shell libraries executable
2010-02-21Merge branch 'mv/request-pull-modernize'Libravatar Junio C Hamano1-4/+4
* mv/request-pull-modernize: request-pull: avoid mentioning that the start point is a single commit
2010-02-21hash-object: don't use mmap() for small filesLibravatar Dmitry Potapov1-0/+10
Using read() instead of mmap() can be 39% speed up for 1Kb files and is 1% speed up 1Mb files. For larger files, it is better to use mmap(), because the difference between is not significant, and when there is not enough memory, mmap() performs much better, because it avoids swapping. Signed-off-by: Dmitry Potapov <dpotapov@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-21sha1_file: don't malloc the whole compressed result when writing out objectsLibravatar Nicolas Pitre1-14/+10
There is no real advantage to malloc the whole output buffer and deflate the data in a single pass when writing loose objects. That is like only 1% faster while using more memory, especially with large files where memory usage is far more. It is best to deflate and write the data out in small chunks reusing the same memory instead. For example, using 'git add' on a few large files averaging 40 MB ... Before: 21.45user 1.10system 0:22.57elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+828040outputs (0major+142640minor)pagefaults 0swaps After: 21.50user 1.25system 0:22.76elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+828040outputs (0major+104408minor)pagefaults 0swaps While the runtime stayed relatively the same, the number of minor page faults went down significantly. Signed-off-by: Nicolas Pitre <nico@fluxnic.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-20Merge branch 'maint'Libravatar Junio C Hamano3-14/+13
* maint: git-p4: fix bug in symlink handling t1450: fix testcases that were wrongly expecting failure Documentation: Fix indentation problem in git-commit(1)
2010-02-20utf8.c: speculatively assume utf-8 in strbuf_add_wrapped_text()Libravatar René Scharfe1-6/+17
is_utf8() works by calling utf8_width() for each character at the supplied location. In strbuf_add_wrapped_text(), we do that anyway while wrapping the lines. So instead of checking the encoding beforehand, optimistically assume that it's utf-8 and wrap along until an invalid character is hit, and when that happens start over. This pays off if the text consists only of valid utf-8 characters. The following command was run against the Linux kernel repo with git 1.7.0: $ time git log --format='%b' v2.6.32 >/dev/null real 0m2.679s user 0m2.580s sys 0m0.100s $ time git log --format='%w(60,4,8)%b' >/dev/null real 0m4.342s user 0m4.230s sys 0m0.110s And with this patch series: $ time git log --format='%w(60,4,8)%b' >/dev/null real 0m3.741s user 0m3.630s sys 0m0.110s So the cost of wrapping is reduced to 70% in this case. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>