我想使用Atlassian教程(https://www.atlassian.com/git/tutorials/migrating-overview)将我的svn存储库迁移到git存储库,并且我无法正确检出我的svn存储库。克隆后,使用git log
时,它具有所有历史记录,但我没有看到任何文件。我尝试使用git checkout -b trunk remotes/trunk
签出其中一个远程分支,但在新创建的分支中继上仍然没有文件。git svn克隆忽略文件
迁移脚本开始看起来像这样:
#!/bin/sh
#$1 - remote svn repo
#$2 - local git repo name
java -jar svn-migration-scripts.jar authors $1 > authors.txt
git svn clone --stdlayout --authors-file=authors.txt $1 $2
我已经想通了
我可以用git svn的命令没有得到历史文件的保持:
git svn clone -rHEAD $1 $2
使用此命令签出的文件将具有类似svn的结构(trunk
,branches
),所以t帽子不是我要找的东西。
另一种尝试...
我使用svn2git
从GitHub试过了,但它的使用相同的机制,所以它也失败...命令:
svn2git https://svn/xxx --trunk trunk/src --branches branches --notags --authors ../authors.txt
输出:
Checked out HEAD:
https://svn/xxxx r149793
还没有文件,只有.git
文件夹。我试着取,拉等
另一个有趣的观察
我发现一个奇怪的仓库。有文件夹结构是这样的:
* branches
* as usual...
* tags
* as usual...
* trunk
* src
* src
* pom.xml
输出如下:
svn2git https://svn/xxx --trunk trunk
svn2git https://svn/xxx --trunk trunk/
不工作...
svn2git https://svn/xxx --trunk trunk/src
作品。这至少很奇怪。
奇怪的是,从来没有这样的问题。远程回购的* trunk *用于?它是否应该包含任何文件?你可以改变分支('git checkout -b'从当前分支创建一个新的分支)。 – rlegendi 2014-10-01 11:49:13
使用中继线,它具有20MB的文件。我可以更改分支,但每个分支都是空的(尽管它的记录是正确的)。问题可能是由svn上的路径引起的吗?我试过检查出其他路径的其他项目,它工作... – 2014-10-01 13:04:16