我有一个情况,我有一个老的cvs存储库,我们想转换为git一次和所有,同时保持完整的历史等。
存储库根目录下的所有文件夹都包含Eclipse项目(平面或动态Web项目),包括.classpath和.project。我们使用团队项目集检查给定任务所需的项目(项目集位于包含主项目的项目中,其余项目是库项目)。
签出团队项目集时,工作区将完全填充。
这种方法已经运行了很多年(除了3.5附带的项目集部分),如果可能的话,我们希望以类似的方式与Git合作,但我们不确定如何工作。
我玩过一些
git cvs import
但是失败了——可能是因为我们没有使用模块。
您建议我们如何做到这一点,以及我们应该如何与Git合作,以允许我们当前使用共享库项目?我们会
有
为我们的图书馆项目介绍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
这是与Ubuntu10.04.1LTS服务器,我已经尝试了各种各样的sudo与ruby及其gems的事情,没有完全理解我做了什么,因为我不是一个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
我们希望能够检查SV46分支并使用它(我们基本上不关心标签,只关心实际的分支)。我已经设置了Gitosis并将这个存储库推送到Gitosis,并将其克隆到另一台计算机上,以了解如何使用Eclipse执行“使用SV46”位。
那
存储库不知道所有分支:
tra@TRA ~/git/git00 (master)
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
我需要按摩svn2git的原始结果来将信息导入Gitosis存储库吗?我需要用一个论点来克隆吗?我应该用建议的版本来重做svn2git步骤,而不是用Ubuntu发货吗?
编辑:事实证明,使用“git push--mirror”发布svn2git生成的存储库使Gitosi存储库中显示了一些内容。我现在看到下面的内部Gitosis(修剪):
tra@Sandbox:/srv/gitosis/repositories/git01.git$ git branch -a
* master
remotes/XX64_DEPLOYED_CODE
remotes/Basic_Beta1
remotes/Beta1
remotes/Beta2
remotes/SV46
... lots more
tra@Sandbox:/srv/gitosis/repositories/git01.git$ git branch
* master
tra@Sandbox:/srv/gitosis/repositories/git01.git$ git tag -l
tra@Sandbox:/srv/gitosis/repositories/git01.git$
尝试用克隆此存储库
git clone gitosis@sandbox:git01 -b remotes/SV46
或
git clone gitosis@sandbox:git01 -b SV46
两者都告诉我,远程分支没有找到上游的来源,而是使用head。
我找错树了吗?