
2013/10/28 Dave Abrahams
Daniel Pfeifer
writes: 2013/10/27 Dave Abrahams
: Antony Polukhin
writes: - Can I merge and delete branches in GIT without affecting the whole system stability (for example `conversion` library currently contains branches like `filesystem_V3`)
If you're a library maintainer, yes. The only branches that you must maintain for system stability are "develop" and "master." However, be aware that some branches in the Boost super-project repository may be referencing commits on your branches.
Do we need all those branches in the super-project? If we drop everything but "develop", "master", and the release tags from the super-project, then library maintainers could clean up their repositories without being afraid of breaking something else.
If we just rewrite those branches to have non-standard branch paths (e.g. refs/tags/old-branches/<whatever>) the history will be preserved but hidden. For example, you won't see these tags when you do a default checkout. Then anyone who wants to "re-activate" the branch can just create a new branch on that commit using a standard path, or rename the ref.
I think this is probably the right way to go: rewrite all branches but develop and master (are there any other branches that deserve special status?) into a non-standard path. If we can determine which tags are actual release tags, we might want to rewrite all the others into non-standard paths.
I agree that we should rename the old branches. As a prefix, I suggest "svn-" instead of "old-" to make it more explicit where those branches come from. I disagree that branches from Subversion should become tags in Git. I whould even turn non-release-tags from Subversion into branches. Here is what I would do (and I can do that, if everybody agrees). * Prefix all branches from Subversion with "svn-branches" (master and develop excluded) . * Turn non-release-tags from Subversion into branches and prefix them with "svn-tags". * Rename release tags from "release/Boost_X_XX_X" to "boostX.XX.X". * Remove all "svn-branches" and "svn-tags" from the superproject. * Allow library maintainers to drop/rename their "svn-branches" and "svn-tags". Cheers, Daniel