A project in SVN I’m working on (via git-svn) has frequently-created branches that are then –reintegrated with trunk, and then deleted.
Right now the project has about 10 branches that have not been deleted, but in git, git branch -r shows about 50.
I can remove these one at a time, checking whether they still exist in the svn repository but it’s slow and tedious. Is there a way to sync my list of git remote branches with the svn repo?
This is a quick-n-dirty solution I made in a few minutes. It makes use of nice regex patterns that are not available everywhere.
This grabs a clean list of branches. I remove formatting spaces at the beginning of each line, and I’m ignoring tags for now:
I grab a similar list of branches from svn, again removing formatting and trailing forward-slashes:
I diff the lists, find the lines that don’t exist in the svn list anymore, remove the diff formatting, get rid of the “trunk” branch (which is a git-svn convenience) and save the results to a new list:
Now I just perform standard branch removal procedures for git-svn:
There’s probably better ways of doing this, but it works. Someone else is welcome to take this and improve on it.