Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
谷歌代码归档到Github_Git_Svn_Google Code - Fatal编程技术网

谷歌代码归档到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中,

我想将此项目迁移到GitHub以维护历史记录

当我尝试使用“导出到GitHub”按钮时,它会说“Google代码项目导出工具不再可用”

Google代码到GitHub导出器工具不再可用。谷歌代码项目的源代码现在可以在谷歌代码档案中找到


手动操作的最佳方式是什么?我没有svn知识,只懂一点git。非常感谢

于2017年11月6日更新

看起来您可以以gzip svn转储流文件的形式恢复和下载项目的历史记录。遵循以下步骤:

  • 导航到项目的Google代码归档页面。例如
  • 复制源下的下载URL
  • 在URL中,将source archive.zip更改为repo.svndump.gz并下载该文件
  • 示例URL:

    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
    档案馆

  • 创建本地Subversion存储库并导入转储

    svnadmin create /home/mloskot/svn
    svnadmin load /home/mloskot/svn < /home/mloskot/repo.svndump
    
    并从许多脚本中找到一个来生成
    authors.txt

  • 从下载最新的SubGit

  • 阅读SubGit导入指南

  • 初始化Git repo,其中SubGit将转换Subversion repo

    subgit configure --minimal-revision 1 --layout std file:///home/mloskot/svn /home/mloskot/git
    
  • 编辑在
    /home/mloskot/git/subgit/config

  • 将Subversion repo导入Git

    subgit import /home/mloskot/git
    subgit uninstall --purge /home/mloskot/git
    
  • 克隆Git repo,也作为验证步骤,并将其推送到GitHub

      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的说明)
    我只是使用一个空的GitHub存储库(仅为此创建,没有README.md文件)完成了这项工作,并且在第一次尝试时就成功了。hg git扩展将在您的git回购上生成一个名为“hg”的本地分支,该分支可以推送到您的Github remote。

    Cherry picking(呵呵!)

  • 从下载gzipped SVN“图像”
  • 对于
    svnadmin
    使用
  • 并描述如何使用Git从SVN导入
  • 以下是我使用项目名称
    $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).zip
    source 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