我阅读了Git手册,常见问题解答,Git - SVN速成课程等等,他们都解释了这个和那个,但是你无处可以找到一个简单的指令:
SVN存储库: svn://myserver/path/to/svn/repos
Git存储库: git://myserver/path/to/git/repos
git-do-the-magic-svn-import-with-history \
svn://myserver/path/to/svn/repos \
git://myserver/path/to/git/repos
Run Code Online (Sandbox Code Playgroud)
我不希望它那么简单,我不指望它是一个单一的命令.但我确实希望它不要试图解释任何事情 - 只是说这个例子采取了哪些步骤.
我有一个我必须承诺的中央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将会这样做.但它会得到所有修改,这是我不喜欢的.
我有一个情况,我有一个老年人的CVS存储库,我们希望一次性转换为git,同时保持完整的历史记录等.
存储库根目录下的所有文件夹都包含Eclipse项目(普通或动态Web项目),包括.classpath和.project.我们使用Team ProjectSet来检查给定任务所需的项目(项目集位于包含main的项目中,其余是库项目).
签出Team ProjectSet后,工作区将完全填充.
多年来这种方法运作良好(除了3.5附带的项目设置部分),如果可能的话,我们希望以类似的方式使用git,但我们不确定如何.
我玩过一段时间git cvs import但失败了 - 可能是因为我们没有使用模块.
您如何建议我们这样做,以及我们应该如何使用git来允许我们当前使用共享库项目?我们将HAVE介绍Maven和创造我们的图书馆项目的Maven模块?或者只是蚂蚁常春藤?
编辑:我现在设法通过合适的cvs2svn调用将我们的CVS存储库转换为Subversion,并发现Eclipse很好地识别了生成的Subversion存储库.不幸的是在克隆http: //github.com/iteman/svn2git`并尝试运行bin/svn2git之后我得到了
tra@Sandbox:~/cvsgit/svn2git/svn2git$ bin/svn2git
bin/svn2git:35:in `initialize': wrong number of arguments (2 for 1) (ArgumentError)
from bin/svn2git:35:in `new'
from bin/svn2git:35
Run Code Online (Sandbox Code Playgroud)
这是与Ubuntu 10.04.1 LTS服务器,我尝试了各种sudo与Ruby及其宝石的东西,但没有完全理解我做了什么,因为我不是一个Ruby程序员,所以我可能搞砸了一些东西.我很感激建议 - 如果最简单的是安装另一个Linux变种来进行转换,那很好.
编辑:
https://help.ubuntu.com/community/Git http://css.dzone.com/articles/subversion-git-morning
编辑:我第一次尝试使用默认的svn2git成功完成(一段时间后),我得到一个很好的存储库,其中git branch -a大致报告
tra@Sandbox:~/gitroot/svnroot$ git branch -a
* master
remotes/XX64_DEPLOYED_CODE
remotes/Beta1
remotes/Beta2
remotes/SV46
... lots more
Run Code Online (Sandbox Code Playgroud)
我们有兴趣能够检查SV46分支并使用它(我们基本上不关心标签,只关心实际的分支).我已经设置了gitosis并将此存储库推送到gitosis,并将其克隆到另一台计算机,以了解如何使用Eclipse进行"使用SV46"位. THAT库不知道所有的分支:
tra@TRA ~/git/git00 (master)
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
我是否需要按照svn2git的原始结果来获取gitosis存储库中的信息?我需要用参数克隆吗?我应该使用建议的版本而不是Ubuntu附带的版本重做svn2git步骤吗?
编辑:事实证明,使用"git …