我正在尝试使用 Git 作为 SVN 存储库的前端,以便能够使用 Git 的优秀功能,例如简单的分支、存储等。
问题是 SVN 存储库非常大(8,000 转)并且包含大量分支和标签(旧的和新的)。
这是一个接近标准的布局,配置包含获取、分支和标签指令。
由于最旧的分支和标签指的是修订版 10,这意味着每个svn fetch
读取版本 10 及以后版本的整个存储库历史记录,这在慢速连接上可能需要几个小时。
如果我只跟踪主干,那就没问题,但我仍然想让 git 知道新的分支和标签。
我一般都会看git log -1
在我所在的分支上并从评论中获取 SVN 修订版,所以我可以这样做git svn fetch -r7915:HEAD
或类似的。我想就是这样git svn fetch --parent
做。但为什么我需要这样做呢?
我在 Windows 上,使用 TortoiseGit,它对git-svn
,但由于 TortoiseGit 只运行git svn fetch
我有点卡住了。
难道我做错了什么?我预计svn fetch
第一次操作时要快速svn clone -s
做完了。
感谢您的回答。但他们并没有真正帮助我。
该命令是迄今为止最好的解决方案:
git svn log --all -1 | \
sed -n '2s/r\\([0-9]*\\).*/\\1/p' | \
xargs --replace=from git svn fetch -r from:HEAD
It uses git svn log --all
查找迄今为止获取的最高 SVN 修订号,并获取从该点开始的所有内容。
I wish git svn fetch
可以选择这样做。除非SVN修订版发生改变,否则没有理由git svn
每次都应该一次又一次地获取相同的修订。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)