chiark / gitweb /
tg info: Note if local head is ahead of remote mate
[topgit.git] / tg-info.sh
index 43589f9e635c82d908590be37f9d2ee931d6d1ba..6c00d83b8804c2788665d17cc977ccf42dc556a8 100644 (file)
@@ -28,7 +28,7 @@ measure="$(measure_branch "$name" "$base_rev")"
 
 echo "Topic Branch: $name ($measure)"
 if [ "$(git rev-parse --short "$name")" = "$base_rev" ]; then
-       echo "No commits."
+       echo "No commits."
        exit 0
 fi
 
@@ -36,12 +36,22 @@ git cat-file blob "$name:.topmsg" | grep ^Subject:
 
 echo "Base: $base_rev"
 branch_contains "$name" "$base_rev" ||
-       echo "Base is newer than head! Please run \`tg update\`."
+       echo "* Base is newer than head! Please run \`tg update\`."
+
+if has_remote "$name"; then
+       echo "Remote Mate: $base_remote/$name"
+       branch_contains "$base_rev" "refs/remotes/$base_remote/top-bases/$name" ||
+               echo "* Local base is out of date wrt. the remote base."
+       branch_contains "$name" "refs/remotes/$base_remote/$name" ||
+               echo "* Local head is out of date wrt. the remote head."
+       branch_contains "refs/remotes/$base_remote/$name" "$name" ||
+               echo "* Local head is ahead of the remote head."
+fi
 
 git cat-file blob "$name:.topdeps" |
-       sed '1{s/^/Depends: /;n}; s/^/         /;'
+       sed '1{ s/^/Depends: /; n; }; s/^/         /;'
 
-depcheck="$(mktemp)"
+depcheck="$(mktemp -t tg-depcheck.XXXXXX)"
 missing_deps=
 needs_update "$name" >"$depcheck" || :
 if [ -n "$missing_deps" ]; then