我想将这个项目 https://code.google.com/archive/p/majesticuo 迁移到 GitHub 来维护历史记录。
当我尝试使用“导出到 GitHub”按钮时,它显示“Google Code 项目导出工具不再可用”
Google 代码到 GitHub 导出器工具不再可用。现在可以在 Google Code Archive 中找到 Google Code 项目的源代码。'手动执行此操作的最佳方法是什么?我没有svn知识,懂一点git。非常感谢!
更新于 2017 年 11 月 6 日
看来您可以以 gzipped svn dump 流文件的形式恢复和下载项目的历史记录。请按照以下步骤操作:
该文件是一个 gzipped svn 存储库转储流文件,您可以使用
https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/majesticuo/repo.svndump.gz
svnadmin load
工具将其加载到新存储库中。
这篇博文中的信息得出这一点,其中还列出了最终转换的一些建议步骤。但是,如果您第一次尝试转换转储失败,请尝试其他工具;有很多选项,并且有一些如果你的回购历史很复杂,这就是一门艺术。)
gil-contributions 的 Google 代码存档移动到 GitHub repo 的过程,在本地没有任何 Subversion 服务器实例。
bahred 的解释下载repo.svndump.gz
存档。
svnadmin create /home/mloskot/svn
svnadmin load /home/mloskot/svn < /home/mloskot/repo.svndump
svn checkout file:///home/mloskot/svn
并找到多个脚本之一来生成
authors.txt
。
subgit configure --minimal-revision 1 --layout std file:///home/mloskot/svn /home/mloskot/git
subgit/config
中生成的
/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
svnadmin
使用,
$PROJECT
所采取的步骤,存档于
https://code.google.com/archive/p/$PROJECT
,以及
$GITHUB_NAMESPACE
是将导入的存储库推送到的 GitHub 命名空间。
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/${GITHUB_NAMESPACE}/${PROJECT}
git fetch origin
time git push -u origin master
cd ..
rm -rf p repo.svndump
“访问被拒绝。匿名调用者没有 storage.objects.get 访问 google-code-archive-source/v2/code.google.com//repo.svndump.gz 的权限。”
但是,有一种方法可以将其导入 git,包括提交历史记录: