[PATCH v2 12/23] contrib/subtree: Add command prune
- From
Paul Campbell <pcampbell@kemitix.net>
- Date
- Mar 10, 2013, 23:41 UTC
- Message-ID
- <1362958891-26941-13-git-send-email-pcampbell@kemitix.net>
- In-Reply-To
- <1362958891-26941-1-git-send-email-pcampbell@kemitix.net>
From: Nate Jones <nate@endot.org>
Removes entries in .gittrees where the subtree files are no longer present on disk.
Signed-off-by: Paul Campbell <pcampbell@kemitix.net>
Conflicts: git-subtree.sh --- contrib/subtree/git-subtree.sh | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh index 7d08064..0c41383 100755 --- a/contrib/subtree/git-subtree.sh +++ b/contrib/subtree/git-subtree.sh @@ -105,12 +105,12 @@ done command="$1" shift case "$command" in - add|merge|pull|from-submodule|pull-all|push-all) default= ;; + add|merge|pull|from-submodule|pull-all|push-all|prune) default= ;; *) die "Unknown command '$command'" ;; split|push|diff|list) default="--default HEAD" ;; esac -if [ -z "$prefix" -a "$command" != "pull-all" -a "$command" != "push-all" -a "$command" != "list" ]; then +if [ -z "$prefix" -a "$command" != "pull-all" -a "$command" != "push-all" -a "$command" != "list" -a "$command" != "prune" ]; then die "You must provide the --prefix option." fi @@ -839,6 +839,17 @@ cmd_list() subtree_list } +cmd_prune() +{ + git config -f .gittrees -l | grep subtree | grep path | grep -o '=.*' | grep -o '[^=].*' | + while read path; do + if [ ! -e "$path" ]; then + echo "pruning $path" + git config -f .gittrees --remove-section subtree.$path + fi + done +} + cmd_pull-all() { git config -f .gittrees -l | grep subtree | grep path | grep -o '=.*' | grep -o '[^=].*' |
-- 1.8.2.rc1