From eab3a16099e364f62303d5bbeca002ac14f697be Mon Sep 17 00:00:00 2001 From: Dave Reisner Date: Sun, 17 Aug 2014 23:39:43 -0400 Subject: cleanup local tracking branches when untracking Also, make both package_untrack and remote_untrack robust against partially existing branches. --- asp.in | 1 + package.inc.sh | 8 ++++++++ remote.inc.sh | 4 +++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/asp.in b/asp.in index cb983a4..bbfd7e1 100644 --- a/asp.in +++ b/asp.in @@ -156,6 +156,7 @@ untrack() { package_init -n "$pkgname" remote || return 1 remote_untrack "$remote" "$pkgname" + package_untrack "$pkgname" "$remote" } disk_usage() { diff --git a/package.inc.sh b/package.inc.sh index 1456baf..6d6407f 100644 --- a/package.inc.sh +++ b/package.inc.sh @@ -141,6 +141,14 @@ package_get_repos() { printf '%s\n' "${!repos[@]}" } +package_untrack() { + local pkgname=$1 remote=$2 + + if git show-ref -q "refs/heads/$remote/packages/$pkgname"; then + git branch -D "$remote/packages/$pkgname" + fi +} + _package_shortlog() { local pkgname=$1 remote=$2 diff --git a/remote.inc.sh b/remote.inc.sh index 2cce6ba..f7e5539 100644 --- a/remote.inc.sh +++ b/remote.inc.sh @@ -82,5 +82,7 @@ remote_get_url() { remote_untrack() { local remote=$1 pkgname=$2 - git branch -dr "$remote/packages/$pkgname" + if git show-ref -q "refs/remotes/$remote/packages/$pkgname"; then + git branch -dr "$remote/packages/$pkgname" + fi } -- cgit v1.2.3-70-g09d2