Commit graph

28386 commits

Author SHA1 Message Date
Zbigniew Jędrzejewski-Szmek df44483a5d diff --stat: add config option to limit graph width
Config option diff.statGraphWidth=<width> is equivalent to
--stat-graph-width=<width>, except that the config option is ignored
by format-patch.

For the graph-width limiting to be usable, it should happen
'automatically' once configured, hence the config option.
Nevertheless, graph width limiting only makes sense when used on a
wide terminal, so it should not influence the output of format-patch,
which adheres to the 80-column standard.

Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-03-01 09:15:58 -08:00
Zbigniew Jędrzejewski-Szmek 969fe57b84 diff --stat: enable limiting of the graph part
A new option --stat-graph-width=<width> can be used to limit the width
of the graph part even is more space is available. Up to <width>
columns will be used for the graph.

If commits changing a lot of lines are displayed in a wide terminal
window (200 or more columns), and the +- graph uses the full width,
the output can be hard to comfortably scan with a horizontal movement
of human eyes. Messages wrapped to about 80 columns would be
interspersed with very long +- lines. It makes sense to limit the
width of the graph part to a fixed value (e.g. 70 columns), even if
more columns are available.

Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-03-01 09:15:47 -08:00
Zbigniew Jędrzejewski-Szmek c4432d5511 diff --stat: add a test for output with COLUMNS=40
In preparation for the introduction on the limit of the width of the
graph part, a new test with COLUMNS=40 is added to check that the
environment variable influences diff, show, log, but not format-patch.
A new test is added because limiting the graph part makes COLUMNS=200
stop influencing diff --stat behaviour, which isn't wide enough now.
The old test with COLUMNS=200 is retained to check for regressions.

Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-03-01 09:15:12 -08:00
Zbigniew Jędrzejewski-Szmek 1b058bc30d diff --stat: use a maximum of 5/8 for the filename part
The way that available columns are divided between the filename part
and the graph part is modified to use as many columns as necessary for
the filenames and the rest for the graph.

If there isn't enough columns to print both the filename and the
graph, at least 5/8 of available space is devoted to filenames. On a
standard 80 column terminal, or if not connected to a terminal and
using the default of 80 columns, this gives the same partition as
before.

The effect of this change is visible in the patch to the test vector
in t4052; with a small change with long filename, it stops truncating
the name part too short, and also allocates a bit more columns to the
graph for larger changes.

Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-03-01 09:14:58 -08:00
Zbigniew Jędrzejewski-Szmek 7a7159ace6 merge --stat: use the full terminal width
Make merge --stat behave like diff --stat and use the full terminal
width.

Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-03-01 09:14:16 -08:00
Zbigniew Jędrzejewski-Szmek 5e0ec15eb1 log --stat: use the full terminal width
Make log --stat behave like diff --stat and use the full terminal
width.

Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-03-01 09:14:00 -08:00
Zbigniew Jędrzejewski-Szmek 666c92a229 show --stat: use the full terminal width
Make show --stat behave like diff --stat and use the full terminal
width.

Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-03-01 09:13:53 -08:00
Zbigniew Jędrzejewski-Szmek af9fedc128 diff --stat: use the full terminal width
Default to the real terminal width for diff --stat output, instead
of the hard-coded 80 columns.

Some projects (especially in Java), have long filename paths, with
nested directories or long individual filenames. When files are
renamed, the filename part in stat output can be almost useless. If
the middle part between { and } is long (because the file was moved to
a completely different directory), then most of the path would be
truncated.

It makes sense to detect and use the full terminal width and display
full filenames if possible.

The are commands like diff, show, and log, which can adapt the output
to the terminal width. There are also commands like format-patch,
whose output should be independent of the terminal width. Since it is
safer to use the 80-column default, the real terminal width is only
used if requested by the calling code by setting diffopts.stat_width=-1.
Normally this value is 0, and can be set by the user only to a
non-negative value, so -1 is safe to use internally.

This patch only changes the diff builtin to use the full terminal width.

Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-03-01 09:13:06 -08:00
Junio C Hamano 31c2373d39 diff --stat: tests for long filenames and big change counts
In preparation for updates to the "diff --stat" that updates the logic
to split the allotted columns into the name part and the graph part to
make the output more readable, add a handful of tests to document the
corner case behaviour in which long filenames and big changes are shown.

When a pathname is so long that it cannot fit on the column, the current
code truncates it to make sure that the graph part has enough room to show
a meaningful graph.  If the actual change is small (e.g. only one line
changed), this results in the final output that is shorter than the width
we aim for.

Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-03-01 09:12:02 -08:00
Libor Pechacek e0a4aae865 Documentation fixes in git-config
Variable names must start with an alphabetic character, regexp config key
matching has its limits, sentence grammar.

Signed-off-by: Libor Pechacek <lpechacek@suse.cz>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-03-01 08:22:24 -08:00
ws3389 61bc0753f1 l10n: leave leading space unchanged for zh_CN.po
Signed-off-by: ws3389 <willsmith3389@gmail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2012-03-01 00:23:14 +08:00
Junio C Hamano 271ce198cd Update l10n guide
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-29 00:10:30 -08:00
Junio C Hamano accccde483 pickaxe: allow -i to search in patch case-insensitively
"git log -S<string>" is a useful way to find the last commit in the
codebase that touched the <string>. As it was designed to be used by a
porcelain script to dig the history starting from a block of text that
appear in the starting commit, it never had to look for anything but an
exact match.

When used by an end user who wants to look for the last commit that
removed a string (e.g. name of a variable) that he vaguely remembers,
however, it is useful to support case insensitive match.

When given the "--regexp-ignore-case" (or "-i") option, which originally
was designed to affect case sensitivity of the search done in the commit
log part, e.g. "log --grep", the matches made with -S/-G pickaxe search is
done case insensitively now.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-28 16:15:29 -08:00
Junio C Hamano c6a13b2c86 fsck: --no-dangling omits "dangling object" information
The default output from "fsck" is often overwhelmed by informational
message on dangling objects, especially if you do not repack often, and a
real error can easily be buried.

Add "--no-dangling" option to omit them, and update the user manual to
demonstrate its use.

Based on a patch by Clemens Buchacher, but reverted the part to change
the default to --no-dangling, which is unsuitable for the first patch.
The usual three-step procedure to break the backward compatibility over
time needs to happen on top of this, if we were to go in that direction.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-28 14:55:39 -08:00
Junio C Hamano 0f871cf56e grep: use static trans-case table
In order to prepare the kwset machinery for a case-insensitive search, we
used to use a static table of 256 elements and filled it every time before
calling kwsalloc().  Because the kwset machinery will never modify this
table, just allocate a single instance globally and fill it at the compile
time.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-28 14:29:37 -08:00
Junio C Hamano f051ad6d11 Update draft release notes to 1.7.10
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-28 13:31:05 -08:00
Junio C Hamano 472fdee793 Merge branch 'pj/completion-remote-set-url-branches'
* pj/completion-remote-set-url-branches:
  completion: normalize increment/decrement style
  completion: remote set-* <name> and <branch>
2012-02-28 13:26:04 -08:00
Junio C Hamano 4d50dbcda5 Merge branch 'ph/cherry-pick-advice-refinement'
* ph/cherry-pick-advice-refinement:
  cherry-pick: No advice to commit if --no-commit
2012-02-28 13:26:01 -08:00
Junio C Hamano 524ee675a3 Merge branch 'jb/required-filter'
* jb/required-filter:
  Add a setting to require a filter to be successful

Conflicts:
	convert.c
2012-02-28 13:25:57 -08:00
Carlos Martín Nieto e34bb2e7fd Documentation: use {asterisk} in rev-list-options.txt when needed
Text between two '*' is emphasized in AsciiDoc and makes explanations in
rev-list-options.txt on glob-related options very confusing, as the
rendered text would be missing two asterisks and the text between them
would be emphasized instead.

Use '{asterisk}' where needed to make them show up as asterisks in the
rendered text.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-28 13:17:14 -08:00
René Scharfe cbb08c2e0b parse-options: remove PARSE_OPT_NEGHELP
PARSE_OPT_NEGHELP is confusing because short options defined with that
flag do the opposite of what the helptext says. It is also not needed
anymore now that options starting with no- can be negated by removing
that prefix. Convert its only two users to OPT_NEGBIT() and OPT_BOOL()
and then remove support for PARSE_OPT_NEGHELP.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-28 11:48:11 -08:00
Jakub Narebski 36612e4daf gitweb: Handle invalid regexp in regexp search
When using regexp search ('sr' parameter / $search_use_regexp variable
is true), check first that regexp is valid.

Without this patch we would get an error from Perl during search (if
searching is performed by gitweb), or highlighting matches substring
(if applicable), if user provided invalid regexp... which means broken
HTML, with error page (including HTTP headers) generated after gitweb
already produced some output.

Add test that illustrates such error: for example for regexp "*\.git"
we would get the following error:

  Quantifier follows nothing in regex; marked by <-- HERE in m/* <-- HERE \.git/
  at /var/www/cgi-bin/gitweb.cgi line 3084.

Reported-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-28 11:45:31 -08:00
Nguyễn Thái Ngọc Duy 989937221a rev-list: fix --verify-objects --quiet becoming --objects
When --quiet is specified, finish_object() is called instead of
show_object(). The latter is in charge of --verify-objects and
will be skipped  if --quiet is specified.

Move the code up to finish_object(). Also pass the quiet flag along
and make it always call show_* functions to avoid similar problems in
future.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-28 10:47:30 -08:00
Nguyễn Thái Ngọc Duy 8ba8fe049f rev-list: remove BISECT_SHOW_TRIED flag
Since c99f069 (bisect--helper: remove "--next-vars" option as it is
now useless - 2009-04-21), this flag has always been off. Remove the
flag and all related code.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-28 10:47:28 -08:00
Jiang Xin 71eb87890a Merge pull request from jiangxin/master
l10n: translation for Simplified Chinese.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2012-02-29 00:40:07 +08:00
Jiang Xin 7ac1c0adeb l10n: update Chinese translation to the new git.po
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2012-02-28 12:24:54 +08:00
Jiang Xin 1d4ac88d67 l10n: Update git.pot (12 new messages)
Update file 'po/git.pot' to v1.7.9.2-315-g25a78 (Merge branch 'maint'),
with 12 new string additions.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2012-02-28 12:24:20 +08:00
Jiang Xin 508d1244dc Merge branch 'master' into git-po 2012-02-28 12:23:26 +08:00
Jan Krüger 42b00599be symbolic-ref --short: abbreviate the output unambiguously
It can be helpful to resolve a symbolic ref and output the result in a
shortened form, such as for use in shell prompts.  Add a "--short" option
to do so.

Signed-off-by: Jan Krüger <jk@jk.gs>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-27 15:58:36 -08:00
Junio C Hamano 25a7850a10 Merge branch 'maint'
* maint:
  Update draft release notes to 1.7.9.3
  CodingGuidelines: do not use 'which' in shell scripts
  CodingGuidelines: Add a note about spaces after redirection
  post-receive-email: match up $LOGBEGIN..$LOGEND pairs correctly
  post-receive-email: remove unused variable
2012-02-27 15:37:02 -08:00
Junio C Hamano b0fa280751 Update draft release notes to 1.7.9.3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-27 15:36:08 -08:00
Junio C Hamano 67f8d5b87d Merge branch 'pj/remote-set-branches-usage-fix' into maint
* pj/remote-set-branches-usage-fix:
  remote: fix set-branches usage and documentation

Conflicts:
	builtin/remote.c
2012-02-27 15:33:33 -08:00
Junio C Hamano e22c522730 Merge branch 'jn/gitweb-unborn-head' into maint
* jn/gitweb-unborn-head:
  gitweb: Fix "heads" view when there is no current branch
2012-02-27 15:33:26 -08:00
Junio C Hamano bdf26fcbea Merge branch 'jn/ancient-meld-support' into maint
* jn/ancient-meld-support:
  mergetools/meld: Use --help output to detect --output support
2012-02-27 15:33:07 -08:00
Junio C Hamano 4eed30a7cb Merge branch 'tr/merge-edit-guidance' into maint
* tr/merge-edit-guidance:
  merge: add instructions to the commit message when editing
2012-02-27 15:31:50 -08:00
Tim Henigan 860f70f9f4 CodingGuidelines: do not use 'which' in shell scripts
During the code review of a recent patch, it was noted that shell scripts
must not use 'which $cmd' to check the availability of the command $cmd.
The output of the command is not machine parseable and its exit code is
not reliable across platforms.

It is better to use 'type' to accomplish this task.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-27 15:10:23 -08:00
Tim Henigan 48f359bfaf CodingGuidelines: Add a note about spaces after redirection
During code review of some patches, it was noted that redirection operators
should have space before, but no space after them.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-27 12:41:13 -08:00
Tim Henigan 1252bbe1c6 contrib: add git-diffall script
The 'git difftool' allows the user to view diffs using an external tool.
It runs a separate instance of the tool for each file in the diff. This
makes it tedious to review changes spanning multiple files.

The 'git-diffall' script instead prepares temporary directories with the
files to be compared and launches a single instance of the external diff
tool to view them (i.e. a directory diff).

The 'diff.tool' or 'merge.tool' configuration variable is used to specify
which external tool is used.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-27 12:37:10 -08:00
Zbigniew Jędrzejewski-Szmek ff3d656b7c git-p4: missing she-bang line in t9804 confuses prove
Without the magic line, prove shows lots and lots of errors:
% prove ./t9804-git-p4-label.sh
./t9804-git-p4-label.sh .. syntax error at ./t9804-git-p4-label.sh line 3, near ". ."
...

When #!/bin/sh is added, tests are skipped (I have no p4d).

Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-27 12:24:09 -08:00
Michał Kiedrowicz d29d787cd6 grep -P: add tests for matching ^ and $
Earlier, fba4f1 (grep -P: Fix matching ^ and $) fixed an ancient bug.  Add
some tests to protect the change from future breakages; a slightly broken
version of this was a part of the originally submitted patch.

Signed-off-by: Michał Kiedrowicz <michal.kiedrowicz@gmail.com>
Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-27 12:21:51 -08:00
Carlos Martín Nieto 6c41e97557 branch: don't assume the merge filter ref exists
print_ref_list looks up the merge_filter_ref and assumes that a valid
pointer is returned. When the object doesn't exist, it tries to
dereference a NULL pointer. This can be the case when git branch
--merged is given an argument that isn't a valid commit name.

Check whether the lookup returns a NULL pointer and die with an error
if it does. Add a test, while we're at it.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-27 11:35:33 -08:00
Michael Haggerty 64baa4153b post-receive-email: match up $LOGBEGIN..$LOGEND pairs correctly
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-27 11:01:16 -08:00
Michael Haggerty c48be8b759 post-receive-email: remove unused variable
prep_for_email neither is passed a fourth argument nor uses it.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-27 11:01:15 -08:00
Zbigniew Jędrzejewski-Szmek 3ddf9228b4 send-email: document the --smtp-debug option
The option was already shown in -h output, so it should be documented
in the man page.

Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Suggested-by: David A. Greene <greened@obbligato.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-27 10:29:24 -08:00
Yichao Yu 0ad9e96d2e l10n: fast-forward here is ff-only merge, not push
Signed-off-by: Yichao Yu <yyc1992@gmail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2012-02-27 23:36:53 +08:00
Riku d4a8e00b32 l10n: update zh_CN translation for "Fetching %s"
Signed-off-by: Riku <lu.riku@gmail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2012-02-27 23:18:45 +08:00
Junio C Hamano 3724cc7c58 Update draft release notes to 1.7.10
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-02-26 23:11:10 -08:00
Junio C Hamano 507fba2b98 Merge branch 'jn/gitweb-search-optim'
* jn/gitweb-search-optim:
  gitweb: Faster project search
  gitweb: Option for filling only specified info in fill_project_list_info
  gitweb: Refactor checking if part of project info need filling
2012-02-26 23:05:56 -08:00
Junio C Hamano ac1373f1c2 Merge branch 'tr/maint-bundle-long-subject'
* tr/maint-bundle-long-subject:
  t5704: match tests to modern style
  strbuf: improve strbuf_get*line documentation
  bundle: use a strbuf to scan the log for boundary commits
  bundle: put strbuf_readline_fd in strbuf.c with adjustments
2012-02-26 23:05:51 -08:00
Junio C Hamano 200e96e4af Merge branch 'sp/smart-http-failure-to-push'
* sp/smart-http-failure-to-push:
  : Mask SIGPIPE on the command channel going to a transport helper
  disconnect from remote helpers more gently

Conflicts:
	transport-helper.c
2012-02-26 23:05:48 -08:00