谷歌代码归档到Github
我想将此项目迁移到GitHub以维护历史记录 当我尝试使用“导出到GitHub”按钮时,它会说“Google代码项目导出工具不再可用” Google代码到GitHub导出器工具不再可用。谷歌代码项目的源代码现在可以在谷歌代码档案中找到谷歌代码归档到Github,git,svn,google-code,Git,Svn,Google Code,我想将此项目迁移到GitHub以维护历史记录 当我尝试使用“导出到GitHub”按钮时,它会说“Google代码项目导出工具不再可用” Google代码到GitHub导出器工具不再可用。谷歌代码项目的源代码现在可以在谷歌代码档案中找到 手动操作的最佳方式是什么?我没有svn知识,只懂一点git。非常感谢 于2017年11月6日更新 看起来您可以以gzip svn转储流文件的形式恢复和下载项目的历史记录。遵循以下步骤: 导航到项目的Google代码归档页面。例如 复制源下的下载URL 在URL中,
手动操作的最佳方式是什么?我没有svn知识,只懂一点git。非常感谢 于2017年11月6日更新 看起来您可以以gzip svn转储流文件的形式恢复和下载项目的历史记录。遵循以下步骤:
https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/majesticuo/repo.svndump.gz
该文件是一个gzip压缩的svn存储库转储流文件,您可以使用
svnadmin load
工具将其加载到一个新的存储库中。如果您在Google代码中导航到您的项目页面,然后单击侧栏中的“Source”,然后单击结果页面中的“Source”,您将被带到一个带有“下载”链接的页面。这将导致一个名为“source archive.zip”的文件,其中包含您的项目的某种存档--我不确定它有多完整,但它确实包含一些svn元数据。但是,如果将URL的最后一部分从“source archive.zip”更改为“repo.svndump.gz”,您将得到repo的svn“dump”。它应该包含完整的历史记录,并且可以通过各种svn到git的迁移工具转换为git格式。(我根据中的信息得出了这一结论,其中还列出了一些建议的最终转换步骤。但是,如果您第一次尝试转换转储失败,请尝试其他工具;有很多选择,如果您的回购历史比较复杂,那么这有点艺术性。)以下是我最近执行的将的Google代码存档移动到GitHub的过程,本地没有任何Subversion server实例
repo.svndump.gz
档案馆svnadmin create /home/mloskot/svn
svnadmin load /home/mloskot/svn < /home/mloskot/repo.svndump
并从许多脚本中找到一个来生成authors.txt
subgit configure --minimal-revision 1 --layout std file:///home/mloskot/svn /home/mloskot/git
/home/mloskot/git/subgit/config
subgit import /home/mloskot/git
subgit uninstall --purge /home/mloskot/git
git clone --mirror /home/mloskot/git repo
cd repo
git config remote.origin.mirror false
git clone --mirror <GITHUB REPO URL>
git remote set-url origin <GITHUB REPO URL>
git push --all origin
git push --tags origin
git克隆--mirror/home/mloskot/git repo
cd回购
git config remote.origin.mirror false
git克隆--镜像
git远程设置url源
git push--所有来源
git推送--标记源
今天刚刚测试了接受的答案,并得到以下错误: “访问被拒绝。匿名调用方没有storage.objects.get访问google代码存档源代码/v2/code.google.com//repo.svndump.gz的权限。” 但是,有一种方法可以将其导入git,包括提交历史记录:
- 使用提供的按钮/url下载“source archive.zip”文件李>
- 使用hg git Mercurial扩展将其转换为git存储库(可以找到有关Windows的说明)
svnadmin
使用$project
在https://code.google.com/archive/p/$PROJECT
:
wget https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/${PROJECT}/repo.svndump.gz
svnadmin create p
time zcat repo.svndump.gz|svnadmin load p
git svn init file://$(pwd)/p --stdlayout ${PROJECT}
cd ${PROJECT}
time git svn fetch --all
git remote add origin https://github.com/${USER}/${PROJECT}
git fetch origin
time git push -u origin master
cd ..
rm -rf p repo.svndump
您知道如何使用其他存储库类型(如Git和Mercurial)执行此操作吗?你知道如何获取wiki页面的所有问题和历史记录吗?@Melab:不,我不知道在其他情况下该怎么办。更新:今天尝试了此操作,但出现以下错误:“访问被拒绝。匿名调用方没有storage.objects.get Access to google code archive source/v2/code.google.com//repo.svndump.gz。”这个答案没有建设性@JeffClites的解决方案有效。遗憾的是,谷歌没有宣传用
repo.svndump.gz
替换项目结束下载URL的技巧。它在今天(2017-10-05)起了作用。@StéphaneGourichon嗨,我编辑了答案,因为我可以确认解决方案仍然有效(2018-05-18).zipsource archive.zip
URL对我有效,但当我尝试用repo.svndump.gz
替换文件aprt时,我得到一个错误:AccessDenied-匿名调用方没有storage.objects.get访问google code archive source/v2/code.google.com/ala collectory/repo.svndump.gz。
@Jarl此URL对我有效:@bahrep:这个对我也有用。但不是这个:
wget https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/${PROJECT}/repo.svndump.gz
svnadmin create p
time zcat repo.svndump.gz|svnadmin load p
git svn init file://$(pwd)/p --stdlayout ${PROJECT}
cd ${PROJECT}
time git svn fetch --all
git remote add origin https://github.com/${USER}/${PROJECT}
git fetch origin
time git push -u origin master
cd ..
rm -rf p repo.svndump