2013-01-22 236 views
0

场景:Git&tortoise Svn - 迁移

我们一直在使用SVN来管理我们的代码库。 SVN repo安装在linux服务器上,开发人员在Windows操作系统上使用tortoise svn工作。

现在,我们需要迁移到GIT,因为我们在分支和合并时感到害怕svn。我已经提供了另一个Linux服务器,在那里我可以建立一个git仓库,然后培训开发人员从svn移动到git。

我读了git-svn官方文档和其他一些Google搜索相关结果。我想我已经犯了一个错误,但不知道:

我使用svn log命令

又到Linux服务器,并使用混帐svn的克隆命令和-s标志,因为我们有一个标准的提取SVN用户信息布局。

在我的Windows机器上安装了msysgit,并想到克隆git repo,以便我可以测试git repo,同时开发人员像往常一样继续将其更改推送到svn repo。有一次,人们接受了git的培训,然后我们可以完全转向git repo。

这里的担忧,我不确定这是否是正确的方法。因为,所有的迁移链接,文档讨论* nix系统,不知道这是如何完成的。 有人可以提供一些什么正确的程序应该是什么投入,我应该如何继续这种迁移。

+0

你需要移动到混帐?从我读过的内容来看,这听起来像Mercurial在Windows上比git更加兼容/可用。如果你需要去git,看看右边的“相关”帖子;至少有两个从SVN迁移到git。 – alroc

回答

0

我知道的唯一可能的问题是行尾。 Git for Windows通常在系统配置中打开core.autocrlf设置。当你在POSIX系统上执行git svn clone时,仓库中的文件应该会以Windows行尾(CR + LF)结束(至少这是我自己的经验),如果你随后检查这样的回购一台Windows机器的设置高于活动(并且没有被覆盖),然后修改一个文件并提交这个修改,Git可能会尝试将该文件中的行结尾转换为LF,从而记录100%的重写,这不是预期的。

该解决方案可能会覆盖每个开发人员的存储库中的该设置,或尝试在切换到Git之前转换历史记录(使用git filter-branch)在存储库中使用LF。

在这两种情况下,首先尝试使用新的存储库,看看会发生什么。

查看this了解更多背景。