summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-10-09log --grep: accept --basic-regexp and --perl-regexpLibravatar Junio C Hamano2-0/+14
When we added the "--perl-regexp" option (or "-P") to "git grep", we should have done the same for the commands in the "git log" family, but somehow we forgot to do so. This corrects it, but we will reserve the short-and-sweet "-P" option for something else for now. Also introduce the "--basic-regexp" option for completeness, so that the "last one wins" principle can be used to defeat an earlier -E option, e.g. "git log -E --basic-regexp --grep='<bre>'". Note that it cannot have the short "-G" option as the option is to grep in the patch text in the context of "log" family. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-09log --grep: use the same helper to set -E/-F options as "git grep"Libravatar Junio C Hamano2-2/+8
The command line option parser for "git log -F -E --grep='<ere>'" did not flip the "fixed" bit, violating the general "last option wins" principle among conflicting options. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-09revisions: initialize revs->grep_filter using grep_init()Libravatar Junio C Hamano2-2/+9
Instead of using the hand-rolled initialization sequence, use grep_init() to populate the necessary bits. This opens the door to allow the calling commands to optionally read grep.* configuration variables via git_config() if they want to. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-09grep: move pattern-type bits support to top-level grep.[ch]Libravatar Junio C Hamano3-39/+45
Switching between -E/-G/-P/-F correctly needs a lot more than just flipping opt->regflags bit these days, and we have a nice helper function buried in builtin/grep.c for the sole use of "git grep". Extract it so that "log --grep" family can also use it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-09grep: move the configuration parsing logic to grep.[ch]Libravatar Junio C Hamano3-131/+134
The configuration handling is a library-ish part of this program, that is not specific to "git grep" command. It should be reusable by "log" and others. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-09builtin/grep.c: make configuration callback more reusableLibravatar Junio C Hamano1-25/+79
The grep_config() function takes one instance of grep_opt as its callback parameter, and populates it by running git_config(). This has three practical implications: - You have to have an instance of grep_opt already when you call the configuration, but that is not necessarily always true. You may be trying to initialize the grep_filter member of rev_info, but are not ready to call init_revisions() on it yet. - It is not easy to enhance grep_config() in such a way to make it cascade to other callback functions to grab other variables in one call of git_config(); grep_config() can be cascaded into from other callbacks, but it has to be at the leaf level of a cascade. - If you ever need to use more than one instance of grep_opt, you will have to open and read the configuration file(s) every time you initialize them. Rearrange the configuration mechanism and model it after how diff configuration variables are handled. An early call to git_config() reads and remembers the values taken from the configuration in the default "template", and a separate call to grep_init() uses this template to instantiate a grep_opt. The next step will be to move some of this out of this file so that the other user of the grep machinery (i.e. "log") can use it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-02Update draft release notes to 1.8.0Libravatar Junio C Hamano1-0/+12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-02Merge branch 'nd/grep-reflog'Libravatar Junio C Hamano5-5/+105
Teach the commands from the "log" family the "--grep-reflog" option to limit output by string that appears in the reflog entry when the "--walk-reflogs" option is in effect. * nd/grep-reflog: revision: make --grep search in notes too if shown log --grep-reflog: reject the option without -g revision: add --grep-reflog to filter commits by reflog messages grep: prepare for new header field filter
2012-10-02Merge branch 'lt/mailinfo-handle-attachment-more-sanely'Libravatar Junio C Hamano1-11/+0
A patch attached as application/octet-stream (e.g. not text/*) were mishandled, not correctly honoring Content-Transfer-Encoding (e.g. base64). * lt/mailinfo-handle-attachment-more-sanely: mailinfo: don't require "text" mime type for attachments
2012-10-02Merge branch 'tu/gc-auto-quiet'Libravatar Junio C Hamano2-5/+2
"gc --auto" notified the user that auto-packing has triggered even under the "--quiet" option. * tu/gc-auto-quiet: silence git gc --auto --quiet output
2012-10-02Merge branch 'maint'Libravatar Junio C Hamano2-1/+19
2012-10-02Start preparing for 1.7.12.3Libravatar Junio C Hamano2-1/+19
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-02Merge branch 'rr/maint-submodule-unknown-cmd' into maintLibravatar Junio C Hamano3-4/+11
"git submodule frotz" was not diagnosed as "frotz" being an unknown subcommand to "git submodule"; the user instead got a complaint that "git submodule status" was run with an unknown path "frotz". * rr/maint-submodule-unknown-cmd: submodule: if $command was not matched, don't parse other args
2012-10-02Merge branch 'sp/maint-http-enable-gzip' into maintLibravatar Junio C Hamano3-3/+5
"git fetch" over http advertised that it supports "deflate", which is much less common, and did not advertise more common "gzip" on its Accept-Encoding header. * sp/maint-http-enable-gzip: Enable info/refs gzip decompression in HTTP client
2012-10-02Merge branch 'sp/maint-http-info-refs-no-retry' into maintLibravatar Junio C Hamano1-16/+2
"git fetch" over http had an old workaround for an unlikely server misconfiguration; it turns out that this hurts debuggability of the configuration in general, and has been reverted. * sp/maint-http-info-refs-no-retry: Revert "retry request without query when info/refs?query fails"
2012-10-02l10n: Fix to Swedish translationLibravatar Peter Krefting1-2/+2
Fix bad translation of "Receiving objects". Signed-off-by: Peter Krefting <peter@softwolves.pp.se> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-02Documentation: mention `push.default` in git-push.txtLibravatar Ramkumar Ramachandra1-3/+7
It already is listed in the "git config" documentation, but people interested in pushing would first look at "git push" documentation. Noticed-by: David Glasser Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Acked-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> Fixed-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-02RelNotes/1.8.0: various typo and style fixesLibravatar Michael J Gruber1-24/+24
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-01Git 1.8.0-rc0Libravatar Junio C Hamano2-1/+24
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-01Merge branch 'jk/completion-tests'Libravatar Junio C Hamano1-0/+60
* jk/completion-tests: t9902: add completion tests for "odd" filenames t9902: add a few basic completion tests
2012-10-01Merge branch 'ep/malloc-check-perturb'Libravatar Junio C Hamano2-2/+2
Fixes a brown-paper bag bug. * ep/malloc-check-perturb: MALLOC_CHECK: enable it, unless disabled explicitly
2012-10-01Merge branch 'da/mergetool-custom'Libravatar Junio C Hamano4-28/+64
The actual external command to run for mergetool backend can be specified with difftool/mergetool.$name.cmd configuration variables, but this mechanism was ignored for the backends we natively support. * da/mergetool-custom: mergetool--lib: Allow custom commands to override built-ins
2012-10-01Merge branch 'os/commit-submodule-ignore'Libravatar Junio C Hamano1-0/+1
"git status" honored the ignore=dirty settings in .gitmodules but "git commit" didn't. * os/commit-submodule-ignore: commit: pay attention to submodule.$name.ignore in .gitmodules
2012-10-01Merge branch 'jc/blame-follows-renames'Libravatar Junio C Hamano1-0/+6
Clarify the "blame" documentation to tell the users that there is no need to ask for "--follow". * jc/blame-follows-renames: git blame: document that it always follows origin across whole-file renames
2012-10-01Merge branch 'jk/receive-pack-unpack-error-to-pusher'Libravatar Junio C Hamano2-5/+32
Send errors from "unpack-objects" and "index-pack" back to the "git push" over the git and smart-http protocols, just like it is done for a push over the ssh protocol. * jk/receive-pack-unpack-error-to-pusher: receive-pack: drop "n/a" on unpacker errors receive-pack: send pack-processing stderr over sideband receive-pack: redirect unpack-objects stdout to /dev/null
2012-10-01Merge branch 'rt/maint-clone-single'Libravatar Junio C Hamano3-18/+218
Running "git fetch" in a repository made with "git clone --single" slurps all the branches, defeating the point of "--single". * rt/maint-clone-single: clone --single: limit the fetch refspec to fetched branch
2012-09-30mailinfo: don't require "text" mime type for attachmentsLibravatar Linus Torvalds1-11/+0
Currently "git am" does insane things if the mbox it is given contains attachments with a MIME type that aren't "text/*". In particular, it will still decode them, and pass them "one line at a time" to the mail body filter, but because it has determined that they aren't text (without actually looking at the contents, just at the mime type) the "line" will be the encoding line (eg 'base64') rather than a line of *content*. Which then will cause the text filtering to fail, because we won't correctly notice when the attachment text switches from the commit message to the actual patch. Resulting in a patch failure, even if patch may be a perfectly well-formed attachment, it's just that the message type may be (for example) "application/octet-stream" instead of "text/plain". Just remove all the bogus games with the message_type. The only difference that code creates is how the data is passed to the filter function (chunked per-pred-code line or per post-decode line), and that difference is *wrong*, since chunking things per pre-decode line can never be a sensible operation, and cannot possibly matter for binary data anyway. This code goes all the way back to March of 2007, in commit 87ab79923463 ("builtin-mailinfo.c infrastrcture changes"), and apparently Don used to pass random mbox contents to git. However, the pre-decode vs post-decode logic really shouldn't matter even for that case, and more importantly, "I fed git am crap" is not a valid reason to break *real* patch attachments. If somebody really cares, and determines that some attachment is binary data (by looking at the data, not the MIME-type), the whole attachment should be dismissed, rather than fed in random-sized chunks to "handle_filter()". Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Cc: Don Zickus <dzickus@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-29Merge git://github.com/git-l10n/git-poLibravatar Junio C Hamano3-1354/+11532
* 'master' of git://github.com/git-l10n/git-po: l10n: Fixes to Swedish translation Update Swedish translation (1967t0f0u) l10n: zh.CN.po: msgmerge git.pot (1142t195f630u) l10n: Update git.pot (825 new, 24 removed messages)
2012-09-29Update draft release notes to 1.8.0Libravatar Junio C Hamano1-46/+54
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-29Sync with 1.7.12.2Libravatar Junio C Hamano4-29/+38
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-29Git 1.7.12.2Libravatar Junio C Hamano3-2/+11
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-29Merge branch 'maint' of git://github.com/git-l10n/git-po into maintLibravatar Junio C Hamano2-28/+28
Update German and Simplified Chinese translations. * 'maint' of git://github.com/git-l10n/git-po: l10n: de.po: correct translation of a 'rebase' message l10n: Improve many translation for zh_CN l10n: Unify the translation for '(un)expected'
2012-09-29Merge branch 'jc/maint-log-grep-all-match-1' into maintLibravatar Junio C Hamano6-25/+217
* jc/maint-log-grep-all-match-1: grep.c: make two symbols really file-scope static this time t7810-grep: test --all-match with multiple --grep and --author options t7810-grep: test interaction of multiple --grep and --author options t7810-grep: test multiple --author with --all-match t7810-grep: test multiple --grep with and without --all-match t7810-grep: bring log --grep tests in common form grep.c: mark private file-scope symbols as static log: document use of multiple commit limiting options log --grep/--author: honor --all-match honored for multiple --grep patterns grep: show --debug output only once grep: teach --debug option to dump the parse tree
2012-09-29Merge branch 'jc/maint-mailinfo-mime-attr' into maintLibravatar Junio C Hamano6-4/+32
* jc/maint-mailinfo-mime-attr: mailinfo: do not concatenate charset= attribute values from mime headers
2012-09-29Merge branch 'rr/maint-submodule-unknown-cmd'Libravatar Junio C Hamano3-4/+11
* rr/maint-submodule-unknown-cmd: submodule: if $command was not matched, don't parse other args
2012-09-29Merge branch 'rs/archive-zip-utf8'Libravatar Junio C Hamano1-4/+45
With another reroll, it looks like the series is as polished as it could be. * rs/archive-zip-utf8: archive-zip: write extended timestamp archive-zip: support UTF-8 paths Revert "archive-zip: support UTF-8 paths" archive-zip: support UTF-8 paths
2012-09-29Merge branch 'jk/smart-http-switch'Libravatar Junio C Hamano2-4/+17
Allows users to turn off smart-http when talking to dumb-only servers. * jk/smart-http-switch: remote-curl: let users turn off smart http remote-curl: rename is_http variable
2012-09-29Merge branch 'sp/maint-http-enable-gzip'Libravatar Junio C Hamano3-3/+5
Allows a more common 'gzip' Accept-Encoding to be used. * sp/maint-http-enable-gzip: Enable info/refs gzip decompression in HTTP client
2012-09-29Merge branch 'sp/maint-http-info-refs-no-retry'Libravatar Junio C Hamano1-16/+2
Kills an old workaround for a unlikely server misconfiguration that hurts debuggability. * sp/maint-http-info-refs-no-retry: Revert "retry request without query when info/refs?query fails"
2012-09-29Merge branch 'aw/rebase-i-edit-todo'Libravatar Junio C Hamano4-16/+73
Teach an option to edit the insn sheet to "git rebase -i". * aw/rebase-i-edit-todo: rebase -i: suggest using --edit-todo to fix an unknown instruction rebase -i: Add tests for "--edit-todo" rebase -i: Teach "--edit-todo" action rebase -i: Refactor help messages for todo file rebase usage: subcommands can not be combined with -i
2012-09-29Merge branch 'js/rebase-exec-command-not-found'Libravatar Junio C Hamano2-0/+15
* js/rebase-exec-command-not-found: rebase -i: fix misleading error message after 'exec no-such' instruction
2012-09-29Merge branch 'rr/test-use-shell-path-not-shell'Libravatar Junio C Hamano1-16/+16
Fixes a brown-paper bag bug. * rr/test-use-shell-path-not-shell: test-lib: use $SHELL_PATH, not $SHELL
2012-09-29revision: make --grep search in notes too if shownLibravatar Nguyễn Thái Ngọc Duy2-0/+11
Notes are shown after commit body. From user perspective it looks pretty much like commit body and they may assume --grep would search in that part too. Make it so. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-29log --grep-reflog: reject the option without -gLibravatar Junio C Hamano5-4/+20
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-29revision: add --grep-reflog to filter commits by reflog messagesLibravatar Nguyễn Thái Ngọc Duy5-2/+54
Similar to --author/--committer which filters commits by author and committer header fields. --grep-reflog adds a fake "reflog" header to commit and a grep filter to search on that line. All rules to --author/--committer apply except no timestamp stripping. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-29grep: prepare for new header field filterLibravatar Nguyễn Thái Ngọc Duy3-3/+24
grep supports only author and committer headers, which have the same special treatment that later headers may or may not have. Check for field type and only strip_timestamp() when the field is either author or committer. GREP_HEADER_FIELD_MAX is put in the grep_header_field enum to be calculated automatically, correctly, as long as it's at the end of the enum. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-27silence git gc --auto --quiet outputLibravatar Tobias Ulmer2-5/+2
When --quiet is requested, gc --auto should not display messages unless there is an error. Signed-off-by: Tobias Ulmer <tobiasu@tmux.org> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-27t9902: add completion tests for "odd" filenamesLibravatar Jeff King1-0/+19
We correctly handle completion items with spaces just fine, since we pass the lists around with newline delimiters. However, we do not handle filenames with shell metacharacters, as "compgen -W" performs expansion on the list we give it. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-27t9902: add a few basic completion testsLibravatar Jeff King1-0/+41
We were not testing ref or tree completion at all. Let's give them even basic sanity checks to avoid regressions. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-09-28Merge git://github.com/gotgit/git-po-zh_CNLibravatar Jiang Xin1-451/+3954
* git://github.com/gotgit/git-po-zh_CN: l10n: zh.CN.po: msgmerge git.pot (1142t195f630u)