Cómo encontrar twigs vacías y tags en git

He migrado un gran repository de svn con cientos de twigs y tags, las he dividido en varios repositorys y ahora estoy buscando verificar si hay twigs / tags vacías en estos repositorys que deberían eliminarse antes de impulsar la migration en vivo.

¿Hay una manera más rápida de encontrar esto que tener que ir a cada repository y pagar todas las sucursales?

Ejecute git ls-tree <branch/tag> | wc -l git ls-tree <branch/tag> | wc -l para cada twig y label utilizando el lenguaje de progtwigción de su elección y verifique 0 . Obtienes una list de sucursales con la git branch y una list de tags con la label git tag .

Aquí hay un ejemplo simple para las twigs que usan bash:

 #!/bin/bash for branch in $(git branch | cut -c 3-) do if [ $(git ls-tree $branch | wc -m) -eq 0 ] then echo "branch $branch is empty" fi done 

De hecho, termino haciendo este script para ello:

https://github.com/maxandersen/jbosstools-gitmigration/blob/master/deleteemptybranches.sh

  ## this will treat $1 as a repository and go through it and delete all branches and tags with empty content. export GIT_DIR=$1/.git export GIT_WORK_TREE=$1 echo Looking for empty branches in $1 git branch | while read BRANCH do REALBRANCH=`echo "$BRANCH" | sed -e 's/\*//g'` NOFILES=`git ls-tree $REALBRANCH | wc -l | tr -d ' '` # echo $NAME "$REALBRANCH" $NOFILES if [[ "$NOFILES" == "0" ]] then git branch -D $REALBRANCH fi done git tag | while read BRANCH do REALBRANCH=`echo "$BRANCH" | sed -e 's/\*//g'` NOFILES=`git ls-tree $REALBRANCH | wc -l | tr -d ' '` # echo $NAME "$REALBRANCH" $NOFILES if [[ "$NOFILES" == "0" ]] then git tag -d $REALBRANCH fi done