情景:
我们一直在使用SVN来管理我们的代码库。 SVN repo是在linux服务器上设置的,开发人员在windows os上使用tortoise svn处理这个repo。
现在,我们需要迁移到GIT,因为在涉及分支和合并时我们对svn感到害怕。我已经提供了另一个Linux服务器,我可以在其中设置一个git repo,然后培训开发人员从svn转移到git。
我阅读了git-svn官方文档和其他一些谷歌搜索相关的结果。我想我犯了一个错误,但不确定:
我使用svn log命令
提取了svn用户信息去了linux服务器并使用带-s标志的git svn clone命令,因为我们有一个标准的布局。
在我的Windows机器上安装了msysgit并想到克隆git repo以便我可以测试git repo,而开发人员继续像往常一样将他们的更改推送到svn repo。有一次,人们已经接受过git训练,那么我们就可以完全转移到git repo。
这里的担忧是我不确定这是否正确。因为,所有的迁移链接,文档都在谈论* nix系统,不确定这是否是如何完成的。 有人可以提供一些正确程序的输入,以及我应该如何进行此迁移。
答案 0 :(得分:0)
我所知道的唯一可能的问题是行结尾。 Git for Windows通常在系统配置中打开core.autocrlf
设置的情况下安装。当您在POSIX系统上执行git svn clone
时,您的存储库中的文件最终会以Windows行结尾(CR + LF)结束(嗯,至少这是我自己的体验),如果您随后结账在Windows机器上的这样一个repo,其设置高于活动(并且没有被覆盖)然后修改文件并提交此更改,Git可能会尝试将该文件中的行结尾转换为LF,从而记录100%重写,这是不是故意的。
解决方案可能是在每个开发人员的存储库中覆盖该设置,或尝试转换历史记录(使用git filter-branch
)以在切换到Git之前在存储库中使用LF。
在任何一种情况下,首先尝试使用新的存储库,看看会发生什么。
有关更多背景信息,请参阅this。