0

设想:

我们一直在使用 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 系统,不确定这是否是这样做的。有人可以提供一些关于正确程序应该是什么以及我应该如何进行此迁移的输入。

4

1 回答 1

0

我知道的唯一可能的问题是行尾问题。Git for Windows 通常core.autocrlf在系统配置中打开设置的情况下安装。当您git svn clone在 POSIX 系统上执行此操作时,您的存储库中的文件应该以 Windows 行结尾 (CR+LF) 结尾(嗯,至少这是我自己的经验),如果您随后在具有上述设置的 Windows 机器(未覆盖)然后修改文件并提交此更改,Git 可能会尝试将该文件中的行结尾转换为 LF,从而记录 100% 重写,这不是预期的。

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

无论哪种情况,首先尝试使用您的新存储库,看看会发生什么。

有关更多背景信息,请参阅此内容。

于 2013-01-22T23:19:34.747 回答