将本地svn repo转换为git

时间:2013-03-25 20:19:18

标签: git svn

我有什么应该是一个svn回购。在我的计算机的本地文件夹中。我不知道是否可能,但我想转换它,所以它只使用git。我无法访问svn服务器,并且.svn文件夹中的所有内容都是

all-wcprops
entries
format
prop-base
props
text-base
tmp

我尝试过svn log,但它开始要求提供凭据。我还尝试通过执行类似svnadmin verify /folder的操作来验证它是一个svn回购,但它只是svnadmin: Can't open file 'format': No such file or directory。我只需要提交历史记录。

3 个答案:

答案 0 :(得分:3)

如果这是存储库(不是本地工作空间),请使用git svn clone将其插入新创建的git存储库中。通过星期日的5种方式检查结果,将SVN丢弃到一张漂亮,舒适的CD / DVD上以便妥善保管。

请注意git svn clone可以花费非常很长时间,因为它会依次要求SVN重新创建每个sigle修订版,然后将其作为提交进行集成。在挖掘旧东西时,SVN效率很低,git svn的处理也不是很好。对于一个不那么大的远程SVN回购,它可能需要一两天。当连接断开时,我不得不重启几次。我不记得正确的咒语是git svn clone还是git svn rebase,还是别的(是的,看到一个空的克隆存储库是可怕的,但下载的东西就在那里)。

答案 1 :(得分:1)

如果您不介意丢失历史记录(正如我在评论中提到的,如果您无法访问中央服务器,则无权访问历史记录),您可以在其中初始化git repo相同的文件夹,添加一个.gitignore文件,除了行.svn/之外,还包含您在SVN中通常忽略的所有文件/文件夹,忽略.svn文件夹,然后添加/提交所有内容。

使用命令行git,它看起来像:

cd path/to/repo
git init
touch .gitignore
#EDIT THE .gitignore FILE HERE
git add .
git commit -m "Initial commit"

如果您想稍后清除.svn文件夹,可以使用werd的答案或clone the repo to another folder中的链接。

答案 2 :(得分:-4)

1)删除.svn / folders - http://www.anyexample.com/linux_bsd/bash/recursively_delete__svn_directories.xml

2)将其添加到GIT仓库