将远程Git存储库迁移到新的Gerrit项目

时间:2014-10-02 12:58:59

标签: git migration gerrit

有一台运行Gerrit的服务器,我没有ssh登录权限。不过,我有一个具有管理员权限的Gerrit帐户。

如何创建新的Gerrit项目,然后将远程Git存储库导入其中?我想要迁移所有信息,例如分支和标签。

以下是一些更多信息:

Gerrit服务器主机名: gerrit.example.com

旧Git回购网址: ssh://git@git.example.com/foobar

新Gerrit项目名称: foobar

具有管理员权限的Gerrit用户帐户: erik

1 个答案:

答案 0 :(得分:4)

您可以在本地桌面上运行此shell脚本。在脚本中设置Shell变量以符合您的情况。

#!/bin/sh

# Replace these variable values according to your situation
gerritproject=foobar
gerritserver=gerrit.example.com
gerritadmin=erik
giturl=ssh://git@git.example.com/foobar

set -e
gitdir=`mktemp -d`
ssh -p 29418 $gerritadmin@$gerritserver gerrit create-project --name $gerritproject
cd $gitdir
git clone --mirror $giturl tmpname
cd tmpname
git remote add gerritremote ssh://$gerritadmin@$gerritserver:29418/$gerritproject
git push gerritremote refs/*:refs/*