From a83123deecfdd5078c2e16166576fb17add194b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Steinbrink?= Date: Fri, 6 Jun 2008 01:31:55 +0200 Subject: [PATCH 1/2] name-rev: Fix segmentation fault when using --all MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In commit da2478db "describe --always: fall back to showing an abbreviated object name" we lost the check that skips empty entries in the object hash table when iterating over it in cmd_name_rev. That may cause a NULL pointer being handed to show_name(), leading to a segmentation fault. So add that check back again. Signed-off-by: Björn Steinbrink Signed-off-by: Junio C Hamano --- builtin-name-rev.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/builtin-name-rev.c b/builtin-name-rev.c index 384da4db1..521f061c9 100644 --- a/builtin-name-rev.c +++ b/builtin-name-rev.c @@ -280,9 +280,13 @@ int cmd_name_rev(int argc, const char **argv, const char *prefix) int i, max; max = get_max_object_index(); - for (i = 0; i < max; i++) - show_name(get_indexed_object(i), NULL, + for (i = 0; i < max; i++) { + struct object *obj = get_indexed_object(i); + if (!obj) + continue; + show_name(obj, NULL, always, allow_undefined, data.name_only); + } } else { int i; for (i = 0; i < revs.nr; i++) From c0f6dc9b20523a569e567d3be4cabbc949c71b43 Mon Sep 17 00:00:00 2001 From: Lea Wiemann Date: Thu, 5 Jun 2008 23:01:38 +0200 Subject: [PATCH 2/2] git-for-each-ref.txt: minor improvements Rewrapped synopsis and removed wrong asterisk behind --count option; clarified --sort= description for multiple keys; documented that for-each-ref supports not only glob patterns but also prefixes like "refs/heads" as patterns, and that multiple patterns can be given. Signed-off-by: Lea Wiemann Signed-off-by: Junio C Hamano --- Documentation/git-for-each-ref.txt | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Documentation/git-for-each-ref.txt b/Documentation/git-for-each-ref.txt index f1f90cca6..6325ff9a6 100644 --- a/Documentation/git-for-each-ref.txt +++ b/Documentation/git-for-each-ref.txt @@ -8,9 +8,8 @@ git-for-each-ref - Output information on each ref SYNOPSIS -------- [verse] -'git-for-each-ref' [--count=]\* - [--shell|--perl|--python|--tcl] - [--sort=]\* [--format=] [] +'git-for-each-ref' [--count=] [--shell|--perl|--python|--tcl] + [--sort=]\* [--format=] [...] DESCRIPTION ----------- @@ -32,8 +31,9 @@ OPTIONS :: A field name to sort on. Prefix `-` to sort in descending order of the value. When unspecified, - `refname` is used. More than one sort keys can be - given. + `refname` is used. You may use the --sort= option + multiple times, in which case the last key becomes the primary + key. :: A string that interpolates `%(fieldname)` from the @@ -48,9 +48,10 @@ OPTIONS `%09` to `\t` (TAB) and `%0a` to `\n` (LF). :: - If given, the name of the ref is matched against this - using fnmatch(3). Refs that do not match the pattern - are not shown. + If one or more patterns are given, only refs are shown that + match againt at least one pattern, either using fnmatch(3) or + literally, in the latter case matching completely or from the + beginning up to a slash. --shell, --perl, --python, --tcl:: If given, strings that substitute `%(fieldname)`