2 # TopGit - A different patch queue manager
3 # (c) Petr Baudis <pasky@suse.cz> 2008
15 echo "Usage: tg info [NAME]" >&2
18 [ -z "$name" ] || die
"name already specified ($name)"
23 [ -n "$name" ] || name
="$(git symbolic-ref HEAD | sed 's#^refs/heads/##')"
24 base_rev
="$(git rev-parse --short --verify "refs
/top-bases
/$name" 2>/dev/null)" ||
25 die
"not a TopGit-controlled branch"
27 measure
="$(measure_branch "$name" "$base_rev")"
29 echo "Topic Branch: $name ($measure)"
30 if [ "$(git rev-parse --short "$name")" = "$base_rev" ]; then
35 git cat-file blob
"$name:.topmsg" |
grep ^Subject
:
37 echo "Base: $base_rev"
38 branch_contains
"$name" "$base_rev" ||
39 echo "Base is newer than head! Please run \`tg update\`."
41 deps
="$(git cat-file blob "$name:.topdeps
" | paste -s -d' ')"
46 needs_update
"$name" >"$depcheck" ||
:
47 if [ -n "$missing_deps" ]; then
48 echo "MISSING: $missing_deps"
50 if [ -s "$depcheck" ]; then
51 echo "Needs update from:"
53 sed 's/ [^ ]* *$//' |
# last is $name
54 sed 's/^: //' |
# don't distinguish base updates
55 while read dep chain
; do
57 [ -n "$chain" ] && echo -n "(<= $(echo "$chain" | sed 's/ / <= /')) "
58 dep_parent
="${chain%% *}"
59 echo -n "($(measure_branch "$dep" "${dep2:-$name}"))"