summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2009-03-08grep: cast printf %.*s "precision" argument explicitly to intLibravatar Junio C Hamano1-2/+2
On some systems, regoff_t that is the type of rm_so/rm_eo members are wider than int; %.*s precision specifier expects an int, so use an explicit cast. A breakage reported on Darwin by Brian Gernhardt should be fixed with this patch. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-07grep: add support for coloring with external grepsLibravatar René Scharfe3-1/+48
Add the config variable color.grep.external, which can be used to switch on coloring of external greps. To enable auto coloring with GNU grep, one needs to set color.grep.external to --color=always to defeat the pager started by git grep. The value of the config variable will be passed to the external grep only if it would colorize internal grep's output, so automatic terminal detected works. The default is to not pass any option, because the external grep command could be a program without color support. Also set the environment variables GREP_COLOR and GREP_COLORS to pass the configured color for matches to the external grep. This works with GNU grep; other variables could be added as needed. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-07grep: color patterns in outputLibravatar René Scharfe5-12/+130
Coloring matches makes them easier to spot in the output. Add two options and two parameters: color.grep (to turn coloring on or off), color.grep.match (to set the color of matches), --color and --no-color (to turn coloring on or off, respectively). The output of external greps is not changed. This patch is based on earlier ones by Nguyễn Thái Ngọc Duy and Thiago Alves. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-07grep: add pmatch and eflags arguments to match_one_pattern()Libravatar René Scharfe1-11/+10
Push pmatch and eflags to the callers of match_one_pattern(), which allows them to specify regex execution flags and to get the location of a match. Since we only use the first element of the matches array and aren't interested in submatches, no provision is made for callers to provide a larger array. eflags are ignored for fixed patterns, but that's OK, since they only have a meaning in connection with regular expressions containing ^ or $. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-07grep: remove grep_opt argument from match_expr_eval()Libravatar René Scharfe2-17/+18
The only use of the struct grep_opt argument of match_expr_eval() is to pass the option word_regexp to match_one_pattern(). By adding a pattern flag for it we can reduce the number of function arguments of these two functions, as a cleanup and preparation for adding more in the next patch. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-07grep: micro-optimize hit collection for AND nodesLibravatar René Scharfe1-7/+3
In addition to returning if an expression matches a line, match_expr_eval() updates the expression's hit flag if the parameter collect_hits is set. It never sets collect_hits for children of AND nodes, though, so their hit flag will never be updated. Because of that we can return early if the first child didn't match, no matter if collect_hits is set or not. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-05Merge branch 'en/maint-hash-object'Libravatar Junio C Hamano1-2/+2
* en/maint-hash-object: Ensure proper setup of git_dir for git-hash-object Conflicts: hash-object.c
2009-03-05Merge branch 'jc/blame'Libravatar Junio C Hamano1-64/+43
* jc/blame: blame: show "previous" information in --porcelain/--incremental format git-blame: refactor code to emit "porcelain format" output
2009-03-05Merge branch 'ns/pretty-format'Libravatar Junio C Hamano6-9/+85
* ns/pretty-format: bash completion: add --format= and --oneline options for "git log" Add tests for git log --pretty, --format and --oneline. Add --oneline that is a synonym to "--pretty=oneline --abbrev-commit" Give short-hands to --pretty=tformat:%formatstring Add --format that is a synonym to --pretty
2009-03-05Merge branch 'jk/sane-relative-time'Libravatar Junio C Hamano1-1/+19
* jk/sane-relative-time: never fallback relative times to absolute
2009-03-05Merge branch 'fc/config-editor'Libravatar Junio C Hamano2-4/+18
* fc/config-editor: git config: trivial cleanup for editor action git config: codestyle cleanups config: Add new option to open an editor.
2009-03-05Merge branch 'js/send-email'Libravatar Junio C Hamano3-151/+479
* js/send-email: send-email: add --confirm option and configuration setting send-email: don't create temporary compose file until it is needed send-email: --suppress-cc improvements send-email: handle multiple Cc addresses when reading mbox message send-email: allow send-email to run outside a repo
2009-03-05Merge branch 'sg/rerere-cleanup'Libravatar Junio C Hamano3-29/+20
* sg/rerere-cleanup: rerere: remove duplicated functions
2009-03-05Merge branch 'jc/add-p-unquote'Libravatar Junio C Hamano2-10/+52
* jc/add-p-unquote: git-add -i/-p: learn to unwrap C-quoted paths
2009-03-05Merge branch 'jw/imap-preformatted-html'Libravatar Junio C Hamano2-0/+60
* jw/imap-preformatted-html: imap.preformattedHTML to tell Thunderbird to send non-flowed text
2009-03-05Merge branch 'jw/format-patch-attach'Libravatar Junio C Hamano2-2/+28
* jw/format-patch-attach: Enable setting attach as the default in .gitconfig for git-format-patch.
2009-03-05Merge branch 'sr/force-rebase'Libravatar Junio C Hamano1-5/+19
* sr/force-rebase: Teach rebase to rebase even if upstream is up to date
2009-03-05Merge branch 'fg/exclude-bq'Libravatar Junio C Hamano2-2/+9
* fg/exclude-bq: Support "\" in non-wildcard exclusion entries
2009-03-05Merge branch 'dm/add-i-edit-abort'Libravatar Junio C Hamano1-0/+4
* dm/add-i-edit-abort: add -i: revisit hunk on editor failure
2009-03-05Merge branch 'tp/completion'Libravatar Junio C Hamano1-38/+42
* tp/completion: Fixup: Add bare repository indicator for __git_ps1 Add bare repository indicator for __git_ps1 completion: More fixes to prevent unbound variable errors completion: Better __git_ps1 support when not in working directory completion: Use consistent if [...] convention, not "test" completion: For consistency, change "git rev-parse" to __gitdir calls
2009-03-05Merge branch 'js/branch-symref'Libravatar Junio C Hamano2-32/+160
* js/branch-symref: add basic branch display tests branch: clean up repeated strlen Avoid segfault with 'git branch' when the HEAD is detached builtin-branch: improve output when displaying remote branches Conflicts: builtin-branch.c
2009-03-05Merge branch 'al/ansi-color'Libravatar Junio C Hamano6-43/+51
* al/ansi-color: builtin-branch.c: Rename branch category color names Clean up use of ANSI color sequences
2009-03-05Merge branch 'js/valgrind'Libravatar Junio C Hamano7-5/+301
* js/valgrind: valgrind: do not require valgrind 3.4.0 or newer test-lib: avoid assuming that templates/ are in the GIT_EXEC_PATH Tests: let --valgrind imply --verbose and --tee Add a script to coalesce the valgrind outputs t/Makefile: provide a 'valgrind' target test-lib.sh: optionally output to test-results/$TEST.out, too Valgrind support: check for more than just programming errors valgrind: ignore ldso and more libz errors Add valgrind support in test scripts
2009-03-05MinGW: 64-bit file offsetsLibravatar Johannes Schindelin2-4/+9
The type 'off_t' should be used everywhere so that the bit-depth of that type can be adjusted in the standard C library, and you just need to recompile your program to benefit from the extended precision. Only that it was not done that way in the MS runtime library. This patch reroutes off_t to off64_t and provides the other necessary changes so that finally, clones larger than 2 gigabyte work on Windows (provided you are on a file system that allows files larger than 2gb). Initial patch by Sickboy <sb@dev-heaven.net>. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Acked-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-05Documentation - More examples for git bisectLibravatar John Tapsell1-1/+17
Including passing parameters to the programs, and running more complicated checks without requiring a seperate shell script. Signed-off-by: John Tapsell <johnflux@gmail.com> Acked-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-05Draft release notes: Carry forward the warning for behaviour changesLibravatar Junio C Hamano1-0/+22
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-04Merge branch 'maint'Libravatar Junio C Hamano1-2/+2
* maint: Make the 'lock file' exists error more informative
2009-03-04improve missing repository error messageLibravatar Jeff King4-4/+4
Certain remote commands, when asked to do something in a particular directory that was not actually a git repository, would say "unable to chdir or not a git archive". The "chdir" bit is an unnecessary detail, and the term "git archive" is much less common these days than "git repository". So let's switch them all to: fatal: '%s' does not appear to be a git repository Signed-off-by: Jeff King <peff@peff.net> Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-04Make the 'lock file' exists error more informativeLibravatar John Tapsell1-2/+2
It looks like someone did 90% of the work, then forgot to actually use the function in one place. Also the helper function did not use the correct variable. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-04git-archive: add --output=<file> to send output to a fileLibravatar Carlos Manuel Duclos Vergara3-0/+31
When archiving a repository there is no way to specify a file as output. This patch adds a new option "--output" that redirects the output to a file instead of stdout. Signed-off-by: Carlos Manuel Duclos Vergara <carlos.duclos@nokia.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-04Improve error message for git-filter-branchLibravatar John Tapsell1-1/+3
Tell the user that a backup (original) already exists, and how to solve this problem (with -f option) Signed-off-by: John Tapsell <johnflux@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-04Google has renamed the imap folderLibravatar John Tapsell1-0/+10
Also add a comment that the web interface wraps the lines Signed-off-by: John Tapsell <johnflux@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-04Modify description file to say what this file isLibravatar John Tapsell2-3/+5
A lot of people see this message for the first time on the gitweb interface, where there is no clue as to what 'this file' means. Signed-off-by: John Tapsell <johnflux@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-04rev-list: estimate number of bisection step leftLibravatar Christian Couder2-3/+44
This patch teaches "git rev-list --bisect-vars" to output an estimate of the number of bisection step left _after the current one_ along with the other variables it already outputs. This patch also makes "git-bisect.sh" display this number of steps left _after the current one_, along with the estimate of the number of revisions left to test (after the current one). Here is a table to help analyse what should be the best estimate for the number of bisect steps left. N : linear case --> probabilities --> best ------------------------------------------------------------- 1 : G-B --> 0 --> 0 2 : G-U1-B --> 0 --> 0 3 : G-U1-U2-B --> 0(1/3) 1(2/3) --> 1 4 : G-U1-U2-U3-B --> 1 --> 1 5 : G-U1-U2-U3-U4-B --> 1(3/5) 2(2/5) --> 1 6 : G-U1-U2-U3-U4-U5-B --> 1(2/6) 2(4/6) --> 2 7 : G-U1-U2-U3-U4-U5-U6-B --> 1(1/7) 2(6/7) --> 2 8 : G-U1-U2-U3-U4-U5-U6-U7-B --> 2 --> 2 9 : G-U1-U2-U3-U4-U5-U6-U7-U8-B --> 2(7/9) 3(2/9) --> 2 10: G-U1-U2-U3-U4-U5-U6-U7-U8-U9-B --> 2(6/10)3(4/10)--> 2 In the column "N", there is the number of revisions that could _now_ be the first bad commit we are looking for. The "linear case" column describes the linear history corresponding to the number in column N. G means good, B means bad, and Ux means unknown. Note that the first bad revision we are looking for can be any Ux or B. In the "probabilities" column, there are the different outcomes in number of steps with the odds of each outcome in parenthesis corresponding to the linear case. The "best" column gives the most accurate estimate among the different outcomes in the "probabilities" column. We have the following: best(2^n) == n - 1 and for any x between 0 included and 2^n excluded, the probability for n - 1 steps left looks like: P(2^n + x) == (2^n - x) / (2^n + x) and P(2^n + x) < 0.5 means 2^n < 3x So the algorithm used in this patch calculates 2^n and x, and then choose between returning n - 1 and n. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-04Fix neglect of diff_setup()/diff_setup_done() symmetry.Libravatar Keith Cascio1-0/+2
Code that calls diff_setup(), including via init_revisions(), should later call diff_setup_done(), possibly via setup_revisions(). Failure to do so could cause errors, especially in the future when we add responsibilities to diff_setup_done(). This instance causes no known errors with the present code. But it resulted in an error with an experimental patch. Signed-off-by: Keith Cascio <keith@cs.ucla.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-04Use DIFF_XDL_SET/DIFF_OPT_SET instead of raw bit-maskingLibravatar Keith Cascio2-7/+13
Signed-off-by: Keith Cascio <keith@cs.ucla.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-04Beginning of 1.6.3 development trackLibravatar Junio C Hamano3-1/+29
2009-03-04Beginning of 1.6.2 maintenance trackLibravatar Junio C Hamano2-1/+7
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-03GIT 1.6.2Libravatar Junio C Hamano3-7/+6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-03Documentation: Typo / spelling / formatting fixesLibravatar Mike Ralphson3-4/+4
Signed-off-by: Mike Ralphson <mike@abacus.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-03Documentation: Expand a couple of abbreviationsLibravatar Mike Ralphson1-1/+1
These may not be obvious to non-native English speakers Signed-off-by: Mike Ralphson <mike@abacus.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-03Documentation: Typos / spelling fixes in RelNotesLibravatar Mike Ralphson4-6/+6
Signed-off-by: Mike Ralphson <mike@abacus.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-03Documentation/git-archive.txt: Note attributesLibravatar Roy Lee1-0/+17
Signed-off-by: Roy Lee <roylee17@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-02send-email: add --confirm option and configuration settingLibravatar Jay Soffian3-39/+174
send-email violates the principle of least surprise by automatically cc'ing additional recipients without confirming this with the user. This patch teaches send-email a --confirm option. It takes the following values: --confirm=always always confirm before sending --confirm=never never confirm before sending --confirm=cc confirm before sending when send-email has automatically added addresses from the patch to the Cc list --confirm=compose confirm before sending the first message when using --compose. (Needed to maintain backwards compatibility with existing behavior.) --confirm=auto 'cc' + 'compose' If sendemail.confirm is unconfigured, the option defaults to 'compose' if any suppress-Cc related options have been used, otherwise it defaults to 'auto'. Unfortunately, it is impossible to introduce this patch such that it helps new users without potentially annoying some existing users. We attempt to mitigate the latter by: * Allowing the user to set 'git config sendemail.confirm never' * Allowing the user to say 'all' after the first prompt to not be prompted on remaining emails during the same invocation. * Telling the user about the 'sendemail.confirm' setting if it is unconfigured whenever we prompt due to Cc before sending. * Only prompting if no --suppress related options have been passed, as using such an option is likely to indicate an experienced send-email user. There is a slight fib in message informing the user of the sendemail.confirm setting and this is intentional. Setting 'auto' differs from leaving sendemail.confirm unset in two ways: 1) 'auto' obviously squelches the informational message; 2) 'auto' prompts when the Cc list has been expanded even in the presence of a --suppress related option, where leaving sendemail.confirm unset does not. This is intentional to keep the message simple, and to avoid adding another sendemail.confirm value ('auto-except-suppress'?). Signed-off-by: Jay Soffian <jaysoffian@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-02Documentation: minor grammatical fixes.Libravatar David J. Mellor1-13/+13
The final hunk in this patch corrects what appears to be a typo: of --> or Signed-off-by: David J. Mellor <dmellor@whistlingcat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-02Documentation: minor grammatical fixes.Libravatar David J. Mellor2-6/+6
Signed-off-by: David J. Mellor <dmellor@whistlingcat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-02Documentation: minor grammatical fixes.Libravatar David J. Mellor1-18/+18
Signed-off-by: David J. Mellor <dmellor@whistlingcat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-01t3400-rebase: Move detached HEAD check earlierLibravatar Johannes Sixt1-4/+4
Short story: There is a section in t3400 that tests fundamental rebase properties. 3ec7371f (Add two extra tests for git rebase, 2009-02-09) added a check that rebase works on a detached HEAD, but the test was put near the end of the file. This moves it to a more suitable place. Long story: The test that preceded the one in question tests that a rebased commit degrades from a content change with mode change to a mere mode change. But on Windows, where we have core.filemode=false, the original commit did not record the mode change, and so the rebase operation did not rebase anything. This caused the subsequent detached HEAD test to fail. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-01Merge git://git.kernel.org/pub/scm/gitk/gitkLibravatar Junio C Hamano1-4/+6
* git://git.kernel.org/pub/scm/gitk/gitk: gitk: Fix possible infinite loop and display corruption
2009-03-02gitk: Fix possible infinite loop and display corruptionLibravatar Paul Mackerras1-4/+6
This fixes an issue reported by Johannes Sixt on the git mailing list: > This recipe sends gitk into an endless loop. In git.git do: > > cd t > # remove chmod a+x A near the end of the file > sed -i 's/chmod/: chmod/' t3400-rebase.sh > sh t3400-rebase.sh --debug > cd trash\ directory.t3400-rebase/ > gitk master modechange modechange@{1} > > > I briefly see the history chart, but the dot that should be modechange@{1} > is missing. One automatically selected commit is shown in the diff section > below. But then the commit list is cleared and gitk goes into an infinite > loop. > > Things work alright if either modechange@{1} is dropped, or the 'chmod' > line is left unchanged, which is a bit strange. > > This is with git version 1.6.1.2.390.gba743 There were actually two problems. This recipe created a situation where git log would output a child commit after its parent. This meant that we called fix_reversal which called splitvarc, which should call modify_arc to note the fact that it has modified the arc that it has just split. It wasn't, which meant that displayorder and other variables got into an inconsistent state (a commit appearing twice in displayorder). This then meant that the targetrow/targetid logic in drawvisible thought it need to redraw each time. That, together with the fact that drawvisible called drawcommits which called drawvisible if a redraw was needed, led to the infinite loop. In fact drawvisible is now the only caller of drawcommits. Thus, the start and end row arguments to drawcommits always encompass the whole visible area, so drawcommits doesn't need to call drawvisible to redraw; it just needs to clear the screen and draw what it's been asked to. This fixes these two problems by adding a call to modify_arc in splitvarc and by taking out the call to drawvisible in drawcommits. It also removes an unrelated left-over debugging puts in external_blame. Signed-off-by: Paul Mackerras <paulus@samba.org>