URL: <http://savannah.gnu.org/support/?106896>
Summary: Migration from CVS to git creates too many branches Project: Savannah Administration Submitted by: hlangos Submitted on: Wed 17 Jun 2009 05:31:23 PM GMT Category: Developer CVS Priority: 5 - Normal Severity: 3 - Normal Status: None Assigned to: None Originator Email: Operating System: None Open/Closed: Open Discussion Lock: Any _______________________________________________________ Details: I'll keep the project specific stuff out of the command lines that I give as I think it might interest other project administrators. * We want to switch from CVS to git. * My knowledge of git is that of a git user, not that of a git administrator. * Up until now CVS was used with only a few tags and no branches. I followed the instructions on UsingGit <https://savannah.gnu.org/maintenance/UsingGit> . First I tagged the CVS repository. cvs tag -b repository-before-move-to-git This irritatingly created a branch tag. So I think that "-b" should be removed from the example or explained as CVS tags are (almost) impossible to remove. Then I used git-cvsimport to create a new git repository from the cvs: git-cvsimport -A ../authors.txt -p x -v -d:${myrepository}:/sources/$project $module This created a local git repository with two branches *origin* and *master*. Then I pushed everything to the formerly empty project repository on savannah: git push --tags -v ${log...@git.sv.gnu.org:/srv/git/${project}.git git push --all -v ${log...@git.sv.gnu.org:/srv/git/${project}.git Lastly I wanted to check out how this all would look for a new developer and I cloned the repository again to a new local directory: git clone git://git.savannah.gnu.org/${project}.git Now *git-show-branch* only shows the local master branch [master] Description of the last commit. but *git-show-branch -a* shows * [master] Description of the last commit. ! [origin/HEAD] Description of the last commit. ! [origin/master] Description of the last commit. ! [origin/origin] Description of the last commit. ---- *+++ [master] Description of the last commit. Looks to me like some of those remote branches are obsolete. I think _at least_ the *origin/origin* branch could be either * removed (if the cvs repository will not be changed anymore) or * renamed to something like [origin/cvs-upstream] if cvs will remain the project's main VCS and git is just a convenience feature for some developers. I don't know if *origin/master* is needed. I work on another project where there is no *origin/master*. Only *origin/HEAD* and "git pull" merges commits from origin/HEAD into my local *master*. So here are the questions/actions: * please remove "-b" from the cvs tag instructions or document the *lasting* effects. * Do I need origin/origin at all? ** How can I remove it? ** How can I rename it to something like origin/cvs if I decide that I need it for historical reasons or upstream reasons? * Do I need origin/master? * How do I clean out the remote git repository to start over ? :-) cheers -h _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/support/?106896> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/