Git svn 克隆 : How to defer fetch of revision history

标签 git git-svn clone git-clone

我经常遇到想立即在 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

关于Git svn 克隆 : How to defer fetch of revision history,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1554222/

相关文章:

javascript - 使用javascript在网页中 append 重复图像

git - .gitignore 忽略文件的地方

python - 如何从 gitpython 中的存储库路径获取变量中的 Ostream 或 Oinfo 列表?

git - 由于 : failed to push some refs,无法将文件推送到 git

git - 我如何查看本地未推送的提交?

c# - memberwiseclone 还会复制派生类中定义的成员吗?

git - git中如何使用标签管理软件版本

git-svn 无法提交回 svn repo 尽管有干净的 rebase

Git Svn dcommit 错误 - 重新启动提交

java - Java 中的克隆列表