diff options
Diffstat (limited to 'repo-access.sh')
-rw-r--r-- | repo-access.sh | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/repo-access.sh b/repo-access.sh index b599dc8..477e7a9 100644 --- a/repo-access.sh +++ b/repo-access.sh @@ -191,3 +191,48 @@ function systr_init mkdir refs revs echo "NULL" >refs/HEAD } + +## +# systrunk status +# +# View current information such as which branch your worktree is +# TRACking, which commit it is BASEd on, and how far out-of-date +# it is. Additionally, report whether a merge or update operation +# is currently in-progress. +## +function systr_status +{ + if [[ "$MERG" != "NULL" ]]; then + mergcommit=$(systr_repo_resolve_reference "$MERG") + + if [[ "$MERG" == "TRAC" ]]; then + echo "Update in progress, to $mergcommit" + else + echo "Merge in progress, from $MERG ($mergcommit)" + fi + + echo "" + fi + + traccommit=$(systr_repo_resolve_reference "$TRAC") + + if [[ "$TRAC" == "$traccommit" ]]; then + echo "Not tracking any branch" + else + echo "Tracking $TRAC ($traccommit)" + fi + + if [[ "$BASE" == "NULL" ]]; then + echo "BASE unset" + else + echo "BASE at $BASE" + fi + + dist=$(systr_repo_commit_dist "$BASE" "$TRAC") + + if [[ "$dist" == "0" ]]; then + echo "Up-to-date" + else + echo "Behind $dist commits" + fi +} |