aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgit-grep.sh2
-rw-r--r--show-branch.c15
2 files changed, 15 insertions, 2 deletions
diff --git a/git-grep.sh b/git-grep.sh
index 51924fd7c..e7a35ebd7 100755
--- a/git-grep.sh
+++ b/git-grep.sh
@@ -40,4 +40,4 @@ while : ; do
shift
done
git-ls-files -z "${git_flags[@]}" "$@" |
- xargs -0 grep "${flags[@]}" "$pattern"
+ xargs -0 grep "${flags[@]}" -e "$pattern"
diff --git a/show-branch.c b/show-branch.c
index 8cc0755e0..5778a594f 100644
--- a/show-branch.c
+++ b/show-branch.c
@@ -138,7 +138,20 @@ static void name_commits(struct commit_list *list,
nth++;
if (p->object.util)
continue;
- sprintf(newname, "%s^%d", n->head_name, nth);
+ switch (n->generation) {
+ case 0:
+ sprintf(newname, "%s^%d",
+ n->head_name, nth);
+ break;
+ case 1:
+ sprintf(newname, "%s^^%d",
+ n->head_name, nth);
+ break;
+ default:
+ sprintf(newname, "%s~%d^%d",
+ n->head_name, n->generation,
+ nth);
+ }
name_commit(p, strdup(newname), 0);
i++;
name_first_parent_chain(p);