diff options
author | Dave Reisner <dreisner@archlinux.org> | 2014-08-17 23:39:43 -0400 |
---|---|---|
committer | Dave Reisner <dreisner@archlinux.org> | 2014-08-18 12:09:54 -0400 |
commit | eab3a16099e364f62303d5bbeca002ac14f697be (patch) | |
tree | e1e35257b89f9a04cf85d27f3430f809d3427b27 | |
parent | e3c146afe29ff863679284c887c867fe93d58afd (diff) | |
download | asp32-eab3a16099e364f62303d5bbeca002ac14f697be.tar.xz |
cleanup local tracking branches when untracking
Also, make both package_untrack and remote_untrack robust against
partially existing branches.
-rw-r--r-- | asp.in | 1 | ||||
-rw-r--r-- | package.inc.sh | 8 | ||||
-rw-r--r-- | remote.inc.sh | 4 |
3 files changed, 12 insertions, 1 deletions
@@ -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 } |