我经常遇到想要立即在SVN存储库上工作的情况。但是普通的git svn clone [url]也会克隆整个历史。所以我想加快速度。第一部分是仅将最新修订版本获取到您的Git存储库中。我这样做是这样的:

URL=http://google-web-toolkit.googlecode.com/svn/trunk/
REV=`svn info $URL |grep Revision: | awk '{print $2}'`
PROJECT_FOLDER=google-web-toolkit-readonly

git svn clone -r$REV:HEAD $URL $PROJECT_FOLDER

(有关StackOverflow文章的更多信息:"How to git-svn clone last n revisions from svn"

这样,我就可以启动并运行,并且可以立即工作。但是没有本地历史记录。

问题是,此后我该如何从svn存储库中获取历史记录?

并且最好可以按例如1000个修订的顺序(以相反的顺序)进行。在这里的任何帮助将不胜感激:)

最佳答案

我发现了如何做到的。诀窍是不要使用git svn clone 。相反,请分别使用git svn initgit svn fetch。修改示例:

URL=http://google-web-toolkit.googlecode.com/svn/trunk/
REV=`svn info $URL |grep Revision: | awk '{print $2}'`
PROJECT_FOLDER=google-web-toolkit-readonly

mkdir $PROJECT_FOLDER
cd !$ #goes into dir named $PROJECT_FOLDER
git svn init -s $URL #-s implies --stdlayout with /trunk /tags /branches
git svn fetch -r $REV

# hack, hack, hack

# or update history (fetch 50 revisions back each loop
for (( r=$REV; r>0; r-=50 ));
do
  git svn fetch -r $r:HEAD
done

09-04 13:59
查看更多