Right now the JuliaLang/julia has 914 branches.
I am pretty suire the majority of which are stale feature branches,
where someone started to implement a feature and then for some reason stopped.
Taking a look, in many cases they even stopped without even openning a PR.
(Also in a lot of cases the PR is closed)
Compare to ruby, there are 23 branches, each one just for a release.
Rust normally looks similar though right now they have a few extras, I am not sure what is up with that (maybe some hotfixes).
The reason we have so many more is because people with merge rights tend to create feature branchs on JuliaLang/julia, rather than in their own forks.
Where as people without merge rights do use their own forks.
Where as in all the other language repos i mention, everyone (merge rights or not) create feature branches on their forks.
I think we should be like them.
Its not a huge deal, but it is just kind of annoying when:
- Looking for release-1.6 in the dropdown branch menu on github
- managing my own branches and swapping between them locally
- Pulling changes so i can rebase (since it pulls all the things anyone is working on)
There are ways to work around all of this, like extra git flags (
but i still think it would be better to just save
JuliaLang/julia just for master and the release branches,
and do all the feature development on forks.
I propose we do 3 things:
- develop some kind of policy like the above
- Workout if we can enforce it (e.g. some setting where fewer people can create branchs?)
- Delete all stale branchs from the repo
- Repeat step 3 every month until all feature branches are gone