Browse Source
When showing only one branch a lot of default output becomes redundant, so clean it up a bit, and document what is shown. Retire the earlier implementation "git-show-branches-script". Signed-off-by: Junio C Hamano <junkio@cox.net>maint

6 changed files with 128 additions and 140 deletions
@ -0,0 +1,107 @@
@@ -0,0 +1,107 @@
|
||||
git-show-branch(1) |
||||
================== |
||||
v0.99.4, Aug 2005 |
||||
|
||||
NAME |
||||
---- |
||||
git-show-branch - Show branches and their commits. |
||||
|
||||
SYNOPSIS |
||||
-------- |
||||
'git show-branch [--all] [--heads] [--tags] [--more=<n>] [--merge-base] <reference>...' |
||||
|
||||
DESCRIPTION |
||||
----------- |
||||
Shows the head commits from the named <reference> (or all refs under |
||||
$GIT_DIR/refs/heads), and displays concise list of commit logs |
||||
to show their relationship semi-visually. |
||||
|
||||
OPTIONS |
||||
------- |
||||
<reference>:: |
||||
Name of the reference under $GIT_DIR/refs/. |
||||
|
||||
--all --heads --tags:: |
||||
Show all refs under $GIT_DIR/refs, $GIT_DIR/refs/heads, |
||||
and $GIT_DIR/refs/tags, respectively. |
||||
|
||||
--more=<n>:: |
||||
Usually the command stops output upon showing the commit |
||||
that is the common ancestor of all the branches. This |
||||
flag tells the command to go <n> commits beyond that. |
||||
|
||||
--merge-base:: |
||||
Instead of showing the commit list, just act like the |
||||
'git-merge-base' command except that it can accept more |
||||
than two heads. |
||||
|
||||
|
||||
OUTPUT |
||||
------ |
||||
Given N <references>, the first N lines are the one-line |
||||
description from their commit message. The branch head that is |
||||
pointed at by $GIT_DIR/HEAD is prefixed with an asterisk '*' |
||||
character while other heads are prefixed with a '!' character. |
||||
|
||||
Following these N lines, one-line log for each commit is |
||||
displayed, indented N places. If a commit is on the I-th |
||||
branch, the I-th indentation character shows a '+' sign; |
||||
otherwise it shows a space. Each commit shows a short name that |
||||
can be used as an exended SHA1 to name that commit. |
||||
|
||||
The following example shows three branches, "master", "fixes" |
||||
and "mhf": |
||||
|
||||
------------------------------------------------ |
||||
$ git show-branch master fixes mhf |
||||
! [master] Add 'git show-branch'. |
||||
! [fixes] Introduce "reset type" flag to "git reset" |
||||
! [mhf] Allow "+remote:local" refspec to cause --force when fetching. |
||||
--- |
||||
+ [mhf] Allow "+remote:local" refspec to cause --force when fetching. |
||||
+ [mhf~1] Use git-octopus when pulling more than one heads. |
||||
+ [fixes] Introduce "reset type" flag to "git reset" |
||||
+ [mhf~2] "git fetch --force". |
||||
+ [mhf~3] Use .git/remote/origin, not .git/branches/origin. |
||||
+ [mhf~4] Make "git pull" and "git fetch" default to origin |
||||
+ [mhf~5] Infamous 'octopus merge' |
||||
+ [mhf~6] Retire git-parse-remote. |
||||
+ [mhf~7] Multi-head fetch. |
||||
+ [mhf~8] Start adding the $GIT_DIR/remotes/ support. |
||||
+++ [master] Add 'git show-branch'. |
||||
------------------------------------------------ |
||||
|
||||
These three branches all forked from a common commit, [master], |
||||
whose commit message is "Add 'git show-branch'. "fixes" branch |
||||
adds one commit 'Introduce "reset type"'. "mhf" branch has many |
||||
other commits. |
||||
|
||||
When only one head is given, the output format changes slightly |
||||
to conserve space. The '+' sign to show which commit is |
||||
reachable from which head and the first N lines to show the list |
||||
of heads being displayed are both meaningless so they are |
||||
omitted. Also the label given to each commit does not repeat |
||||
the name of the branch because it is obvious. |
||||
|
||||
------------------------------------------------ |
||||
$ git show-branch --more=4 master |
||||
[master] Add 'git show-branch'. |
||||
[~1] Add a new extended SHA1 syntax <name>~<num> |
||||
[~2] Fix "git-diff-script A B" |
||||
[~3] git-ls-files: generalized pathspecs |
||||
[~4] Make "git-ls-files" work in subdirectories |
||||
------------------------------------------------ |
||||
|
||||
Author |
||||
------ |
||||
Written by Junio C Hamano <junkio@cox.net> |
||||
|
||||
|
||||
Documentation |
||||
-------------- |
||||
Documentation by Junio C Hamano. |
||||
|
||||
|
||||
GIT |
||||
--- |
||||
Part of the link:git.html[git] suite |
@ -1,71 +0,0 @@
@@ -1,71 +0,0 @@
|
||||
git-show-branches-script(1) |
||||
=========================== |
||||
v0.99.4, Aug 2005 |
||||
|
||||
NAME |
||||
---- |
||||
git-show-branches-script - Show branches and their commits. |
||||
|
||||
SYNOPSIS |
||||
-------- |
||||
'git show-branches <reference>...' |
||||
|
||||
DESCRIPTION |
||||
----------- |
||||
Shows the head commits from the named <reference> (or all refs under |
||||
$GIT_DIR/refs/heads), and displays concise list of commit logs |
||||
to show their relationship semi-visually. |
||||
|
||||
OPTIONS |
||||
------- |
||||
<reference>:: |
||||
Name of the reference under $GIT_DIR/refs/heads/. |
||||
|
||||
|
||||
OUTPUT |
||||
------ |
||||
Given N <references>, the first N lines are the one-line |
||||
description from their commit message. The branch head that is |
||||
pointed at by $GIT_DIR/HEAD is prefixed with an asterisk '*' |
||||
character while other heads are prefixed with a '!' character. |
||||
|
||||
Following these N lines, one-line log for each commit is |
||||
displayed, indented N places. If a commit is on the I-th |
||||
branch, the I-th indentation character shows a '+' sign; |
||||
otherwise it shows a space. |
||||
|
||||
The following example shows three branches, "pu", "master" and |
||||
"rc": |
||||
|
||||
------------------------------------------------ |
||||
* [pu] Add cheap local clone '-s' flag to git-clone-script |
||||
! [master] Documentation updates. |
||||
! [rc] Merge master into rc |
||||
+ Add cheap local clone '-s' flag to git-clone-script |
||||
+ Alternate object pool mechanism updates. |
||||
+ Audit rev-parse users. |
||||
++ Documentation updates. |
||||
+ Merge master into rc |
||||
+++ [PATCH] plug memory leak in diff.c::diff_free_filepair() |
||||
------------------------------------------------ |
||||
|
||||
These three branches all forked from a common commit, "[PATCH] |
||||
plug memory leak...", and "rc" has one commit ahead of it. The |
||||
"master" branch has one different commit that is also shared by |
||||
"pu" branch, and "pu" branch has three more commits on top of |
||||
"master" branch. |
||||
|
||||
|
||||
Author |
||||
------ |
||||
Written by Junio C Hamano <junkio@cox.net> |
||||
|
||||
|
||||
Documentation |
||||
-------------- |
||||
Documentation by Junio C Hamano. |
||||
|
||||
|
||||
GIT |
||||
--- |
||||
Part of the link:git.html[git] suite |
@ -1,61 +0,0 @@
@@ -1,61 +0,0 @@
|
||||
#!/bin/sh |
||||
# |
||||
# Show refs and their recent commits. |
||||
# |
||||
|
||||
. git-sh-setup-script || die "Not a git repository" |
||||
|
||||
usage () { |
||||
die "usage: $0 <ref>..." |
||||
} |
||||
|
||||
headref=`readlink $GIT_DIR/HEAD` |
||||
|
||||
case "$(git-rev-parse --no-revs)" in '') ;; *) usage ;; esac |
||||
revs=$(git-rev-parse --revs-only --symbolic --no-flags "$@") |
||||
flags=$(git-rev-parse --revs-only --flags "$@") |
||||
case "$revs" in |
||||
'') |
||||
revs=$(git-rev-parse --symbolic --all | sed -ne 's|^refs/heads/||p' | |
||||
sort) |
||||
shift ;; |
||||
esac |
||||
set x $revs |
||||
shift |
||||
|
||||
hh= in= |
||||
for ref |
||||
do |
||||
case "/$headref" in |
||||
*/"$ref") H='*' ;; |
||||
*) H='!' ;; |
||||
esac |
||||
h=`git-rev-parse --verify "$ref^0" 2>/dev/null` || continue |
||||
l=`git-log-script --max-count=1 --pretty=oneline "$h" | |
||||
sed -e 's/^[^ ]* //'` |
||||
hh="$hh $h" |
||||
echo "$in$H [$ref] $l" |
||||
in="$in " |
||||
done |
||||
set x $hh |
||||
shift |
||||
|
||||
git-rev-list --pretty=oneline $flags $@ | |
||||
while read v l |
||||
do |
||||
in='' |
||||
for h |
||||
do |
||||
b=`git-merge-base $h $v` |
||||
case "$b" in |
||||
$v) in="$in+" ;; |
||||
*) in="$in " ;; |
||||
esac |
||||
done |
||||
|
||||
echo "$in $l" |
||||
case "$in" in |
||||
*' '*) ;; |
||||
*) break ;; |
||||
esac |
||||
done |
Loading…
Reference in new issue