Google Code叫停:开源项目怎么办?

漂如浮萍,一种生活方式,一种宿命 (笔名绪蜚/萍漂/杰夫。本博客所有博文除另有说明外均为原创。如转贴请先征得作者同意并注明出处)
打印 被阅读次数
 
最近,谷歌Code项目叫停,如果你有开源项目放在它们的服务器上怎么办?

谷歌提供一个从Google Code到GitHub的代码转移的工具,传到GitHub一看,一切似乎安然无恙,可是再仔细一看,我的email地址一丝不挂地躺在每个文件旁,被GitHub当作用户名/作者显示出来。

这怎么能行!那些群发垃圾邮件的软件像苍蝇一样专找有缝的蛋,我可不想让我的email被垃圾邮件充斥。

于是急忙把github的东东运行到本机上,用以下脚本“篡改”谷歌转过去的文件,把用户名改成我在GitHub的用户名,而不是我在Google Code用户的电邮号码。
 
如果你的电脑需要使用代理服务器,先用以下命令设置代理服务器环境:
 
git config --global http.proxy http://MYPROXY.com:PORT
 
把代码从GitHub克隆到本机:
 
git clone --bare https://github.com/user/repo.git cd repo.git
 
运行下列脚本“篡改”GitHub用户名(是我原来Google Code的电子邮件)[1]:
 
  • OLD_EMAIL
  • CORRECT_NAME
  • CORRECT_EMAIL

    12345678910111213141516171819
    #!/bin/sh
     
    git filter-branch --env-filter '
    OLD_EMAIL="your-old-email@example.com"
    CORRECT_NAME="Your Correct Name"
    CORRECT_EMAIL="your-correct-email@example.com"
    if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
    then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
    fi
    if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
    then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
    fi
    ' --tag-name-filter cat -- --branches --tags
 
 
我花了两天才搞清楚为什么用原来的email地址作为OLD_EMAIL就没办法“篡改”GitHub用户名。
 
原来,需要特别注意的是,这里的旧email地址不是你原来的email地址,而是加了一些乱码的这样一堆东西!
 
我是怎么发现这个问题的呢。用GIT的以下命令,终于把Google转过去的真正email地址给露出来了:
  1. git log
你会发现:
 
commit 0dbe5f8531a89f62742d2b75716b73b5e791bd46
Author: your-old-email@example.com your-old-email@example.com@2336f6a0-57fc-8fba-0cea-765dc726c76a>
Date:   Sun Nov 11 17:55:17 2012 +0000

Your Comment
 
 
你把这个怪物作为OLD_EMAIL放到上面的脚本,“篡改”才能成功:
 
your-old-email@example.com@2336f6a0-57fc-8fba-0cea-765dc726c76a

 
把“篡改”后的代码传到GITHUB,大功告成!
 
  • git push --force --tags origin 'refs/heads/*'
    最后,是清洁工作:
  • cd ..
    rm -rf repo.git

     


__________________________________________________________________________________
 
注释:

[1] https://help.github.com/articles/changing-author-info/


登录后才可评论.