我有一个我必须承诺的中央SVN存储库,但我对git充满热情(就像我认识的任何其他开发人员一样).这个案子众所周知.
然后我读了一下git-svn并尝试了一下.由于我不需要完整的历史,仅仅两个月左右,我就是这样的:
git svn clone -r 34000 -s https://svn.ourdomain.com/svn/repos/Project/SubProject
Run Code Online (Sandbox Code Playgroud)
像往常一样,SubProject拥有子目录trunk,tags和branches.大.
然后,为了获得最后一次修订,我做到了
git svn rebase
Run Code Online (Sandbox Code Playgroud)
有些下载,很棒.最后修订,日志等等,好的,现在我将切换到我的功能分支.
$ git branch
* master
Run Code Online (Sandbox Code Playgroud)
$ git branch -r
trunk
Run Code Online (Sandbox Code Playgroud)
$ git branch -a
* master
remotes/trunk
Run Code Online (Sandbox Code Playgroud)
问题是:我的分支在哪里?我做错了什么吗?我怎么做才能在新的git仓库中获得我的分支机构?
git-svn,无论我在哪里阅读它,明智地处理分支和标签,但行为不是我所期望的.谢谢!
编辑:我刚刚发现git svn fetch将会这样做.但它会得到所有修改,这是我不喜欢的.
我不小心克隆了Subversion存储库而没有添加--stdlayout参数,给了我类似的东西:
$ git svn clone --prefix=svn/ svn+ssh://code.example.com/project
[two weeks later]
$ git branch -a
* master
remotes/svn/git-svn
Run Code Online (Sandbox Code Playgroud)
使用svn/git-svn布局是这样的:
branches/*
tags/*
trunk/*
Run Code Online (Sandbox Code Playgroud)
有什么方法可以从中恢复?
这里的最佳做法是什么?
有问题的存储库在这里:http://svn.osqa.net/svnroot/osqa/